www.mooseframework.org
ComputeFiniteStrainElasticStress.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 = ComputeStressBase::validParams();
20  params.addClassDescription("Compute stress using elasticity for finite strains");
21  return params;
22 }
23 
25  const InputParameters & parameters)
26  : ComputeStressBase(parameters),
27  GuaranteeConsumer(this),
28  _elasticity_tensor_name(_base_name + "elasticity_tensor"),
29  _elasticity_tensor(getMaterialPropertyByName<RankFourTensor>(_elasticity_tensor_name)),
30  _strain_increment(getMaterialPropertyByName<RankTwoTensor>(_base_name + "strain_increment")),
31  _rotation_increment(
32  getMaterialPropertyByName<RankTwoTensor>(_base_name + "rotation_increment")),
33  _stress_old(getMaterialPropertyOldByName<RankTwoTensor>(_base_name + "stress")),
34  _elastic_strain_old(getMaterialPropertyOldByName<RankTwoTensor>(_base_name + "elastic_strain"))
35 {
36 }
37 
38 void
40 {
42  mooseError("ComputeFiniteStrainElasticStress can only be used with elasticity tensor materials "
43  "that guarantee isotropic tensors.");
44 }
45 
46 void
48 {
49  // Calculate the stress in the intermediate configuration
50  RankTwoTensor intermediate_stress;
51 
52  intermediate_stress =
54 
55  // Rotate the stress state to the current configuration
56  _stress[_qp] =
57  _rotation_increment[_qp] * intermediate_stress * _rotation_increment[_qp].transpose();
58 
59  // Assign value for elastic strain, which is equal to the mechanical strain
61 
62  // Compute dstress_dstrain
63  _Jacobian_mult[_qp] = _elasticity_tensor[_qp]; // This is NOT the exact jacobian
64 }
ComputeFiniteStrainElasticStress::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
Definition: ComputeFiniteStrainElasticStress.h:39
ComputeFiniteStrainElasticStress::_strain_increment
const MaterialProperty< RankTwoTensor > & _strain_increment
Strain increment material property.
Definition: ComputeFiniteStrainElasticStress.h:41
ComputeFiniteStrainElasticStress
ComputeFiniteStrainElasticStress computes the stress following elasticity theory for finite strains.
Definition: ComputeFiniteStrainElasticStress.h:24
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
ComputeFiniteStrainElasticStress::_elasticity_tensor_name
const std::string _elasticity_tensor_name
Name of the elasticity tensor material property.
Definition: ComputeFiniteStrainElasticStress.h:37
ComputeStressBase::_Jacobian_mult
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
Definition: ComputeStressBase.h:61
ComputeFiniteStrainElasticStress::_rotation_increment
const MaterialProperty< RankTwoTensor > & _rotation_increment
Rotation increment material property.
Definition: ComputeFiniteStrainElasticStress.h:43
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeFiniteStrainElasticStress)
ComputeStressBase
ComputeStressBase is the base class for stress tensors.
Definition: ComputeStressBase.h:26
ComputeStressBase::validParams
static InputParameters validParams()
Definition: ComputeStressBase.C:17
ComputeFiniteStrainElasticStress::_elastic_strain_old
const MaterialProperty< RankTwoTensor > & _elastic_strain_old
The old elastic strain is used to calculate the old stress in the case of variable elasticity tensors...
Definition: ComputeFiniteStrainElasticStress.h:51
GuaranteeConsumer
Add-on class that provides the functionality to check if guarantees for material properties are provi...
Definition: GuaranteeConsumer.h:25
ComputeFiniteStrainElasticStress::ComputeFiniteStrainElasticStress
ComputeFiniteStrainElasticStress(const InputParameters &parameters)
Definition: ComputeFiniteStrainElasticStress.C:24
ComputeStressBase::_elastic_strain
MaterialProperty< RankTwoTensor > & _elastic_strain
Elastic strain material property.
Definition: ComputeStressBase.h:52
GuaranteeConsumer::hasGuaranteedMaterialProperty
bool hasGuaranteedMaterialProperty(const MaterialPropertyName &prop, Guarantee guarantee)
Definition: GuaranteeConsumer.C:28
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
ComputeFiniteStrainElasticStress::initialSetup
void initialSetup() override
Definition: ComputeFiniteStrainElasticStress.C:39
ComputeStressBase::_mechanical_strain
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Mechanical strain material property.
Definition: ComputeStressBase.h:48
defineLegacyParams
defineLegacyParams(ComputeFiniteStrainElasticStress)
ComputeFiniteStrainElasticStress::computeQpStress
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
Definition: ComputeFiniteStrainElasticStress.C:47
ComputeFiniteStrainElasticStress::validParams
static InputParameters validParams()
Definition: ComputeFiniteStrainElasticStress.C:17
RankTwoTensorTempl< Real >
ComputeFiniteStrainElasticStress.h
Guarantee::ISOTROPIC