pub struct J2ConsistentTangent {
pub shear_modulus: f64,
pub bulk_modulus: f64,
pub hardening_modulus: f64,
}Expand description
Full 6×6 algorithmic (consistent) tangent modulus for J2 plasticity with isotropic hardening, in Voigt notation.
The consistent tangent ensures quadratic convergence in Newton-Raphson FEM. It is defined as:
C_ep = C_e - (6G²)/(3G+H) * (n⊗n) / σ_y_trial² - 2G * Δγ/q_tr * (I_dev - n⊗n)
where n = s_trial / q_tr is the unit deviatoric stress direction, Δγ is the plastic consistency parameter, G is the shear modulus, H is the hardening modulus, and I_dev is the deviatoric projector.
For the elastic step, returns the elastic stiffness C_e.
Fields§
§shear_modulus: f64Shear modulus G (Pa).
bulk_modulus: f64Bulk modulus K (Pa).
hardening_modulus: f64Isotropic hardening modulus H (Pa).
Implementations§
Source§impl J2ConsistentTangent
impl J2ConsistentTangent
Sourcepub fn new(
shear_modulus: f64,
bulk_modulus: f64,
hardening_modulus: f64,
) -> Self
pub fn new( shear_modulus: f64, bulk_modulus: f64, hardening_modulus: f64, ) -> Self
Create a new J2 consistent tangent calculator.
Sourcepub fn from_young_poisson(E: f64, nu: f64, hardening_modulus: f64) -> Self
pub fn from_young_poisson(E: f64, nu: f64, hardening_modulus: f64) -> Self
Create from Young’s modulus and Poisson’s ratio.
Sourcepub fn elastic_stiffness(&self) -> [f64; 36]
pub fn elastic_stiffness(&self) -> [f64; 36]
Elastic 6×6 stiffness in Voigt notation (isotropic).
Voigt order: [σ_xx, σ_yy, σ_zz, σ_yz, σ_xz, σ_xy].
Sourcepub fn compute_consistent_tangent(
&self,
trial_stress: &[f64; 6],
delta_gamma: f64,
) -> [f64; 36]
pub fn compute_consistent_tangent( &self, trial_stress: &[f64; 6], delta_gamma: f64, ) -> [f64; 36]
Compute the consistent (algorithmic) tangent modulus.
Requires the trial stress, yield stress at start of increment, and whether plastic flow occurred.
§Arguments
trial_stress— trial Voigt stress [xx,yy,zz,yz,xz,xy]sigma_y— current yield stress (before increment)delta_gamma— plastic consistency parameter (0 if elastic)
§Returns
6×6 consistent tangent (flat row-major).