www.mooseframework.org
LinearViscoelasticStressUpdate.h
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 #ifndef LINEARVISCOELASTICSTRESSUPDATE_H
8 #define LINEARVISCOELASTICSTRESSUPDATE_H
9 
10 #include "StressUpdateBase.h"
12 
14 
15 template <>
17 
29 {
30 public:
31  LinearViscoelasticStressUpdate(const InputParameters & parameters);
32 
37  virtual void updateState(RankTwoTensor & strain_increment,
38  RankTwoTensor & inelastic_strain_increment,
39  const RankTwoTensor & rotation_increment,
40  RankTwoTensor & stress_new,
41  const RankTwoTensor & stress_old,
42  const RankFourTensor & elasticity_tensor,
43  const RankTwoTensor & elastic_strain_old,
44  bool compute_full_tangent_operator,
45  RankFourTensor & tangent_operator) override;
46 
48  virtual void propagateQpStatefulProperties() override;
49 
50  virtual bool requiresIsotropicTensor() override { return false; }
51 
52 protected:
53  virtual void initQpStatefulProperties() override;
54 
55  std::string _base_name;
56 
58  MaterialProperty<RankTwoTensor> & _creep_strain;
59  const MaterialProperty<RankTwoTensor> & _creep_strain_old;
60 
62  const MaterialProperty<RankTwoTensor> & _apparent_creep_strain;
64  const MaterialProperty<RankFourTensor> & _apparent_elasticity_tensor;
66  const MaterialProperty<RankFourTensor> & _instantaneous_elasticity_tensor_inv;
67 };
68 
69 #endif // LINEARVISCOELASTICSTRESSUPDATE_H
LinearViscoelasticStressUpdate(const InputParameters &parameters)
StressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in t...
const MaterialProperty< RankFourTensor > & _apparent_elasticity_tensor
Apparent elasticity tensor (extracted from a LinearViscoelasticityBase object)
virtual bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
const MaterialProperty< RankTwoTensor > & _creep_strain_old
virtual void updateState(RankTwoTensor &strain_increment, RankTwoTensor &inelastic_strain_increment, const RankTwoTensor &rotation_increment, RankTwoTensor &stress_new, const RankTwoTensor &stress_old, const RankFourTensor &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator, RankFourTensor &tangent_operator) override
Computes the new creep strain, and removes the creep contribution from the elastic strains and stress...
This class computes a creep strain increment associated with a linear viscoelastic model contained in...
virtual void propagateQpStatefulProperties() override
Reimplemented from StressUpdateBase.
const MaterialProperty< RankTwoTensor > & _apparent_creep_strain
Apparent creep strain (extracted from a LinearViscoelasticityBase object)
MaterialProperty< RankTwoTensor > & _creep_strain
Creep strain.
InputParameters validParams< LinearViscoelasticStressUpdate >()
const MaterialProperty< RankFourTensor > & _instantaneous_elasticity_tensor_inv
Instantaneous compliance tensor (extracted from a LinearViscoelasticityBase object) ...