Localization and contribution tensors
MeanFieldHomogenization exposes the four dilute localization tensors of the Eshelby problem, together with the size-independent stiffness and compliance contribution tensors of Kachanov–Sevostianov.
Everything on this page is one chain, and each link is a separate entry point — which is what makes it possible to plug a morphology in halfway through (custom inclusions):
Pivot formula
For an inclusion of shape tensor
where hill_tensor) and
with
| Function | Return value |
|---|---|
strain_strain_loc(incl, C₁, C₀) | |
stress_strain_loc(incl, C₁, C₀) | |
strain_stress_loc(incl, C₁, C₀) | |
stress_stress_loc(incl, C₁, C₀) |
Contribution tensors
The stiffness contribution tensor ([24]) is
and its dilute-scheme volume average is
for a dilute family of volume fraction
Functions: stiffness_contribution, compliance_contribution, with density helpers delta_stiffness and delta_compliance.
All of the above is one-site: the inclusion feels its neighbors only through the reference medium. Resolving the pairwise interaction explicitly replaces
Cracks (Kachanov convention)
For flat cracks the crack-density convention (Budiansky–O'Connell) is used instead of a volume fraction. The same entry points apply, with the density
compliance_contribution(crack, C₀)returns the size-independent ;stiffness_contribution(crack, C₀)returns (first order in the density, provided for API symmetry);delta_compliance(crack, H, ε)anddelta_stiffness(crack, N, ε)apply the appropriate or geometric prefactor.
Conductivity (2nd-order transport)
Every routine above has a 2-tensor analog, triggered by dispatch on ::AbstractTens{2,3} matrices:
| Elasticity | Conductivity |
|---|---|
strain_strain_loc | gradient_gradient_loc |
stress_strain_loc | flux_gradient_loc |
strain_stress_loc | gradient_flux_loc |
stress_stress_loc | flux_flux_loc |
stiffness_contribution | conductivity_contribution |
compliance_contribution (ellipsoid) | resistivity_contribution |
delta_stiffness | delta_conductivity |
delta_compliance (ellipsoid) | delta_resistivity |
Type-genericity
All four localization and both contribution tensors are generic in the element type; the only requirement is that hill_tensor supports it.
Extending to user-defined inclusions
A concrete subtype of AbstractInclusion inherits the four localization and the contribution tensors as soon as it provides hill_tensor. When LayeredSphere), override strain_strain_loc instead — the rest is derived algebraically.
See the developer guide Adding a new inclusion for a step-by-step recipe.