https://mooseframework.inl.gov
ComputeLagrangianStressCustomPK2.C
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 
11 
13 
16 {
18  params.addRequiredParam<MaterialPropertyName>("custom_pk2_stress", "The name of the PK2 stress.");
19  params.addRequiredParam<MaterialPropertyName>(
20  "custom_pk2_jacobian", "The name of the PK2 Jacobian (w.r.t. the deformation gradient).");
21  return params;
22 }
23 
25  const InputParameters & parameters)
26  : ComputeLagrangianStressPK1(parameters),
27  _pk2(getMaterialProperty<RankTwoTensor>("custom_pk2_stress")),
28  _dpk2_dF(getMaterialProperty<RankFourTensor>("custom_pk2_jacobian"))
29 {
30  if (!_large_kinematics)
31  paramError("large_kinematics", "This material requires large kinematics to be enabled.");
32 }
33 
34 void
36 {
37  _pk1_stress[_qp] = _F[_qp] * _pk2[_qp];
38 
39  usingTensorIndices(i, j, k, l, m);
40  _pk1_jacobian[_qp] = _F[_qp].times<i, m, m, j, k, l>(_dpk2_dF[_qp]);
41 }
const MaterialProperty< RankTwoTensor > & _F
Deformation gradient.
Native interface for providing the 1st Piola Kirchhoff stress.
void computeQpPK1Stress() override
Provide for the actual PK stress update (just PK1)
static InputParameters validParams()
MaterialProperty< RankTwoTensor > & _pk1_stress
The 1st Piola-Kirchhoff stress.
const bool _large_kinematics
If true use large deformations.
void addRequiredParam(const std::string &name, const std::string &doc_string)
unsigned int _qp
MaterialProperty< RankFourTensor > & _pk1_jacobian
The derivative of the 1st PK stress wrt the deformation gradient.
registerMooseObject("SolidMechanicsApp", ComputeLagrangianStressCustomPK2)
void paramError(const std::string &param, Args... args) const
const MaterialProperty< RankFourTensor > & _dpk2_dF
2nd PK tangent (dS/dF)
const MaterialProperty< RankTwoTensor > & _pk2
2nd PK stress
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
ComputeLagrangianStressCustomPK2(const InputParameters &parameters)
static const std::string k
Definition: NS.h:130
Adapt a custom-defined PK2 stress and its Jacobian to provide the PK1 stress and its Jacobian...