Skip to content

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 and stiffness embedded in an infinite matrix of stiffness , the strain–strain localization tensor is

where is the Hill polarization tensor (hill_tensor) and is the symmetric identity 4-tensor. The three other localization tensors follow algebraically:

with  . The four functions exposed by MeanFieldHomogenization are:

FunctionReturn 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 . The dual compliance contribution tensor is

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 by the two-inclusion interaction tensor , of which is the self term — see the N-body schemes.

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 replacing , and the compliance contribution built from the crack-opening-displacement tensor and the crack normal (Crack opening displacement):

  • 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, ε) and delta_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:

ElasticityConductivity
strain_strain_locgradient_gradient_loc
stress_strain_locflux_gradient_loc
strain_stress_locgradient_flux_loc
stress_stress_locflux_flux_loc
stiffness_contributionconductivity_contribution
compliance_contribution (ellipsoid)resistivity_contribution
delta_stiffnessdelta_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 has no convenient closed form (e.g. 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.