Conductivity

Everything the elastic API does, the conduction API does with order-2 tensors instead of order-4. Heat conduction, mass diffusion, electric conduction and Darcy flow are the same mathematical problem, so the same functions serve all four — the dispatch is on the order of the property tensor you pass, not on a keyword.

using MeanFieldHom, TensND

C₀ = TensISO{3}(3 * 70.0, 2 * 30.0)   # order 4 → elasticity
K₀ = TensISO{3}(5.0)                  # order 2 → conduction

hill_tensor(Ellipsoid(1.0), C₀)       # order-4 Hill tensor ℙ
hill_tensor(Ellipsoid(1.0), K₀)       # order-2 Hill tensor 𝐏

Theory: Hill polarization tensors, section Hill tensor in conductivity.

Building a conductivity tensor

Isotropic, transversely isotropic and fully anisotropic conductivities are TensND order-2 tensors:

using MeanFieldHom, TensND, LinearAlgebra

K_iso   = TensISO{3}(2.5)                              # isotropic
K_ti    = TensND.TensTI{2}(1.0, 4.0, (0., 0., 1.))     # transverse, axial, axis
K_aniso = TensND.Tens(Matrix(Diagonal([3.2, 0.5, 0.6]))) # orthotropic

The Hill and Eshelby tensors

ell = Ellipsoid(3.0, 1.0, 1.0)        # prolate spheroid

P = hill_tensor(ell, K_iso)           # 𝐏(𝐀, 𝐊)
s = eshelby_tensor(ell, K_iso)        # 𝐬 = 𝐏 ⋅ 𝐊

For a sphere in an isotropic matrix these are $\boldsymbol{P} = \boldsymbol{1}/(3K)$ and $\boldsymbol{s} = \boldsymbol{1}/3$, independent of $K$.

Anisotropy is cheap here

Unlike the order-4 case, the order-2 Hill tensor has a closed form for any matrix anisotropy, via the square-root transformation $\boldsymbol{P}(\boldsymbol{A},\boldsymbol{K}) = \boldsymbol{K}^{-1/2}\cdot \boldsymbol{I}^{\boldsymbol{A}\cdot\boldsymbol{K}^{-1/2}}\cdot \boldsymbol{K}^{-1/2}$ ([20]). Passing an anisotropic $\boldsymbol{K}$ costs no more than an isotropic one — no cubature is involved, and the result stays ForwardDiff-compatible.

Homogenization

An RVE carries its conduction properties under the :K key, and every scheme works unchanged:

rve = RVE(:M)
add_matrix!(rve, Ellipsoid(1.0), Dict(:K => TensISO{3}(1.0)))
add_phase!(rve, :I, Ellipsoid(1.0), Dict(:K => TensISO{3}(20.0)); fraction = 0.3)

K_MT = homogenize(rve, MoriTanaka(), :K)
K_SC = homogenize(rve, SelfConsistent(), :K)
K_D  = homogenize(rve, Differential(), :K)

The third argument selects the physics: :C for elasticity, :K for conduction. A single RVE may carry both, and the two are homogenized independently.

Cracks

The transport analogue of the crack compliance is the crack resistivity contribution $\boldsymbol{R}$, a rank-1 order-2 tensor: only the normal component of the flux can jump across a crack. It is assembled from a scalar COD $b$, with the same geometric factors $3/4$ (elliptic) and $2/\pi$ (ribbon) as in elasticity.

pc = PennyCrack(1.0)
K₀ = TensISO{3}(2.5)

b  = cod_tensor(pc, K₀)                    # scalar COD, = 2/(π²K) for a penny
R  = compliance_contribution(pc, K₀)       # 𝐑 = (3/4)·b·(ŵ⊗ŵ)
ΔR = delta_resistivity(pc, R, 0.05)        # dilute correction at density ε

Theory: Thermal cracks.

Imperfect interfaces

Composite particles with imperfect interfaces are available in conduction only (the harmonic solution does not carry over to the vector elastic problem):

s = LayeredSpheroid(
    (1.0,), (2.0,), (TensISO{3}(1e-6),);            # insulating oblate core
    interfaces = (MeanFieldHom.SurfaceConductiveInterface(2.0),),
    Nseries = 5,
)

A = gradient_gradient_loc(s, TensISO{3}(1e-6), TensISO{3}(1.0))  # ⟨∇T⟩ = 𝐀_Ω·𝐇
B = flux_gradient_loc(s, TensISO{3}(1e-6), TensISO{3}(1.0))      # ⟨𝐊∇T⟩ = 𝐁_Ω·𝐇
k_eq = B[1, 1] / A[1, 1]                                          # equivalent particle

Theory: Layered sphere and Layered spheroid. Worked examples: geometry and effective conductivity (Kapitza sweep and equivalent particle), what an interface does to the local fields, and highly conducting interfaces.

Conduction and elasticity are not independent — a microstructure that stiffens a material also changes how it conducts. Explicit cross-property correlations for two-phase composites are given in [46]; the Transport properties application page works through one.