pub struct ModifiedCamClay {
pub m: f64,
pub kappa: f64,
pub lambda: f64,
pub e0: f64,
pub poisson_ratio: f64,
pub pc0: f64,
}Expand description
Modified Cam-Clay (MCC) critical state soil mechanics model.
Yield surface: f = q² / M² + p’(p’ - p’_c) = 0
where: p’ = I₁/3 = mean effective stress q = √(3 J₂) = deviatoric stress (von Mises) M = critical state stress ratio q/p’ at failure p’_c = pre-consolidation pressure (hardening variable)
Fields§
§m: f64Critical state stress ratio M = q/p at critical state.
kappa: f64Swelling line slope κ in e-ln(p) space.
lambda: f64Normal consolidation line slope λ in e-ln(p) space.
e0: f64Initial void ratio e₀.
poisson_ratio: f64Poisson’s ratio ν (for elastic stiffness).
pc0: f64Initial pre-consolidation pressure p’_c0 (Pa).
Implementations§
Source§impl ModifiedCamClay
impl ModifiedCamClay
Sourcepub fn new(
m: f64,
kappa: f64,
lambda: f64,
e0: f64,
poisson_ratio: f64,
pc0: f64,
) -> Self
pub fn new( m: f64, kappa: f64, lambda: f64, e0: f64, poisson_ratio: f64, pc0: f64, ) -> Self
Create a Modified Cam-Clay model.
Sourcepub fn bulk_modulus(&self, p_prime: f64) -> f64
pub fn bulk_modulus(&self, p_prime: f64) -> f64
Elastic bulk modulus K = (1+e₀) p’ / κ.
Sourcepub fn shear_modulus(&self, p_prime: f64) -> f64
pub fn shear_modulus(&self, p_prime: f64) -> f64
Elastic shear modulus from K and Poisson’s ratio.
Sourcepub fn mean_stress(stress: &[f64; 6]) -> f64
pub fn mean_stress(stress: &[f64; 6]) -> f64
Mean effective stress from stress vector (Voigt: [xx,yy,zz,xy,yz,xz]).
Sourcepub fn deviatoric_stress(stress: &[f64; 6]) -> f64
pub fn deviatoric_stress(stress: &[f64; 6]) -> f64
Deviatoric stress q = √(3 J₂).
Sourcepub fn yield_function(&self, stress: &[f64; 6], pc: f64) -> f64
pub fn yield_function(&self, stress: &[f64; 6], pc: f64) -> f64
Yield function f = q²/M² + p’(p’ - p’_c).
Sourcepub fn critical_state_pressure(&self, pc: f64) -> f64
pub fn critical_state_pressure(&self, pc: f64) -> f64
Critical state (CSL) pressure at given void ratio.
p_cs = p_c / 2 (at yield surface apex for MCC)
Sourcepub fn update_preconsolidation_pressure(
&self,
pc: f64,
delta_eps_v_p: f64,
) -> f64
pub fn update_preconsolidation_pressure( &self, pc: f64, delta_eps_v_p: f64, ) -> f64
Hardening: evolution of p’_c with plastic volumetric strain Δε_v_p.
p’_c^new = p’_c * exp((1+e₀) * Δε_v_p / (λ - κ))
Sourcepub fn compression_index(&self) -> f64
pub fn compression_index(&self) -> f64
Compression index Cc ≈ λ * ln(10) (conventional oedometer measure).
Trait Implementations§
Source§impl Clone for ModifiedCamClay
impl Clone for ModifiedCamClay
Source§fn clone(&self) -> ModifiedCamClay
fn clone(&self) -> ModifiedCamClay
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more