https://mooseframework.inl.gov
ComputeLinearViscoelasticStress.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.addClassDescription("Divides total strain into elastic + creep + eigenstrains");
19  params.addParam<std::string>(
20  "apparent_creep_strain",
21  "apparent_creep_strain",
22  "name of the apparent creep strain (defined by a LinearViscoelasticityBase material)");
23  params.addParam<std::string>(
24  "apparent_elasticity_tensor",
25  "apparent_elasticity_tensor",
26  "name of the apparent elasticity tensor (defined by a LinearViscoelasticityBase material)");
27  params.addParam<std::string>(
28  "elasticity_tensor_inv",
29  "elasticity_tensor_inv",
30  "name of the real compliance tensor (defined by a LinearViscoelasticityBase material)");
31  return params;
32 }
33 
35  : ComputeLinearElasticStress(parameters),
36  _creep_strain(declareProperty<RankTwoTensor>(
37  isParamValid("base_name") ? _base_name + "_creep_strain" : "creep_strain")),
38  _creep_strain_old(getMaterialPropertyOld<RankTwoTensor>(
39  isParamValid("base_name") ? _base_name + "_creep_strain" : "creep_strain")),
40  _apparent_creep_strain(getMaterialProperty<RankTwoTensor>("apparent_creep_strain")),
41  _apparent_elasticity_tensor(getMaterialProperty<RankFourTensor>("apparent_elasticity_tensor")),
42  _elasticity_tensor_inv(getMaterialProperty<RankFourTensor>("elasticity_tensor_inv"))
43 {
44 }
45 
46 void
48 {
49  _creep_strain[_qp].zero();
50 }
51 
52 void
54 {
58 
60 
62 
64 }
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)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Mechanical strain material property.
ComputeLinearViscoelasticStress(const InputParameters &parameters)
registerMooseObject("SolidMechanicsApp", ComputeLinearViscoelasticStress)
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...
static InputParameters validParams()
MaterialProperty< RankTwoTensor > & _elastic_strain
Elastic strain material property.
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) ...
void addClassDescription(const std::string &doc_string)
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
const MaterialProperty< RankFourTensor > & _apparent_elasticity_tensor
Apparent elasticity tensor (extracted from a LinearViscoelasticityBase object)
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
ComputeLinearElasticStress computes the stress following linear elasticity theory (small strains) ...