API — Cracks
inverse_property_contribution and delta_inverse_property are Core-level generics shared with every other inclusion family; they are documented under API — Concentration & contribution.
MeanFieldHomogenization.Cracks Module
MeanFieldHomogenization.CracksCOD tensors, compliance contributions, SIF and DIF for flat cracks embedded in an elastic matrix of arbitrary anisotropy. Public entry points: cod_tensor, inverse_property_contribution, sif, dif.
MeanFieldHomogenization.Cracks.EllipticCrack Type
EllipticCrack{T, S<:CrackShape, B<:AbstractBasis}Flat elliptical crack with semi-axes
MeanFieldHomogenization.Cracks.RibbonCrack Type
RibbonCrack{T, B<:AbstractBasis}Ribbon-like (tunnel) crack of half-width
MeanFieldHomogenization.Cracks.PennyCrack Function
PennyCrack(a; euler_angles=(0,0,0))Convenience constructor for a circular (penny-shaped) flat crack.
MeanFieldHomogenization.Cracks.ConductiveCrack Type
ConductiveCrack(crack, conductivity)
ConductiveCrack(a; conductivity, euler_angles = ())A flat crack that conducts rather than blocks: the preferential flow path of a fractured rock.
conductivity is the fracture conductivity
Mechanically a flowing crack is an ordinary open crack, so the whole elastic branch (cod_tensor, delta_* seam) is inherited unchanged from the wrapped EllipticCrack; only the transport response differs.
cr = ConductiveCrack(1.0; conductivity = 2.0e-13, euler_angles = (π/4, 0.0))
property_contribution(cr, TensISO{3}(1.0e-18)) # 𝕂, POSITIVE, in-planePenny shape only
The closed form above is derived for a circular crack. An elliptical one has a different in-plane structure and is rejected rather than approximated.
MeanFieldHomogenization.Cracks.fracture_conductivity Function
The fracture conductivity ConductiveCrack.
MeanFieldHomogenization.Cracks.with_conductivity Function
with_conductivity(c::ConductiveCrack, C) -> ConductiveCrackThe same fracture with a new conductivity — how the cubic aperture law
MeanFieldHomogenization.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
where
Elliptic:
;Ribbon:
;
with
For isotropic or aligned-TI matrices the kernel is analytical (Hoenig, 1978; Kanaun and Levin, 2009) with method = :auto or :analytical; an explicit numerical method is honored. For arbitrarily anisotropic matrices :nestedquadgk, the :auto choice), by the DECUHR cubature (:decuhr), or with the inner integral by residues (:residues). The flattening route of Barthélémy (2009), the first-order term of the Hill tensor of a flat ellipsoid in its aspect ratio, gives the same tensor.
Alias: B_tensor.
cod_tensor(crack, K₀::AbstractTens{2,3}; method=:auto, kw...) -> RealSize-independent thermal crack-opening-displacement scalar inverse_property_contribution(crack, K₀), is
The rank-1 direction is the crack normal delta_inverse_property to recover the dilute resistivity correction
docs/src/theory/thermal_cracks.md and its derivation script scripts/16_cod_symbolic_thermal.jl.
These values changed in v0.4.0
The thermal closed forms up to v0.3.2 were too small by
MeanFieldHomogenization.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
where
Elliptic:
;Ribbon:
;
with
For isotropic or aligned-TI matrices the kernel is analytical (Hoenig, 1978; Kanaun and Levin, 2009) with method = :auto or :analytical; an explicit numerical method is honored. For arbitrarily anisotropic matrices :nestedquadgk, the :auto choice), by the DECUHR cubature (:decuhr), or with the inner integral by residues (:residues). The flattening route of Barthélémy (2009), the first-order term of the Hill tensor of a flat ellipsoid in its aspect ratio, gives the same tensor.
Alias: B_tensor.
cod_tensor(crack, K₀::AbstractTens{2,3}; method=:auto, kw...) -> RealSize-independent thermal crack-opening-displacement scalar inverse_property_contribution(crack, K₀), is
The rank-1 direction is the crack normal delta_inverse_property to recover the dilute resistivity correction
docs/src/theory/thermal_cracks.md and its derivation script scripts/16_cod_symbolic_thermal.jl.
These values changed in v0.4.0
The thermal closed forms up to v0.3.2 were too small by
MeanFieldHomogenization.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 two three-argument seams delta_inverse_property and delta_property:
Δ = crack_density_factor(crack) * ε * X for an elliptical (or penny-shaped) crack, whose Budiansky density is ; for a ribbon crack, whose density is .
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.
MeanFieldHomogenization.Cracks.CrackShape Type
CrackShapeAbstract supertype used as the second type parameter of EllipticCrack. Concrete subtypes: Penny (EllipticShape (
MeanFieldHomogenization.Cracks.EllipticShape Type
General flat elliptical crack: a > b.
MeanFieldHomogenization.Cracks.Penny Type
Circular (penny-shaped) flat crack: a == b.
MeanFieldHomogenization.Cracks.Ribbon Type
RibbonPlaceholder type tag for ribbon-like cracks. Mirrors the role of CrackShape for elliptical cracks.
MeanFieldHomogenization.Cracks.crack_basis Function
Return the local basis
MeanFieldHomogenization.Cracks.crack_normal Function
Return the unit normal
MeanFieldHomogenization.Cracks.semi_major Function
Semi-major axis of an elliptical crack.
MeanFieldHomogenization.Cracks.semi_minor Function
Semi-minor axis of an elliptical crack, or half-width of a ribbon crack.
MeanFieldHomogenization.Cracks.aspect_ratio Function
aspect_ratio(c)Aspect ratio zero(T) for a RibbonCrack (limit case).
MeanFieldHomogenization.Cracks.sif Function
sif(crack, C₀, Σ; y₀=nothing, method=:auto, kw...) -> (𝐊, (Kᴵ, Kᴵᴵ, Kᴵᴵᴵ))Stress intensity factor vector
For a ribbon crack (
The central identity
MeanFieldHomogenization.Cracks.dif Function
dif(crack, C₀, Σ; method=:auto, kw...) -> Tens{1,3}dif(crack, K₀::AbstractTens{2,3}, σ∞; method=:auto, kw...) -> RealTemperature intensity factor (analog of displacement intensity factor) for a flat crack driven by the remote vector
Same convention as the thermal sif: the driving vector is the transport twin of the remote stress, so the formula is the elastic one symbol for symbol. Returns a scalar (vs the Tens{1,3} returned by the elasticity dif) since the temperature field is scalar.
MeanFieldHomogenization.Cracks.compliance_from_cod Function
compliance_from_cod(B, crack, ℬ=get_basis(B)) -> Tens{4,3}ℬ: what inverse_property_contribution returns from cod_tensor, and the exact inverse of cod_from_compliance.
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.
MeanFieldHomogenization.Cracks.cod_from_compliance Function
cod_from_compliance(H, crack, ℬ=get_basis(H)) -> Tens{2,3}Extract the size-independent COD tensor
with ℬ, the crack normal when H comes from inverse_property_contribution. The exact inverse of compliance_from_cod.
Dispatches on the shape family of the crack.
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 RibbonCrack explicitly.