www.mooseframework.org
ComputeDeformGradBasedStress.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
15 
16 InputParameters
18 {
19  InputParameters params = Material::validParams();
20  params.addClassDescription("Computes stress based on Lagrangian strain");
21  params.addRequiredParam<MaterialPropertyName>("deform_grad_name",
22  "Name of deformation gradient variable");
23  params.addRequiredParam<MaterialPropertyName>("elasticity_tensor_name",
24  "Name of elasticity tensor variable");
25  params.addRequiredParam<MaterialPropertyName>("stress_name", "Name of stress variable");
26  params.addRequiredParam<MaterialPropertyName>("jacobian_name", "Name of Jacobian variable");
27  return params;
28 }
29 
31  : DerivativeMaterialInterface<Material>(parameters),
32  _deformation_gradient(getMaterialProperty<RankTwoTensor>("deform_grad_name")),
33  _elasticity_tensor(getMaterialProperty<RankFourTensor>("elasticity_tensor_name")),
34  _stress(declareProperty<RankTwoTensor>(getParam<MaterialPropertyName>("stress_name"))),
35  _Jacobian_mult(declareProperty<RankFourTensor>(getParam<MaterialPropertyName>("jacobian_name")))
36 {
37 }
38 
39 void
41 {
42  _stress[_qp].zero();
43 }
44 
45 void
47 {
49 }
50 
51 void
53 {
54  const RankTwoTensor iden(RankTwoTensor::initIdentity);
55  RankTwoTensor ee =
56  0.5 * (_deformation_gradient[_qp].transpose() * _deformation_gradient[_qp] - iden);
57  RankTwoTensor pk2 = _elasticity_tensor[_qp] * ee;
58 
59  _stress[_qp] = _deformation_gradient[_qp] * pk2 * _deformation_gradient[_qp].transpose() /
60  _deformation_gradient[_qp].det();
62 }
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeDeformGradBasedStress)
ComputeDeformGradBasedStress::initQpStatefulProperties
virtual void initQpStatefulProperties()
Definition: ComputeDeformGradBasedStress.C:40
ComputeDeformGradBasedStress.h
ComputeDeformGradBasedStress::_Jacobian_mult
MaterialProperty< RankFourTensor > & _Jacobian_mult
Definition: ComputeDeformGradBasedStress.h:42
ComputeDeformGradBasedStress::validParams
static InputParameters validParams()
Definition: ComputeDeformGradBasedStress.C:17
ComputeDeformGradBasedStress::computeQpStress
virtual void computeQpStress()
Definition: ComputeDeformGradBasedStress.C:52
defineLegacyParams
defineLegacyParams(ComputeDeformGradBasedStress)
validParams
InputParameters validParams()
ComputeDeformGradBasedStress::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Definition: ComputeDeformGradBasedStress.h:39
RankFourTensorTempl< Real >
ComputeDeformGradBasedStress::_deformation_gradient
const MaterialProperty< RankTwoTensor > & _deformation_gradient
Definition: ComputeDeformGradBasedStress.h:38
ComputeDeformGradBasedStress
ComputeDeformGradBasedStress computes stress based on lagrangian strain definition.
Definition: ComputeDeformGradBasedStress.h:26
ComputeDeformGradBasedStress::computeQpProperties
virtual void computeQpProperties()
Definition: ComputeDeformGradBasedStress.C:46
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
ComputeDeformGradBasedStress::_stress
MaterialProperty< RankTwoTensor > & _stress
Definition: ComputeDeformGradBasedStress.h:41
ComputeDeformGradBasedStress::ComputeDeformGradBasedStress
ComputeDeformGradBasedStress(const InputParameters &parameters)
Definition: ComputeDeformGradBasedStress.C:30