pub struct Chaboche {
pub sigma_y0: f64,
pub q: f64,
pub b_iso: f64,
pub c_kin: f64,
pub gamma_kin: f64,
}Expand description
Chaboche combined isotropic-kinematic hardening model.
Isotropic part: R(p) = Q*(1 - exp(-b*p)) where p = ∫|dε_p| Kinematic part: dα = C * dε_p - γ * α * dp (Armstrong-Frederick rule)
Yield surface: f = ||σ - α||_vM - (σ_y0 + R) = 0
Fields§
§sigma_y0: f64Initial yield stress (Pa).
q: f64Isotropic saturation stress Q (Pa).
b_iso: f64Isotropic saturation rate b.
c_kin: f64Kinematic hardening modulus C (Pa).
gamma_kin: f64Kinematic recovery parameter γ (dimensionless).
Implementations§
Source§impl Chaboche
impl Chaboche
Sourcepub fn new(
sigma_y0: f64,
q: f64,
b_iso: f64,
c_kin: f64,
gamma_kin: f64,
) -> Self
pub fn new( sigma_y0: f64, q: f64, b_iso: f64, c_kin: f64, gamma_kin: f64, ) -> Self
Create a Chaboche model.
Sourcepub fn steel_default() -> Self
pub fn steel_default() -> Self
Default steel parameters (representative values).
Sourcepub fn isotropic_stress(&self, p: f64) -> f64
pub fn isotropic_stress(&self, p: f64) -> f64
Isotropic hardening stress R(p) = Q*(1 - exp(-b*p)).
Sourcepub fn yield_stress(&self, p: f64) -> f64
pub fn yield_stress(&self, p: f64) -> f64
Current yield stress: σ_y0 + R(p).
Sourcepub fn backstress_increment(
&self,
flow_dir: &[f64; 6],
alpha: &[f64; 6],
delta_p: f64,
) -> [f64; 6]
pub fn backstress_increment( &self, flow_dir: &[f64; 6], alpha: &[f64; 6], delta_p: f64, ) -> [f64; 6]
Armstrong-Frederick backstress increment.
Δα = C * n̂ * Δp - γ * α * Δp where n̂ is the flow direction, Δp the plastic strain increment.
Sourcepub fn backstress_norm(alpha: &[f64; 6]) -> f64
pub fn backstress_norm(alpha: &[f64; 6]) -> f64
Accumulated backstress norm ||α|| = sqrt(2/3 α:α).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Chaboche
impl RefUnwindSafe for Chaboche
impl Send for Chaboche
impl Sync for Chaboche
impl Unpin for Chaboche
impl UnsafeUnpin for Chaboche
impl UnwindSafe for Chaboche
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