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]))) # orthotropicThe 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$.
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):
LayeredSphere— concentric shells, any of the four interface models;LayeredSpheroid— confocal spheroidal shells, with the low-conducting (KapitzaInterface) and highly-conducting (SurfaceConductiveInterface) models.
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 particleTheory: 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.
Cross-property links
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.