pub struct SandModel {
pub relative_density: f64,
pub critical_state_friction_angle: f64,
pub d50: f64,
pub specific_gravity: f64,
}Expand description
Sand model with relative density and dilatancy (Bolton’s approach).
Fields§
§relative_density: f64Relative density Dr [-], 0 (loose) to 1 (dense).
critical_state_friction_angle: f64Critical state friction angle φ_cs [radians].
d50: f64Mean particle diameter d50 [m].
specific_gravity: f64Specific gravity Gs [-].
Implementations§
Source§impl SandModel
impl SandModel
Sourcepub fn new(
relative_density: f64,
critical_state_friction_angle_deg: f64,
d50: f64,
specific_gravity: f64,
) -> Self
pub fn new( relative_density: f64, critical_state_friction_angle_deg: f64, d50: f64, specific_gravity: f64, ) -> Self
Create a new sand model.
Sourcepub fn medium_dense_quartz() -> Self
pub fn medium_dense_quartz() -> Self
Typical medium dense quartz sand.
Sourcepub fn loose_sand() -> Self
pub fn loose_sand() -> Self
Loose sand.
Sourcepub fn peak_friction_angle(&self, dr: f64) -> f64
pub fn peak_friction_angle(&self, dr: f64) -> f64
Peak friction angle [radians] using Bolton’s simplified formula.
φ_p = φ_cs + 5 * Ir (radians, Ir = dilatancy index)
Sourcepub fn dilatancy_index(&self, dr: f64, _stress_level: f64) -> f64
pub fn dilatancy_index(&self, dr: f64, _stress_level: f64) -> f64
Bolton dilatancy index Ir = Dr*(Q - ln(p/kPa)) - R.
Q = 10 (quartz), R = 1.
Sourcepub fn bolton_dilatancy(&self, dr: f64, p_kpa: f64) -> f64
pub fn bolton_dilatancy(&self, dr: f64, p_kpa: f64) -> f64
Bolton’s dilatancy formula with explicit pressure.
Ir = Dr*(Q - ln(p_kPa)) - R, clamped to [0, ∞)
Sourcepub fn current_void_ratio(&self) -> f64
pub fn current_void_ratio(&self) -> f64
Current void ratio from relative density.
Sourcepub fn dry_unit_weight(&self) -> f64
pub fn dry_unit_weight(&self) -> f64
Dry unit weight [kN/m^3].
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SandModel
impl RefUnwindSafe for SandModel
impl Send for SandModel
impl Sync for SandModel
impl Unpin for SandModel
impl UnsafeUnpin for SandModel
impl UnwindSafe for SandModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more