18 params.
addClassDescription(
"Test-only Saint-Venant-Kirchhoff PK2 stress with analytic dPK2/dF, "
19 "used to exercise ComputeLagrangianStressCustomPK2 with the Jacobian "
23 params.
addParam<MaterialPropertyName>(
24 "pk2_name",
"test_pk2",
"Name to publish the PK2 stress as.");
25 params.
addParam<MaterialPropertyName>(
26 "dpk2_dF_name",
"test_dpk2_dF",
"Name to publish dPK2/dF as.");
27 params.
addParam<MaterialPropertyName>(
28 "deformation_gradient",
29 "deformation_gradient",
30 "Strain-calc's deformation gradient (F-bar-stabilized when F-bar is on).");
36 _lambda(getParam<Real>(
"lambda")),
37 _mu(getParam<Real>(
"mu")),
38 _F(getMaterialProperty<
RankTwoTensor>(
"deformation_gradient")),
39 _pk2(declareProperty<
RankTwoTensor>(getParam<MaterialPropertyName>(
"pk2_name"))),
40 _dpk2_dF(declareProperty<
RankFourTensor>(getParam<MaterialPropertyName>(
"dpk2_dF_name")))
58 for (
unsigned int i = 0; i < 3; ++i)
59 for (
unsigned int j = 0; j < 3; ++j)
60 for (
unsigned int p = 0;
p < 3; ++
p)
61 for (
unsigned int q = 0; q < 3; ++q)
63 Real
v =
_lambda * (i == j ? 1.0 : 0.0) * F(
p, q);
registerMooseObject("SolidMechanicsTestApp", StVenantKirchhoffPK2Test)
static InputParameters validParams()
RankTwoTensorTempl< T > transpose() const
static RankTwoTensorTempl Identity()
Publishes an isotropic Saint-Venant-Kirchhoff PK2 stress and dPK2/dF analytically.
void computeQpProperties() override
StVenantKirchhoffPK2Test(const InputParameters ¶meters)
MaterialProperty< RankTwoTensor > & _pk2
static InputParameters validParams()
const MaterialProperty< RankTwoTensor > & _F
Strain-calc-published F (= F-bar-stabilized when F-bar is on; equal to F_ust otherwise).
MaterialProperty< RankFourTensor > & _dpk2_dF