Layered sphere — bulk + shear recurrences and imperfect interfaces
Before this page
The Eshelby inclusion problem, whose uniformity result a composite pattern loses, and Concentration and contribution tensors, whose strain concentration tensor is what a pattern without a Hill tensor supplies instead, for the Homogenization schemes of the next chapter to consume.
LayeredSphere is an n-layer isotropic spherical composite inclusion in an infinite isotropic matrix, with per-layer concentration, global contribution tensors and layer / sphere / cumulative averages. The bulk and shear recurrences follow Hervé and Zaoui (1993) (generalizing the three-phase model of Christensen and Lo (1979)); imperfect interfaces follow (Hervé-Luanco, 2014) — PerfectInterface plus one primal/dual pair per physics:
| Elasticity (primal / dual) | Conductivity (primal / dual) |
|---|---|
SpringInterface(kn, kt) | KapitzaInterface(ρ) |
MembraneInterface(κs, μs) surface elasticity (Dormieux et al., 2016) | SurfaceConductiveInterface(ks) (Barthélémy and Bignonnet, 2020) |
1. Convention
Radii are stored in ascending order from the center,
with layer
That is the whole problem the recurrences below solve: a concentric pattern in an unbounded reference medium
The three-phase model of Christensen and Lo (1979) is one use of this solution rather than a variant of it — take
An interactive view of the layered geometry is in The inclusion zoo.
Moduli TensISO{4,3} (elasticity) or TensISO{2,3} (conductivity). Interface conditions at each radius NTuple{N, AbstractInterface} (default all PerfectInterface).
2. Bulk (spherical) recurrence — Hervé-Zaoui 1993
Under a purely hydrostatic remote strain, the displacement in layer
where
The entry-point at
3. Interface jump matrices
Each interface type provides a 2×2 (bulk) jump matrix
SpringInterface and KapitzaInterface encode a primal discontinuity (displacement / temperature jump), while MembraneInterface and SurfaceConductiveInterface encode a dual discontinuity (traction / flux jump). All limit to PerfectInterface when their compliance goes to zero.
The minus sign of the Kapitza matrix is that of the dictionary
4. Conductivity recurrence (Y₁ harmonic)
Under a remote uniform temperature gradient, the temperature field has a Y₁ dependence,
Interface jumps for conductivity are given above (Kapitza primal, SurfaceConductive dual, matching the structural pattern of their elastic analogs). The per-layer gradient concentration
5. Type genericity & incompressibility
The recurrence consists of small-size matrix arithmetic over the element type; it is exercised with Float64, BigFloat, ForwardDiff.Dual, SymPyPythonCall.Sym, and Symbolics.Num. Symbolically,
using SymPyPythonCall; @syms κ₀ μ₀ κ₁ μ₁
s = LayeredSphere((Sym(1),), (TensISO{3}(3κ₁, 2μ₁),))
simplify(MeanFieldHomogenization.LayeredSpheres._bulk_concentration(s, κ₀, μ₀)[1])
# → (3κ₀ + 4μ₀) / (3κ₁ + 4μ₀)and the derivative with respect to any modulus or radius is obtained by wrapping the computation in ForwardDiff.derivative / ForwardDiff.gradient.
6. Deviatoric (shear) recurrence — Y₂-harmonic 4×4 state vector
The bulk recurrence of §2 covers a hydrostatic remote strain only; the deviatoric part of the load calls for a second recurrence, on a four-component state vector.
Under a remote pure-deviatoric strain, the displacement field in an isotropic layer has the axisymmetric form
| Mode | Radial dependence | |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
| 4 |
The corresponding traction amplitudes are obtained from Hooke's law
The state vector Float64, BigFloat, ForwardDiff.Dual, SymPyPythonCall.Sym, Symbolics.Num) and remains regular in the incompressibility limit
Interface jumps at
Perfect: identity.
Spring:
, , the traction being continuous.Membrane: a surface-elastic shell of moduli
generates a jump in the tractions driven by the surface-stress divergence.
Seeding at
The layer concentration is not the mode-1 amplitude alone. Mode 2 has an
Dropping the mode-2 term is invisible on degenerate configurations (vanishing core, core ≡ shell, single layer) and wrong by 1–50 % on a genuine multi-layer stack.
For
7. Averages and interface jumps
7.1 Averages over the material
Three volume-average flavors are provided:
layer_gradient_average(sphere, C₀, ε∞, k)— mean strain in layer (bulk + deviatoric parts).sphere_gradient_average(sphere, C₀, ε∞)— mean strain in the whole composite.cumulative_strain_average(sphere, C₀, ε∞, r)— mean strain inside the ball of radius .
All three cover the deviatoric part for any
7.2 The strain carried by a displacement jump
Over a ball
with
The strain average rule LayeredSpheroid and of the laminates.
On each harmonic the surface integral reduces to an amplitude. For the spherical part,
since both angular integrals equal
per unit remote amplitude, on
A single grain of bulk modulus
Its dilute concentration
7.3 Which interfaces an average counts
| Call | Inner interfaces | Outer interface | Echoes |
|---|---|---|---|
gradient_gradient_concentration(sphere, C₀, C₀) | counted | counted | eE |
gradient_gradient_concentration(sphere, C₀, C₀; external = false) | counted | not counted | sphere_eE(n-1, external=False) |
gradient_gradient_concentration(sphere, C₀; layer = k) | — | — | layer_eE(k-1, external=False) |
gradient_gradient_concentration(sphere, C₀; layer = k, external = true) | — | layer_eE(k-1) | |
gradient_gradient_concentration(sphere, C₀; layer = k, internal = true) | — | layer_eE(k-1, internal=True) | |
layer_gradient_average, sphere_gradient_average | — | — |
external and internal keep the meaning they have in Echoes; only the default of the per-layer form differs, the material average. With external = true on every layer, the shells partition the sphere: flux_gradient_concentration, so that gradient_gradient_concentration and flux_gradient_concentration. The schemes use the defaults.
These tensors reproduce Echoes to ten digits, with spring interfaces inside and outside the sphere, under Mori–Tanaka and the self-consistent scheme, and with Kapitza interfaces in conduction. In conduction they also match the spherical limit of the confocal spheroid, computed independently.
8. Pointwise fields
The recurrences above already carry everything needed to evaluate the field at a point, in any layer and in the matrix; only the reconstruction was missing. Write
Spherical part.
Deviatoric part. The general — non-axisymmetric —
which is the
Every generator is transversely isotropic about TensTI{4,T,6}: six Walpole coefficients and an axis, with no major symmetry.
Averaging shell_concentration exposes that identity from the same cached amplitudes, so the pointwise and averaged routes cannot drift apart.
The transport problem is the
Everything is validated pointwise against the C++ reference (Echoes' conc_eE, conc_eS, conc_sE, conc_sS) to
See the worked example with figures: n-layer sphere: pointwise fields.
Where to go next
The next page, Layered spheroid, solves the same problem in conduction for confocal spheroidal layers, on which an imperfect interface couples the harmonic degrees that a sphere keeps apart. The per-layer concentration tensors of §7 are computed on a random multilayer in the tutorial n-layer sphere: volume-averaged concentration tensors, and the syntax of a layered inclusion is in Layered inclusions.