www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ADComputeLinearElasticStress< compute_stage > Class Template Reference

ADComputeLinearElasticStress computes the stress following linear elasticity theory (small strains) More...

#include <ADComputeLinearElasticStress.h>

Inheritance diagram for ADComputeLinearElasticStress< compute_stage >:
[legend]

Public Member Functions

 ADComputeLinearElasticStress (const InputParameters &parameters)
 
virtual void initialSetup () override
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computeQpStress () override
 
const ADMaterialProperty (RankFourTensor) &_elasticity_tensor
 Elasticity tensor material property. More...
 
virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 
const ADMaterialProperty (RankTwoTensor) &_mechanical_strain
 

Protected Attributes

const std::string _elasticity_tensor_name
 Name of the elasticity tensor material property. More...
 
 usingComputeStressBaseMembers
 
const std::string _base_name
 
std::vector< const MaterialProperty< RankTwoTensor > * > _extra_stresses
 Extra stress tensors. More...
 
std::vector< const Function * > _initial_stress_fcn
 initial stress components More...
 
 usingMaterialMembers
 

Detailed Description

template<ComputeStage compute_stage>
class ADComputeLinearElasticStress< compute_stage >

ADComputeLinearElasticStress computes the stress following linear elasticity theory (small strains)

Definition at line 20 of file ADComputeLinearElasticStress.h.

Constructor & Destructor Documentation

◆ ADComputeLinearElasticStress()

template<ComputeStage compute_stage>
ADComputeLinearElasticStress< compute_stage >::ADComputeLinearElasticStress ( const InputParameters &  parameters)

Definition at line 26 of file ADComputeLinearElasticStress.C.

29  _elasticity_tensor_name(_base_name + "elasticity_tensor"),
30  _elasticity_tensor(getADMaterialProperty<RankFourTensor>(_elasticity_tensor_name))
31 {
32 }

Member Function Documentation

◆ ADMaterialProperty() [1/2]

template<ComputeStage compute_stage>
const ADComputeLinearElasticStress< compute_stage >::ADMaterialProperty ( RankFourTensor  ) &
protected

Elasticity tensor material property.

◆ ADMaterialProperty() [2/2]

template<ComputeStage compute_stage>
const ADComputeStressBase< compute_stage >::ADMaterialProperty ( RankTwoTensor  ) &
protectedinherited

◆ computeQpProperties()

template<ComputeStage compute_stage>
void ADComputeStressBase< compute_stage >::computeQpProperties ( )
overrideprotectedvirtualinherited

Reimplemented in ADComputeMultiplePorousInelasticStress< compute_stage >.

Definition at line 61 of file ADComputeStressBase.C.

62 {
64 
65  // Add in extra stress
66  for (MooseIndex(_extra_stresses) i = 0; i < _extra_stresses.size(); ++i)
67  _stress[_qp] += (*_extra_stresses[i])[_qp];
68 }

Referenced by ADComputeMultiplePorousInelasticStress< compute_stage >::computeQpProperties().

◆ computeQpStress()

template<ComputeStage compute_stage>
void ADComputeLinearElasticStress< compute_stage >::computeQpStress ( )
overrideprotectedvirtual

Implements ADComputeStressBase< compute_stage >.

Definition at line 46 of file ADComputeLinearElasticStress.C.

47 {
48  // stress = C * e
49  _stress[_qp] = _elasticity_tensor[_qp] * _mechanical_strain[_qp];
50 
51  // Assign value for elastic strain, which is equal to the mechanical strain
52  _elastic_strain[_qp] = _mechanical_strain[_qp];
53 }

◆ initialSetup()

template<ComputeStage compute_stage>
void ADComputeLinearElasticStress< compute_stage >::initialSetup ( )
overridevirtual

Definition at line 36 of file ADComputeLinearElasticStress.C.

37 {
38  if (this->template hasBlockMaterialProperty<RankTwoTensor>(_base_name + "strain_increment"))
39  mooseError("This linear elastic stress calculation only works for small strains; use "
40  "ADComputeFiniteStrainElasticStress for simulations using incremental and finite "
41  "strains.");
42 }

◆ initQpStatefulProperties()

template<ComputeStage compute_stage>
void ADComputeStressBase< compute_stage >::initQpStatefulProperties ( )
overrideprotectedvirtualinherited

◆ validParams()

template<ComputeStage compute_stage>
InputParameters ADComputeLinearElasticStress< compute_stage >::validParams ( )
static

Definition at line 18 of file ADComputeLinearElasticStress.C.

19 {
20  InputParameters params = ADComputeStressBase<compute_stage>::validParams();
21  params.addClassDescription("Compute stress using elasticity for small strains");
22  return params;
23 }

Member Data Documentation

◆ _base_name

template<ComputeStage compute_stage>
const std::string ADComputeStressBase< compute_stage >::_base_name
protectedinherited

Definition at line 53 of file ADComputeStressBase.h.

◆ _elasticity_tensor_name

template<ComputeStage compute_stage>
const std::string ADComputeLinearElasticStress< compute_stage >::_elasticity_tensor_name
protected

Name of the elasticity tensor material property.

Definition at line 42 of file ADComputeLinearElasticStress.h.

◆ _extra_stresses

template<ComputeStage compute_stage>
std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeStressBase< compute_stage >::_extra_stresses
protectedinherited

Extra stress tensors.

Definition at line 60 of file ADComputeStressBase.h.

Referenced by ADComputeStressBase< compute_stage >::ADComputeStressBase().

◆ _initial_stress_fcn

template<ComputeStage compute_stage>
std::vector<const Function *> ADComputeStressBase< compute_stage >::_initial_stress_fcn
protectedinherited

initial stress components

Definition at line 63 of file ADComputeStressBase.h.

◆ usingComputeStressBaseMembers

template<ComputeStage compute_stage>
ADComputeLinearElasticStress< compute_stage >::usingComputeStressBaseMembers
protected

Definition at line 46 of file ADComputeLinearElasticStress.h.

◆ usingMaterialMembers

template<ComputeStage compute_stage>
ADComputeStressBase< compute_stage >::usingMaterialMembers
protectedinherited

Definition at line 65 of file ADComputeStressBase.h.


The documentation for this class was generated from the following files:
ADComputeStressBase::_base_name
const std::string _base_name
Definition: ADComputeStressBase.h:53
ADComputeLinearElasticStress::_elasticity_tensor_name
const std::string _elasticity_tensor_name
Name of the elasticity tensor material property.
Definition: ADComputeLinearElasticStress.h:42
ADComputeStressBase
ADComputeStressBase is the base class for stress tensors.
Definition: ADComputeStressBase.h:25
ADComputeStressBase::_extra_stresses
std::vector< const MaterialProperty< RankTwoTensor > * > _extra_stresses
Extra stress tensors.
Definition: ADComputeStressBase.h:60
ADComputeStressBase::validParams
static InputParameters validParams()
Definition: ADComputeStressBase.C:18
ADComputeStressBase::computeQpStress
virtual void computeQpStress()=0