www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ComputeLinearViscoelasticStress Class Reference

Computes the stress of a linear viscoelastic material, using total small strains. More...

#include <ComputeLinearViscoelasticStress.h>

Inheritance diagram for ComputeLinearViscoelasticStress:
[legend]

Public Member Functions

 ComputeLinearViscoelasticStress (const InputParameters &parameters)
 
virtual void initialSetup ()
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeQpStress () override
 
virtual void computeQpProperties () override
 

Protected Attributes

const MaterialProperty< RankTwoTensor > & _apparent_creep_strain
 Apparent creep strain (extracted from a LinearViscoelasticityBase object) More...
 
const MaterialProperty< RankFourTensor > & _apparent_elasticity_tensor
 Apparent elasticity tensor (extracted from a LinearViscoelasticityBase object) More...
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor_inv
 Instantaneous compliance tensor (extracted from a LinearViscoelasticityBase object) More...
 
const MaterialProperty< RankTwoTensor > & _mechanical_strain
 
const std::string _base_name
 
const std::string _elasticity_tensor_name
 
MaterialProperty< RankTwoTensor > & _stress
 
MaterialProperty< RankTwoTensor > & _elastic_strain
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 
const MaterialProperty< RankTwoTensor > & _extra_stress
 Extra stress tensor. More...
 
std::vector< Function * > _initial_stress_fcn
 initial stress components More...
 
MaterialProperty< RankFourTensor > & _Jacobian_mult
 derivative of stress w.r.t. strain (_dstress_dstrain) More...
 
MaterialProperty< RankTwoTensor > & _creep_strain
 Creep strain variable. More...
 
const MaterialProperty< RankTwoTensor > & _creep_strain_old
 

Detailed Description

Computes the stress of a linear viscoelastic material, using total small strains.

The mechanical strain is decomposed into the elastic strain + the creep strain, the creep strain itself resulting from a spring-dashpot model.

If you need to accomodate other sources of inelastic strains, use a ComputeMultipleInelasticStress material instead, associated with a LinearViscoelasticStressUpdate to represent the creep strain.

Definition at line 31 of file ComputeLinearViscoelasticStress.h.

Constructor & Destructor Documentation

◆ ComputeLinearViscoelasticStress()

ComputeLinearViscoelasticStress::ComputeLinearViscoelasticStress ( const InputParameters &  parameters)

Definition at line 35 of file ComputeLinearViscoelasticStress.C.

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 }
const MaterialProperty< RankTwoTensor > & _apparent_creep_strain
Apparent creep strain (extracted from a LinearViscoelasticityBase object)
const MaterialProperty< RankTwoTensor > & _creep_strain_old
ComputeLinearElasticStress(const InputParameters &parameters)
MaterialProperty< RankTwoTensor > & _creep_strain
Creep strain variable.
const std::string _base_name
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)

Member Function Documentation

◆ computeQpProperties()

void ComputeStressBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 51 of file ComputeStressBase.C.

52 {
54 
55  // Add in extra stress
56  _stress[_qp] += _extra_stress[_qp];
57 }
virtual void computeQpStress()=0
MaterialProperty< RankTwoTensor > & _stress
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.

◆ computeQpStress()

void ComputeLinearViscoelasticStress::computeQpStress ( )
overrideprotectedvirtual

Reimplemented from ComputeLinearElasticStress.

Definition at line 54 of file ComputeLinearViscoelasticStress.C.

55 {
56  _creep_strain[_qp] =
59 
61 
62  _stress[_qp] = _elasticity_tensor[_qp] * _elastic_strain[_qp];
63 
65 }
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)
MaterialProperty< RankTwoTensor > & _stress
const MaterialProperty< RankTwoTensor > & _mechanical_strain
MaterialProperty< RankTwoTensor > & _creep_strain
Creep strain variable.
const MaterialProperty< RankFourTensor > & _elasticity_tensor
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

