ComputeFiniteStrainElasticStressBirchMurnaghan.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7
8
9 template <>
10 InputParameters
12 {
13  InputParameters params = validParams<ComputeBirchMurnaghanEquationOfStress>();
14  params.addClassDescription("Compute stress using elasticity for finite strains,"
15  "add bulk viscosity damping and"
16  "substitute the volumetric part of the stress with"
17  "a Murnaghan equation of state");
18  return params;
19 }
20
22  const InputParameters & parameters)
24  GuaranteeConsumer(this),
25  _strain_increment(getMaterialPropertyByName<RankTwoTensor>(_base_name + "strain_increment")),
26  _rotation_increment(
27  getMaterialPropertyByName<RankTwoTensor>(_base_name + "rotation_increment")),
28  _stress_old(getMaterialPropertyOld<RankTwoTensor>(_base_name + "stress")),
29  _elastic_strain_old(getMaterialPropertyOldByName<RankTwoTensor>(_base_name + "elastic_strain"))
30 {
31 }
32
33 void
35 {
37  mooseError("ComputeFiniteStrainElasticStressBirchMurnaghan can only be used with elasticity "
38  "tensor materials "
39  "that guarantee isotropic tensors.");
40 }
41
42 void
44 {
46 }
47
48 void
50 {
51  // Calculate the stress in the intermediate configuration
52  RankTwoTensor intermediate_stress;
53
54  // Check if the elasticity tensor has changed values
55  intermediate_stress =
57
58  // Rotate the stress state to the current configuration
59  _stress[_qp] =
60  _rotation_increment[_qp] * intermediate_stress * _rotation_increment[_qp].transpose();
61
62  // Assign value for elastic strain, which is equal to the mechanical strain
64
65  // Compute dstress_dstrain
66  _Jacobian_mult[_qp] = _elasticity_tensor[_qp]; // This is NOT the exact jacobian
67 }
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
const std::string _elasticity_tensor_name
InputParameters validParams< ComputeFiniteStrainElasticStressBirchMurnaghan >()
MaterialProperty< RankTwoTensor > & _stress
virtual void initQpStatefulProperties() override
const MaterialProperty< RankTwoTensor > & _mechanical_strain
const MaterialProperty< RankTwoTensor > & _elastic_strain_old
The old elastic strain is used to calculate the old stress in the case of variable elasticity tensors...
virtual void initQpStatefulProperties() override
ComputeFiniteStrainElasticStressBirchMurnaghan(const InputParameters &parameters)
const MaterialProperty< RankFourTensor > & _elasticity_tensor
InputParameters validParams< ComputeBirchMurnaghanEquationOfStress >()
MaterialProperty< RankTwoTensor > & _elastic_strain
const MaterialProperty< RankTwoTensor > & _rotation_increment
bool hasGuaranteedMaterialProperty(const MaterialPropertyName &prop, Guarantee guarantee)
const MaterialProperty< RankTwoTensor > & _strain_increment
Add-on class that provides the functionality to check if guarantees for material properties are provi...