Poromechanics
Once a scheme has produced a drained stiffness
the Biot tensor and Biot modulus ([70]) —
using MeanFieldHomogenization, TensND
k_s, μ_s, φ = 20.0, 12.0, 0.2
C_s = TensISO{3}(3k_s, 2μ_s)
rve = RVE()
add_phase!(rve, :M, Ellipsoid(1.0), Dict(:C => C_s); fraction = :rest)
add_phase!(rve, :P, Ellipsoid(1.0), Dict(:C => TensISO{3}(1.0e-9, 1.0e-9));
fraction = φ)
par = poroelastic_parameters(homogenize(rve, MoriTanaka()), C_s, φ)
(b = par.B[1, 1], invM = par.inverse_modulus, M = par.modulus)(b = 0.35999999998920007, invM = 0.007999999999460003, M = 125.00000000843745)Spherical pores give
rve_c = RVE()
add_phase!(rve_c, :M, Ellipsoid(1.0), Dict(:C => C_s); fraction = :rest)
add_phase!(rve_c, :CR, PennyCrack(1.0), Dict(:C => C_s); density = 0.08)
B = biot_tensor(homogenize(rve_c, MoriTanaka()), C_s)
(B₁₁ = B[1, 1], B₃₃ = B[3, 3]) # normal to the cracks is e₃(B₁₁ = 0.108108108108108, B₃₃ = 0.32432432432432445)The fluid is assumed incompressible
Effective stresses
Two different measures, easy to confuse:
| drives | ||
|---|---|---|
terzaghi_stress | the microstructure — crack opening and closure | |
biot_effective_stress | the macroscopic law, which it reduces to the drained one |
They coincide only when
Drained ↔ undrained
via undrained_stiffness and drained_stiffness, with skempton_tensor giving the pore pressure built up by an undrained stress increment,
Homogeneous solid phase only
These relations need a solid phase with uniform elastic properties — a rock matrix with pores or fractures. A medium built from two distinct solid constituents needs the general Levin/eigenstrain route, and