◆ initialSetup()

void ComputeLinearElasticStress::initialSetup ( )
virtualinherited

Definition at line 30 of file ComputeLinearElasticStress.C.

31 {
32  if (hasBlockMaterialProperty<RankTwoTensor>(_base_name + "strain_increment"))
33  mooseError("This linear elastic stress calculation only works for small strains; use "
34  "ComputeFiniteStrainElasticStress for simulations using incremental and finite "
35  "strains.");
36 }
const std::string _base_name

◆ initQpStatefulProperties()

void ComputeLinearViscoelasticStress::initQpStatefulProperties ( )
overrideprotectedvirtual

Reimplemented from ComputeStressBase.

Definition at line 48 of file ComputeLinearViscoelasticStress.C.

49 {
50  _creep_strain[_qp].zero();
51 }
MaterialProperty< RankTwoTensor > & _creep_strain
Creep strain variable.

Member Data Documentation

◆ _apparent_creep_strain

const MaterialProperty<RankTwoTensor>& ComputeLinearViscoelasticStress::_apparent_creep_strain
protected

Apparent creep strain (extracted from a LinearViscoelasticityBase object)

Definition at line 46 of file ComputeLinearViscoelasticStress.h.

Referenced by computeQpStress().

◆ _apparent_elasticity_tensor

const MaterialProperty<RankFourTensor>& ComputeLinearViscoelasticStress::_apparent_elasticity_tensor
protected

Apparent elasticity tensor (extracted from a LinearViscoelasticityBase object)

Definition at line 48 of file ComputeLinearViscoelasticStress.h.

Referenced by computeQpStress().

◆ _base_name

const std::string ComputeStressBase::_base_name
protectedinherited

◆ _creep_strain

MaterialProperty<RankTwoTensor>& ComputeLinearViscoelasticStress::_creep_strain
protected

Creep strain variable.

Definition at line 41 of file ComputeLinearViscoelasticStress.h.

Referenced by computeQpStress(), and initQpStatefulProperties().

◆ _creep_strain_old

const MaterialProperty<RankTwoTensor>& ComputeLinearViscoelasticStress::_creep_strain_old
protected

Definition at line 42 of file ComputeLinearViscoelasticStress.h.

◆ _elastic_strain

MaterialProperty<RankTwoTensor>& ComputeStressBase::_elastic_strain
protectedinherited

◆ _elasticity_tensor

const MaterialProperty<RankFourTensor>& ComputeStressBase::_elasticity_tensor
protectedinherited

◆ _elasticity_tensor_inv

const MaterialProperty<RankFourTensor>& ComputeLinearViscoelasticStress::_elasticity_tensor_inv
protected

Instantaneous compliance tensor (extracted from a LinearViscoelasticityBase object)

Definition at line 50 of file ComputeLinearViscoelasticStress.h.

Referenced by computeQpStress().

◆ _elasticity_tensor_name

const std::string ComputeStressBase::_elasticity_tensor_name
protectedinherited

◆ _extra_stress

const MaterialProperty<RankTwoTensor>& ComputeStressBase::_extra_stress
protectedinherited

Extra stress tensor.

Definition at line 47 of file ComputeStressBase.h.

Referenced by ComputeStressBase::computeQpProperties().

◆ _initial_stress_fcn

std::vector<Function *> ComputeStressBase::_initial_stress_fcn
protectedinherited

initial stress components

Definition at line 50 of file ComputeStressBase.h.

◆ _Jacobian_mult

MaterialProperty<RankFourTensor>& ComputeStressBase::_Jacobian_mult
protectedinherited

◆ _mechanical_strain

const MaterialProperty<RankTwoTensor>& ComputeLinearElasticStress::_mechanical_strain
protectedinherited

◆ _stress

MaterialProperty<RankTwoTensor>& ComputeStressBase::_stress
protectedinherited

The documentation for this class was generated from the following files: