void polarDecomposition()
Perform polar decomposition.
RankFourTensor stressAdvectionDerivative(const RankTwoTensor &S) const
Derivative of the action to advect stress with respect to the kinematic tensor.
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Provided for material models that use the integrated strain.
ObjectiveRate
Types of objective integrations.
const MaterialProperty< RankTwoTensor > & _strain_increment
Provided for material models that use the strain increment.
MaterialProperty< RankTwoTensor > * _stretch
Current stretch, i.e. U in polar decomposition F = RU.
RankFourTensor updateTensor(const RankTwoTensor &Q) const
Make the tensor used to advect the stress.
virtual void computeQpSmallStress()=0
Method to implement to provide the small stress update.
static InputParameters validParams()
const MaterialProperty< RankTwoTensor > & _vorticity_increment
Provided for material models that use the vorticity increment.
Provide the Cauchy stress via an objective integration of a small stress.
virtual void initQpStatefulProperties() override
Initialize the new (small) stress.
const MaterialProperty< RankTwoTensor > & _def_grad_old
Deformation gradient.
static const std::string S
RankTwoTensor objectiveUpdateTruesdell(const RankTwoTensor &dS)
Objective update using the Truesdell rate.
const MaterialProperty< RankTwoTensor > & _def_grad
Deformation gradient.
std::tuple< RankTwoTensor, RankFourTensor > advectStress(const RankTwoTensor &S0, const RankTwoTensor &dQ) const
Advect the stress using the provided kinematic tensor.
const MaterialProperty< RankTwoTensor > * _rotation_old
Rotation at the begining of this step.
enum ComputeLagrangianObjectiveStress::ObjectiveRate _rate
const MaterialProperty< RankTwoTensor > & _cauchy_stress_old
We need the old Cauchy stress to do the objective integration.
MaterialProperty< RankFourTensor > * _d_rotation_d_def_grad
Derivative of rotation w.r.t. the deformation gradient.
const bool _polar_decomp
Whether we need to perform polar decomposition.
MaterialProperty< RankTwoTensor > * _rotation
Current rotation, i.e. R in polar decomposition F = RU.
Native interface for providing the Cauchy stress.
const MaterialProperty< RankTwoTensor > & _small_stress_old
We need the old value to get the increment.
virtual void computeQpCauchyStress() override
Implement the objective update.
RankTwoTensor objectiveUpdateJaumann(const RankTwoTensor &dS)
Objective update using the Jaumann rate.
MaterialProperty< RankFourTensor > & _small_jacobian
The updated small algorithmic tangent.
ComputeLagrangianObjectiveStress(const InputParameters ¶meters)
MaterialProperty< RankTwoTensor > & _small_stress
The updated small stress.
const InputParameters & parameters() const
RankFourTensor cauchyJacobian(const RankFourTensor &Jinv, const RankFourTensor &U) const
Compute the consistent tangent.
RankTwoTensor objectiveUpdateGreenNaghdi(const RankTwoTensor &dS)
Objective update using the Green-Naghdi rate.