20 "Use a large displacement stress update.",
21 "large_kinematics is no longer set on the stress calculator; it is derived from the " 22 "ComputeLagrangianStrain calculator (the single source of truth) via the LARGE_KINEMATICS " 23 "guarantee. Remove it here and set it only on the strain calculator.");
25 params.
addParam<std::string>(
"base_name",
"Material property base name");
35 _large_kinematics(false),
36 _base_name(isParamValid(
"base_name") ? getParam<
std::string>(
"base_name") +
"_" :
""),
37 _cauchy_stress(declareProperty<
RankTwoTensor>(_base_name +
"cauchy_stress")),
38 _cauchy_jacobian(declareProperty<
RankFourTensor>(_base_name +
"cauchy_jacobian")),
39 _pk1_stress(declareProperty<
RankTwoTensor>(_base_name +
"pk1_stress")),
40 _pk1_jacobian(declareProperty<
RankFourTensor>(_base_name +
"pk1_jacobian")),
41 _pk1_jacobian_bypass_fbar(
42 declareProperty<
RankFourTensor>(_base_name +
"pk1_jacobian_bypass_fbar")),
43 _dpk1_d_grad_u(declareProperty<
RankFourTensor>(_base_name +
"dpk1_d_grad_u")),
45 _base_name +
"d_deformation_gradient_d_grad_displacement")),
47 getMaterialPropertyByName<
RankTwoTensor>(_base_name +
"unstabilized_deformation_gradient")),
48 _d_deformation_gradient_increment_d_F(getMaterialPropertyByName<
RankFourTensor>(
49 _base_name +
"d_spatial_deformation_gradient_increment_d_deformation_gradient")),
51 getMaterialPropertyByName<
RankFourTensor>(_base_name +
"d_F_stab_d_F_unstabilized")),
53 getMaterialPropertyByName<
RankFourTensor>(_base_name +
"d_F_stab_d_F_average")),
54 _d_nl_fbar(declareProperty<
RankFourTensor>(_base_name +
"d_nl_fbar_operator"))
73 "large_kinematics disagrees with the ComputeLagrangianStrain calculator (which " 76 " kinematics). large_kinematics is deprecated here; set it only on the strain "
FEProblemBase & _fe_problem
MaterialProperty< RankFourTensor > & _dpk1_d_grad_u
The derivative of the 1st PK stress wrt the displacement gradient (grad u_{n+1}). ...
void paramError(const std::string ¶m, Args... args) const
bool _large_kinematics
If true use large deformations.
const MaterialProperty< RankFourTensor > & _d_F_stab_d_F_avg
d(F_stab)/d(F_avg), the non-local F-bar partial. Read to compose _d_nl_fbar.
const bool & currentlyComputingResidualAndJacobian() const
virtual void initialSetup() override
Derive _large_kinematics from the strain calculator's LARGE_KINEMATICS guarantee. ...
const std::string _base_name
Prepend to the material properties.
MaterialProperty< RankFourTensor > & _d_nl_fbar
Non-local F-bar operator D_nl = cauchy_jacobian : d(dL)/dF : d(F_stab)/d(F_avg), published so the Lag...
virtual void initQpStatefulProperties() override
Initialize everything with zeros.
MaterialProperty< RankFourTensor > & _pk1_jacobian
The derivative of the 1st PK stress wrt the deformation gradient (F that the stress material consumes...
static InputParameters validParams()
const MaterialProperty< RankFourTensor > & _d_deformation_gradient_increment_d_F
d(spatial velocity gradient increment)/d(F_stab).
static InputParameters validParams()
const MaterialProperty< RankFourTensor > & _d_F_d_grad_u
d(F)/d(grad u_{n+1}) (= alpha * IdentityFour for the generalized midpoint rule)
bool isPropertyActive(const unsigned int prop_id) const
virtual void computeQpProperties() override
Update all properties (here just the stress/derivatives)
ComputeLagrangianStressBase(const InputParameters ¶meters)
bool hasGuaranteedMaterialProperty(const MaterialPropertyName &prop, Guarantee guarantee)
const bool & currentlyComputingJacobian() const
virtual void initialSetup()
Add-on class that provides the functionality to check if guarantees for material properties are provi...
bool isParamSetByUser(const std::string &name) const
virtual void computeQpStressUpdate()=0
Provide for the actual stress updates.
MaterialProperty< RankFourTensor > & _cauchy_jacobian
The derivative of the Cauchy stress wrt the increment in the spatial velocity gradient.