https://mooseframework.inl.gov
ComputeLagrangianObjectiveStress.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
14 
30 {
31 public:
34 
35 protected:
37  virtual void initQpStatefulProperties() override;
38 
40  virtual void computeQpCauchyStress() override;
41 
43  // This method must provide the _small_stress and _small_jacobian
44  virtual void computeQpSmallStress() = 0;
45 
48 
51 
54 
61 
64 
67 
70 
73 
76 
79 
82 
90 
93 
96 
100 
108  const bool _rotate_old_stress;
109 };
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Provided for material models that use the integrated strain.
const MaterialProperty< RankTwoTensor > * _rotation
Polar-decomposition rotation R of F (and its old value and derivative), published by the strain calcu...
const InputParameters & parameters() const
const MaterialProperty< RankFourTensor > & _d_deformation_gradient_increment_d_F
d(dL)/dF, stored by the strain calculator
const MaterialProperty< RankTwoTensor > & _strain_increment
Provided for material models that use the strain increment.
virtual void computeQpSmallStress()=0
Method to implement to provide the small stress update.
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.
const MooseEnum & _objective_rate
Which objective rate to use (truesdell / jaumann / green_naghdi / rashid).
const bool _rotate_old_stress
If true, the rate runs in passthrough mode – the host discards the rate&#39;s own outer rotation and set...
virtual void initQpStatefulProperties() override
Initialize the new (small) stress.
const MaterialProperty< RankTwoTensor > & _def_grad_old
Deformation gradient.
const MaterialProperty< RankTwoTensor > & _def_grad
Deformation gradient.
const MaterialProperty< RankTwoTensor > * _rotation_old
const MaterialProperty< RankTwoTensor > & _cauchy_stress_old
We need the old Cauchy stress to do the objective integration.
const MaterialProperty< RankTwoTensor > & _deformation_gradient_increment
The spatial velocity gradient increment (dL)
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.
MaterialProperty< RankFourTensor > & _small_jacobian
The updated small algorithmic tangent.
ComputeLagrangianObjectiveStress(const InputParameters &parameters)
const MaterialProperty< RankFourTensor > * _d_rotation_d_F
MaterialProperty< RankTwoTensor > & _small_stress
The updated small stress.
const MaterialProperty< RankFourTensor > & _d_vorticity_increment_d_F
d(dW)/dF from the strain calculator, consumed by Jaumann and Rashid
MaterialProperty< RankFourTensor > & _dcauchy_stress_d_eigenstrain
Derivative of the Cauchy stress with respect to the eigenstrain at this step, d_sigma/d_eigenstrain =...