pub struct SaintVenantKirchhoff {
pub bulk_modulus: Scalar,
pub shear_modulus: Scalar,
pub initial_yield_stress: Scalar,
pub hardening_slope: Scalar,
pub rate_sensitivity: Scalar,
pub reference_flow_rate: Scalar,
}Expand description
The Saint Venant-Kirchhoff hyperelastic-viscoplastic solid constitutive model.
Parameters
- The bulk modulus $
\kappa$. - The shear modulus $
\mu$. - The initial yield stress $
Y_0$. - The isotropic hardening slope $
H$. - The rate sensitivity parameter $
m$. - The reference flow rate $
d_0$.
External variables
- The deformation gradient $
\mathbf{F}$.
Internal variables
- The plastic deformation gradient $
\mathbf{F}_\mathrm{p}$.
Notes
- The Green-Saint Venant strain measure is given by $
\mathbf{E}=\tfrac{1}{2}(\mathbf{C}-\mathbf{1})$.
Fields§
§bulk_modulus: ScalarThe bulk modulus $\kappa$.
shear_modulus: ScalarThe shear modulus $\mu$.
initial_yield_stress: ScalarThe initial yield stress $Y_0$.
hardening_slope: ScalarThe isotropic hardening slope $H$.
rate_sensitivity: ScalarThe rate sensitivity parameter $m$.
reference_flow_rate: ScalarThe reference flow rate $d_0$.
Trait Implementations§
Source§impl Clone for SaintVenantKirchhoff
impl Clone for SaintVenantKirchhoff
Source§fn clone(&self) -> SaintVenantKirchhoff
fn clone(&self) -> SaintVenantKirchhoff
Returns a duplicate of the value. Read more
1.0.0 · 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 SaintVenantKirchhoff
impl Debug for SaintVenantKirchhoff
Source§impl ElasticViscoplastic for SaintVenantKirchhoff
impl ElasticViscoplastic for SaintVenantKirchhoff
Source§fn second_piola_kirchhoff_stress(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<SecondPiolaKirchhoffStress, ConstitutiveError>
fn second_piola_kirchhoff_stress( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<SecondPiolaKirchhoffStress, ConstitutiveError>
\mathbf{S}(\mathbf{F},\mathbf{F}_\mathrm{p}) = 2\mu\mathbf{F}_\mathrm{p}^{-1}\cdot\mathbf{E}_\mathrm{e}'\cdot\mathbf{F}_\mathrm{p}^{-T} + \kappa\,\mathrm{tr}(\mathbf{E}_\mathrm{e})\mathbf{F}_\mathrm{p}^{-1}\cdot\mathbf{F}_\mathrm{p}^{-T}Source§fn second_piola_kirchhoff_tangent_stiffness(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<SecondPiolaKirchhoffTangentStiffness, ConstitutiveError>
fn second_piola_kirchhoff_tangent_stiffness( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<SecondPiolaKirchhoffTangentStiffness, ConstitutiveError>
\mathcal{G}_{IJkL}(\mathbf{F},\mathbf{F}_\mathrm{p}) = \mu\,C_{JL}^{\mathrm{p}-1}F_{kM}^\mathrm{e}F_{MI}^{\mathrm{p}-T} + \mu\,C_{IL}^{\mathrm{p}-1}F_{kJ}^\mathrm{e}F_{ML}^{\mathrm{p}-T} + \left(\kappa - \frac{2}{3}\,\mu\right)C_{IJ}^{\mathrm{p}-1}F_{kM}^\mathrm{e}F_{ML}^{\mathrm{p}-T}Source§fn cauchy_stress(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<CauchyStress, ConstitutiveError>
fn cauchy_stress( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<CauchyStress, ConstitutiveError>
Calculates and returns the Cauchy stress. Read more
Source§fn cauchy_tangent_stiffness(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<CauchyTangentStiffness, ConstitutiveError>
fn cauchy_tangent_stiffness( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<CauchyTangentStiffness, ConstitutiveError>
Calculates and returns the tangent stiffness associated with the Cauchy stress. Read more
Source§fn first_piola_kirchhoff_stress(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<FirstPiolaKirchhoffStress, ConstitutiveError>
fn first_piola_kirchhoff_stress( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<FirstPiolaKirchhoffStress, ConstitutiveError>
Calculates and returns the first Piola-Kirchhoff stress. Read more
Source§fn first_piola_kirchhoff_tangent_stiffness(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<FirstPiolaKirchhoffTangentStiffness, ConstitutiveError>
fn first_piola_kirchhoff_tangent_stiffness( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<FirstPiolaKirchhoffTangentStiffness, ConstitutiveError>
Calculates and returns the tangent stiffness associated with the first Piola-Kirchhoff stress. Read more
Source§fn state_variables_evolution(
&self,
deformation_gradient: &DeformationGradient,
state_variables: &StateVariables,
) -> Result<StateVariables, ConstitutiveError>
fn state_variables_evolution( &self, deformation_gradient: &DeformationGradient, state_variables: &StateVariables, ) -> Result<StateVariables, ConstitutiveError>
Calculates and returns the evolution of the state variables. Read more
Source§impl HyperelasticViscoplastic for SaintVenantKirchhoff
impl HyperelasticViscoplastic for SaintVenantKirchhoff
Source§fn helmholtz_free_energy_density(
&self,
deformation_gradient: &DeformationGradient,
deformation_gradient_p: &DeformationGradientPlastic,
) -> Result<Scalar, ConstitutiveError>
fn helmholtz_free_energy_density( &self, deformation_gradient: &DeformationGradient, deformation_gradient_p: &DeformationGradientPlastic, ) -> Result<Scalar, ConstitutiveError>
a(\mathbf{F},\mathbf{F}_\mathrm{p}) = \mu\,\mathrm{tr}(\mathbf{E}_\mathrm{e}^2) + \frac{1}{2}\left(\kappa - \frac{2}{3}\,\mu\right)\mathrm{tr}(\mathbf{E}_\mathrm{e})^2Source§impl Plastic for SaintVenantKirchhoff
impl Plastic for SaintVenantKirchhoff
Source§fn initial_yield_stress(&self) -> Scalar
fn initial_yield_stress(&self) -> Scalar
Returns the initial yield stress.
Source§fn hardening_slope(&self) -> Scalar
fn hardening_slope(&self) -> Scalar
Returns the isotropic hardening slope.
Source§impl Solid for SaintVenantKirchhoff
impl Solid for SaintVenantKirchhoff
Source§fn bulk_modulus(&self) -> Scalar
fn bulk_modulus(&self) -> Scalar
Returns the bulk modulus.
Source§fn shear_modulus(&self) -> Scalar
fn shear_modulus(&self) -> Scalar
Returns the shear modulus.
Source§fn jacobian<const I: usize, const J: usize>(
&self,
deformation_gradient: &DeformationGradientGeneral<I, J>,
) -> Result<Scalar, ConstitutiveError>
fn jacobian<const I: usize, const J: usize>( &self, deformation_gradient: &DeformationGradientGeneral<I, J>, ) -> Result<Scalar, ConstitutiveError>
Calculates and returns the Jacobian.
Source§impl Viscoplastic for SaintVenantKirchhoff
impl Viscoplastic for SaintVenantKirchhoff
Source§fn rate_sensitivity(&self) -> Scalar
fn rate_sensitivity(&self) -> Scalar
Returns the rate_sensitivity parameter.
Source§fn reference_flow_rate(&self) -> Scalar
fn reference_flow_rate(&self) -> Scalar
Returns the reference flow rate.
Source§fn plastic_stretching_rate(
&self,
deviatoric_mandel_stress_e: MandelStressElastic,
yield_stress: Scalar,
) -> Result<StretchingRatePlastic, ConstitutiveError>
fn plastic_stretching_rate( &self, deviatoric_mandel_stress_e: MandelStressElastic, yield_stress: Scalar, ) -> Result<StretchingRatePlastic, ConstitutiveError>
Calculates and returns the rate of plastic stretching. Read more
Source§fn yield_stress_evolution(
&self,
plastic_stretching_rate: &StretchingRatePlastic,
) -> Result<Scalar, ConstitutiveError>
fn yield_stress_evolution( &self, plastic_stretching_rate: &StretchingRatePlastic, ) -> Result<Scalar, ConstitutiveError>
Calculates and returns the evolution of the yield stress. Read more
Auto Trait Implementations§
impl Freeze for SaintVenantKirchhoff
impl RefUnwindSafe for SaintVenantKirchhoff
impl Send for SaintVenantKirchhoff
impl Sync for SaintVenantKirchhoff
impl Unpin for SaintVenantKirchhoff
impl UnwindSafe for SaintVenantKirchhoff
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FirstOrderRoot for Twhere
T: ElasticViscoplastic,
impl<T> FirstOrderRoot for Twhere
T: ElasticViscoplastic,
Source§fn root(
&self,
applied_load: AppliedLoad<'_>,
integrator: impl ExplicitInternalVariables<TensorTuple<TensorRank2<3, 2, 0>, f64>, TensorRank2<3, 1, 0>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>, TensorVector<TensorRank2<3, 1, 0>>>,
solver: impl FirstOrderRootFinding<TensorRank2<3, 1, 0>, TensorRank4<3, 1, 0, 1, 0>, TensorRank2<3, 1, 0>>,
) -> Result<(Vector, TensorVector<TensorRank2<3, 1, 0>>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>), ConstitutiveError>
fn root( &self, applied_load: AppliedLoad<'_>, integrator: impl ExplicitInternalVariables<TensorTuple<TensorRank2<3, 2, 0>, f64>, TensorRank2<3, 1, 0>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>, TensorVector<TensorRank2<3, 1, 0>>>, solver: impl FirstOrderRootFinding<TensorRank2<3, 1, 0>, TensorRank4<3, 1, 0, 1, 0>, TensorRank2<3, 1, 0>>, ) -> Result<(Vector, TensorVector<TensorRank2<3, 1, 0>>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>), ConstitutiveError>
Solve for the unknown components of the deformation gradients under an applied load. Read more
Source§impl<T> ZerothOrderRoot for Twhere
T: ElasticViscoplastic,
impl<T> ZerothOrderRoot for Twhere
T: ElasticViscoplastic,
Source§fn root(
&self,
applied_load: AppliedLoad<'_>,
integrator: impl ExplicitInternalVariables<TensorTuple<TensorRank2<3, 2, 0>, f64>, TensorRank2<3, 1, 0>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>, TensorVector<TensorRank2<3, 1, 0>>>,
solver: impl ZerothOrderRootFinding<TensorRank2<3, 1, 0>>,
) -> Result<(Vector, TensorVector<TensorRank2<3, 1, 0>>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>), ConstitutiveError>
fn root( &self, applied_load: AppliedLoad<'_>, integrator: impl ExplicitInternalVariables<TensorTuple<TensorRank2<3, 2, 0>, f64>, TensorRank2<3, 1, 0>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>, TensorVector<TensorRank2<3, 1, 0>>>, solver: impl ZerothOrderRootFinding<TensorRank2<3, 1, 0>>, ) -> Result<(Vector, TensorVector<TensorRank2<3, 1, 0>>, TensorVector<TensorTuple<TensorRank2<3, 2, 0>, f64>>), ConstitutiveError>
Solve for the unknown components of the deformation gradients under an applied load. Read more