www.mooseframework.org
ComputeLinearViscoelasticStress.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 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<ComputeLinearElasticStress>();
19  params.addClassDescription("Divides total strain into elastic + creep + eigenstrains");
20  params.addParam<std::string>(
21  "apparent_creep_strain",
22  "apparent_creep_strain",
23  "name of the apparent creep strain (defined by a LinearViscoelasticityBase material)");
24  params.addParam<std::string>(
25  "apparent_elasticity_tensor",
26  "apparent_elasticity_tensor",
27  "name of the apparent elasticity tensor (defined by a LinearViscoelasticityBase material)");
28  params.addParam<std::string>(
29  "elasticity_tensor_inv",
30  "elasticity_tensor_inv",
31  "name of the real compliance tensor (defined by a LinearViscoelasticityBase material)");
32  return params;
33 }
34 
36  : ComputeLinearElasticStress(parameters),
37  _creep_strain(declareProperty<RankTwoTensor>(
38  isParamValid("base_name") ? _base_name + "_creep_strain" : "creep_strain")),
39  _creep_strain_old(getMaterialPropertyOld<RankTwoTensor>(
40  isParamValid("base_name") ? _base_name + "_creep_strain" : "creep_strain")),
41  _apparent_creep_strain(getMaterialProperty<RankTwoTensor>("apparent_creep_strain")),
42  _apparent_elasticity_tensor(getMaterialProperty<RankFourTensor>("apparent_elasticity_tensor")),
43  _elasticity_tensor_inv(getMaterialProperty<RankFourTensor>("elasticity_tensor_inv"))
44 {
45 }
46 
47 void
49 {
50  _creep_strain[_qp].zero();
51 }
52 
53 void
55 {
56  _creep_strain[_qp] =
59 
61 
62  _stress[_qp] = _elasticity_tensor[_qp] * _elastic_strain[_qp];
63 
65 }
InputParameters validParams< ComputeLinearViscoelasticStress >()
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
const MaterialProperty< RankTwoTensor > & _apparent_creep_strain
Apparent creep strain (extracted from a LinearViscoelasticityBase object)
InputParameters validParams< ComputeLinearElasticStress >()
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
ComputeLinearViscoelasticStress(const InputParameters &parameters)
registerMooseObject("TensorMechanicsApp", ComputeLinearViscoelasticStress)
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Mechanical strain material property.
MaterialProperty< RankTwoTensor > & _creep_strain
Creep strain variable.
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point...
Computes the stress of a linear viscoelastic material, using total small strains. ...
const MaterialProperty< RankFourTensor > & _elasticity_tensor_inv
Instantaneous compliance tensor (extracted from a LinearViscoelasticityBase object) ...
const MaterialProperty< RankFourTensor > & _apparent_elasticity_tensor
Apparent elasticity tensor (extracted from a LinearViscoelasticityBase object)
MaterialProperty< RankTwoTensor > & _elastic_strain
Elastic strain material property.
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
ComputeLinearElasticStress computes the stress following linear elasticity theory (small strains) ...