API — Cracks
compliance_contribution, delta_compliance and delta_resistivity are Core-level generics shared with every other inclusion family; they are documented under API — Localization & contribution.
MeanFieldHom.Cracks — Module
MeanFieldHom.CracksCOD tensors, compliance contributions, SIF and DIF for flat cracks embedded in an elastic matrix of arbitrary anisotropy. Public entry points: cod_tensor, compliance_contribution, sif, dif.
MeanFieldHom.Cracks.EllipticCrack — Type
EllipticCrack{T, S<:CrackShape, B<:AbstractBasis}Flat elliptical crack with semi-axes a ≥ b oriented by a local basis ℬ = (l̂, m̂, n̂).
MeanFieldHom.Cracks.RibbonCrack — Type
RibbonCrack{T, B<:AbstractBasis}Ribbon-like (tunnel) crack of half-width b along m̂, unbounded along l̂, with normal n̂.
MeanFieldHom.Cracks.PennyCrack — Function
PennyCrack(a; euler_angles=(0,0,0))Convenience constructor for a circular (penny-shaped) flat crack.
MeanFieldHom.Cracks.cod_tensor — Function
cod_tensor(crack, C₀; method=:auto, abstol=1e-8, reltol=1e-6, maxiters=100_000)
-> Tens{2,3}Size-independent crack-opening-displacement (COD) tensor $\mathbf B$ defined from the average displacement jump on the crack surface through
(1/S) ∫_S [u] dS = b · B · (Σ · n̂),where $b$ is the semi-minor in-plane semi-axis ($b\ge c\to 0$). $\mathbf B$ factors the crack compliance tensor as
- Elliptic: $\mathbb H = \tfrac{3}{4}\,\hat{\mathbf n} \stackrel{s}{\otimes}\mathbf B\stackrel{s}{\otimes}\hat{\mathbf n}$;
- Ribbon: $\mathbb H = \tfrac{2}{\pi}\,\hat{\mathbf n} \stackrel{s}{\otimes}\mathbf B\stackrel{s}{\otimes}\hat{\mathbf n}$;
with $\mathbb H = \lim_{c/b\to 0}(c/b)\,\mathbb Q^{-1}$ and $\mathbb Q = \mathbb C - \mathbb C:\mathbb P:\mathbb C$ the second Hill tensor (Kachanov 1992, Sevostianov & Kachanov 2002, Barthélémy et al. 2021). The elliptic and ribbon factorizations are related by $\mathbf B^{\mathcal R} = \tfrac{3\pi}{8}\,\lim_{\eta\to 0}\mathbf B^{\mathcal E}$.
For isotropic or aligned-TI matrices the kernel is analytical (Hoenig 1978, Kanaun & Levin 2009); for arbitrarily anisotropic matrices the limit $c/b\to 0$ is resolved numerically through the first-order Taylor term of the Hill tensor (Barthélémy 2009).
Alias: B_tensor.
cod_tensor(crack, K₀::AbstractTens{2,3}; method=:auto, kw...) -> RealSize-independent thermal crack-opening-displacement scalar $b$ for a flat crack in a conductor of 2nd-order conductivity tensor $\mathbf K_0$. Analog of the elasticity COD tensor: in the 2nd- order problem, the temperature jump across the crack is scalar and only the normal component of the heat flux drives it, so a single scalar captures the full crack flexibility. The associated size-independent resistivity contribution $\mathbf R =$ compliance_contribution(crack, K₀) is
R = (3/4) b · ŵ ⊗ ŵ (elliptic)
R = (2/π) b · ŵ ⊗ ŵ (ribbon)with $\hat{\mathbf w}\parallel\mathbf K_0^{-1/2}\hat{\mathbf n}$ (reduces to $\hat{\mathbf n}$ for iso / aligned-TI matrices). Apply delta_resistivity to recover the dilute resistivity correction $\Delta\mathbf R = (4\pi/3)\varepsilon^{3\mathrm d}\mathbf R$ (elliptic) or $\Delta\mathbf R = \pi\,\varepsilon^{2\mathrm d}\mathbf R$ (ribbon).
Closed-form derivation via the square-root change-of-variable of Giraud et al. 2019, in the framework of Sevostianov & Kachanov 2002 for the rank-1 factorization $\mathbf R \propto \hat{\mathbf w}\otimes\hat{\mathbf w}$. See the theory page docs/src/theory/thermal_cracks.md for the mathematical details and the elasticity ↔ conductivity correspondence table.
MeanFieldHom.Cracks.B_tensor — Function
cod_tensor(crack, C₀; method=:auto, abstol=1e-8, reltol=1e-6, maxiters=100_000)
-> Tens{2,3}Size-independent crack-opening-displacement (COD) tensor $\mathbf B$ defined from the average displacement jump on the crack surface through
(1/S) ∫_S [u] dS = b · B · (Σ · n̂),where $b$ is the semi-minor in-plane semi-axis ($b\ge c\to 0$). $\mathbf B$ factors the crack compliance tensor as
- Elliptic: $\mathbb H = \tfrac{3}{4}\,\hat{\mathbf n} \stackrel{s}{\otimes}\mathbf B\stackrel{s}{\otimes}\hat{\mathbf n}$;
- Ribbon: $\mathbb H = \tfrac{2}{\pi}\,\hat{\mathbf n} \stackrel{s}{\otimes}\mathbf B\stackrel{s}{\otimes}\hat{\mathbf n}$;
with $\mathbb H = \lim_{c/b\to 0}(c/b)\,\mathbb Q^{-1}$ and $\mathbb Q = \mathbb C - \mathbb C:\mathbb P:\mathbb C$ the second Hill tensor (Kachanov 1992, Sevostianov & Kachanov 2002, Barthélémy et al. 2021). The elliptic and ribbon factorizations are related by $\mathbf B^{\mathcal R} = \tfrac{3\pi}{8}\,\lim_{\eta\to 0}\mathbf B^{\mathcal E}$.
For isotropic or aligned-TI matrices the kernel is analytical (Hoenig 1978, Kanaun & Levin 2009); for arbitrarily anisotropic matrices the limit $c/b\to 0$ is resolved numerically through the first-order Taylor term of the Hill tensor (Barthélémy 2009).
Alias: B_tensor.
cod_tensor(crack, K₀::AbstractTens{2,3}; method=:auto, kw...) -> RealSize-independent thermal crack-opening-displacement scalar $b$ for a flat crack in a conductor of 2nd-order conductivity tensor $\mathbf K_0$. Analog of the elasticity COD tensor: in the 2nd- order problem, the temperature jump across the crack is scalar and only the normal component of the heat flux drives it, so a single scalar captures the full crack flexibility. The associated size-independent resistivity contribution $\mathbf R =$ compliance_contribution(crack, K₀) is
R = (3/4) b · ŵ ⊗ ŵ (elliptic)
R = (2/π) b · ŵ ⊗ ŵ (ribbon)with $\hat{\mathbf w}\parallel\mathbf K_0^{-1/2}\hat{\mathbf n}$ (reduces to $\hat{\mathbf n}$ for iso / aligned-TI matrices). Apply delta_resistivity to recover the dilute resistivity correction $\Delta\mathbf R = (4\pi/3)\varepsilon^{3\mathrm d}\mathbf R$ (elliptic) or $\Delta\mathbf R = \pi\,\varepsilon^{2\mathrm d}\mathbf R$ (ribbon).
Closed-form derivation via the square-root change-of-variable of Giraud et al. 2019, in the framework of Sevostianov & Kachanov 2002 for the rank-1 factorization $\mathbf R \propto \hat{\mathbf w}\otimes\hat{\mathbf w}$. See the theory page docs/src/theory/thermal_cracks.md for the mathematical details and the elasticity ↔ conductivity correspondence table.
MeanFieldHom.Cracks.crack_density_factor — Function
crack_density_factor(crack) -> RealGeometric prefactor relating a density-like amount to the dilute effective correction, i.e. the single number shared by the four three-argument seams delta_compliance, delta_stiffness, delta_conductivity and delta_resistivity:
Δ = crack_density_factor(crack) · ε · X4π/3for an elliptical (or penny-shaped) crack, whose Budiansky density is $\varepsilon^{3\mathrm d} = N a b^{2}$;πfor a ribbon crack, whose density is $\varepsilon^{2\mathrm d} = N b^{2}$.
Dispatched on shape_trait, so a user-defined crack inherits the right prefactor for free. A flat morphology with a different density convention overrides this single method rather than the four delta_* ones.
MeanFieldHom.Cracks.sif — Function
sif(crack, C₀, Σ; y₀=nothing, method=:auto, kw...) -> (𝐊, (Kᴵ, Kᴵᴵ, Kᴵᴵᴵ))Stress intensity factor vector $\hat{\mathbf K}$ at a point of the crack front, together with its $(K_{I},K_{II},K_{III})$ decomposition on $(\hat{\mathbf n},\hat{\boldsymbol\nu},\hat{\boldsymbol\tau})$ (Irwin 1957, Kassir & Sih 1968, Willis 1968; energy release rate identity $G = \hat{\mathbf K}\cdot\hat{\mathbf N}$ in Barnett & Asaro 1972, Rice 1989).
For a ribbon crack ($\hat{\boldsymbol\nu}=\pm\hat{\mathbf m}$) $\hat{\mathbf K}^{\mathcal R} = \sqrt{\pi b}\,\boldsymbol\Sigma\cdot\hat{\mathbf n}$ (independent of the matrix stiffness). For an elliptic crack, $\hat{\mathbf K}$ is obtained from the COD tensor $\mathbf B^{\mathcal E}$ of the actual crack and the COD tensor $\mathbf B^{\mathcal R}$ of the tangent ribbon crack at the observation point:
K̂ = (3/8) π^{3/2} √b √(b ‖S† · ŷ₀★‖)
· (B^𝓡(ν̂, n̂))⁻¹ · B^𝓔(m̂, n̂, η) · Σ·n̂ .The central identity $\hat{\mathbf K} = \pi\,(\mathbf B^{\mathcal R})^{-1}\cdot\hat{\mathbf N}$ is purely local (Kanaun 1981, Kunin 1983, Kanaun & Levin 2009).
MeanFieldHom.Cracks.dif — Function
dif(crack, C₀, Σ; method=:auto, kw...) -> Tens{1,3}dif(crack, K₀::AbstractTens{2,3}, q∞; method=:auto, kw...) -> RealTemperature intensity factor (analog of displacement intensity factor) for a flat crack driven by a remote heat-flux vector $\mathbf q^{\infty}$:
[[T]]_avg = b · (\hat{\mathbf n}·\mathbf q^{\infty}) .Returns a scalar (vs the Tens{1,3} returned by the elasticity dif) since the temperature field is scalar.
MeanFieldHom.Cracks.compliance_from_cod — Function
compliance_from_cod(B, crack, ℬ=get_basis(B)) -> Tens{4,3}Inverse of cod_from_compliance. Reconstruct $\mathbb H$ from $\mathbf B$ with the crack-shape-dependent factor $k$.
compliance_from_cod(B, ℬ=get_basis(B)) -> Tens{4,3}Elliptic / 3D default: identical to compliance_from_cod(B, EllipticCrack-like, ℬ). Kept for back-compatibility.
MeanFieldHom.Cracks.cod_from_compliance — Function
cod_from_compliance(H, crack, ℬ=get_basis(H)) -> Tens{2,3}Extract the size-independent COD tensor $\mathbf B$ from the crack compliance contribution tensor $\mathbb H$ using
H = k (n̂ ⊗ˢ B ⊗ˢ n̂), k = 3/4 (elliptic) or k = 2/π (ribbon).Dispatches on the crack type (Kachanov 1992, Barthélémy et al. 2021).
The pair compliance_from_cod / cod_from_compliance only preserves the $B_{nn}$ component exactly; off-diagonal components involve Kelvin–Mandel pre-factors that are not inverted by the pair.
cod_from_compliance(H, ℬ=get_basis(H)) -> Tens{2,3}Elliptic / 3D default: identical to cod_from_compliance(H, EllipticCrack-like, ℬ) with the Kachanov factor $k = 3/4$. Kept for back-compatibility with code that does not carry the crack object. For a ribbon, pass the RibbonCrack explicitly.