pub struct GranularPressureModel {
pub grain_shear_modulus: f64,
pub grain_poisson_ratio: f64,
pub mean_grain_radius: f64,
pub void_ratio: f64,
}Expand description
Granular pressure model using Hertz-Mindlin contact theory.
Models pressure-dependent stiffness in granular assemblies (e.g., sand).
Fields§
§grain_shear_modulus: f64Shear modulus of grain material G [Pa].
grain_poisson_ratio: f64Poisson’s ratio of grain material ν.
mean_grain_radius: f64Mean grain radius R [m].
void_ratio: f64Current void ratio e [-].
Implementations§
Source§impl GranularPressureModel
impl GranularPressureModel
Sourcepub fn new(
grain_shear_modulus: f64,
grain_poisson_ratio: f64,
mean_grain_radius: f64,
void_ratio: f64,
) -> Self
pub fn new( grain_shear_modulus: f64, grain_poisson_ratio: f64, mean_grain_radius: f64, void_ratio: f64, ) -> Self
Create a new granular pressure model.
Sourcepub fn quartz_sand() -> Self
pub fn quartz_sand() -> Self
Typical quartz sand grains.
Sourcepub fn hertz_mindlin_stiffness(
&self,
g: f64,
nu: f64,
r_eff: f64,
sigma_n: f64,
) -> (f64, f64)
pub fn hertz_mindlin_stiffness( &self, g: f64, nu: f64, r_eff: f64, sigma_n: f64, ) -> (f64, f64)
Hertz-Mindlin contact stiffnesses (Kn, Kt) for two identical spheres.
Kn = (4/3) * G_eff * sqrt(R_eff * δ) [N/m] Kt = 8 * G_eff * sqrt(R_eff * δ) [N/m]
Returns (Kn, Kt).
Sourcepub fn coordination_number(&self, void_ratio: f64) -> f64
pub fn coordination_number(&self, void_ratio: f64) -> f64
Coordination number Z from void ratio (empirical).
Z = 10.726 - 11.469 * e (for e ∈ [0.5, 0.9])
Sourcepub fn pack_stiffness(&self, g: f64, nu: f64, e: f64, sigma: f64) -> f64
pub fn pack_stiffness(&self, g: f64, nu: f64, e: f64, sigma: f64) -> f64
Pack (granular assembly) elastic shear modulus [Pa].
Uses Walton (1987) effective medium theory: G_pack = (5-4ν)/(5*(2-ν)) * (3Z^2(1-e)^2G^2/(2π^2*(1+e)^2))^(1/3) * p^(1/3)
Sourcepub fn shear_wave_velocity(&self, rho_bulk: f64, sigma: f64) -> f64
pub fn shear_wave_velocity(&self, rho_bulk: f64, sigma: f64) -> f64
Velocity of shear waves in granular pack [m/s].
Trait Implementations§
Source§impl Clone for GranularPressureModel
impl Clone for GranularPressureModel
Source§fn clone(&self) -> GranularPressureModel
fn clone(&self) -> GranularPressureModel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more