pub struct DruckerPragerModel {
pub friction_angle: f64,
pub cohesion: f64,
pub shear_modulus: f64,
pub bulk_modulus: f64,
}Expand description
Drucker-Prager yield surface for geomaterials (soil, rock, concrete).
Yield function: F = √J₂ + α·I₁ - k = 0
where: α = 2 sin φ / (√3 (3 - sin φ)) (outer cone, Mohr-Coulomb match in compression) k = 6 c cos φ / (√3 (3 - sin φ)) I₁ = tr(σ), J₂ = ½ dev:dev
Fields§
§friction_angle: f64Internal friction angle φ (radians).
cohesion: f64Cohesion c (Pa).
shear_modulus: f64Shear modulus G (Pa).
bulk_modulus: f64Bulk modulus K (Pa).
Implementations§
Source§impl DruckerPragerModel
impl DruckerPragerModel
Sourcepub fn new(
friction_angle: f64,
cohesion: f64,
shear_modulus: f64,
bulk_modulus: f64,
) -> Self
pub fn new( friction_angle: f64, cohesion: f64, shear_modulus: f64, bulk_modulus: f64, ) -> Self
Create a Drucker-Prager model.
Sourcepub fn from_mohr_coulomb_degrees(
phi_deg: f64,
cohesion: f64,
E: f64,
nu: f64,
) -> Self
pub fn from_mohr_coulomb_degrees( phi_deg: f64, cohesion: f64, E: f64, nu: f64, ) -> Self
Create from φ (degrees), c (Pa), Young’s modulus (Pa), Poisson’s ratio.
Sourcepub fn yield_function(&self, stress: &[f64; 6]) -> f64
pub fn yield_function(&self, stress: &[f64; 6]) -> f64
Yield function value F. F > 0 indicates yielding.
Sourcepub fn is_elastic(&self, stress: &[f64; 6]) -> bool
pub fn is_elastic(&self, stress: &[f64; 6]) -> bool
Check if stress state is elastic (F ≤ 0).
Sourcepub fn uniaxial_tensile_strength(&self) -> f64
pub fn uniaxial_tensile_strength(&self) -> f64
Uniaxial tensile strength (from cohesion and friction angle).
σ_t = 2c cos φ / (1 + sin φ)
Sourcepub fn uniaxial_compressive_strength(&self) -> f64
pub fn uniaxial_compressive_strength(&self) -> f64
Uniaxial compressive strength.
σ_c = 2c cos φ / (1 - sin φ)
Trait Implementations§
Source§impl Clone for DruckerPragerModel
impl Clone for DruckerPragerModel
Source§fn clone(&self) -> DruckerPragerModel
fn clone(&self) -> DruckerPragerModel
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DruckerPragerModel
impl Debug for DruckerPragerModel
impl Copy for DruckerPragerModel
Auto Trait Implementations§
impl Freeze for DruckerPragerModel
impl RefUnwindSafe for DruckerPragerModel
impl Send for DruckerPragerModel
impl Sync for DruckerPragerModel
impl Unpin for DruckerPragerModel
impl UnsafeUnpin for DruckerPragerModel
impl UnwindSafe for DruckerPragerModel
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