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

ADComputeStressBase is the base class for stress tensors. More...

#include <ADComputeStressBase.h>

Inheritance diagram for ADComputeStressBase< compute_stage >:
[legend]

Public Member Functions

 ADComputeStressBase (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 
virtual void computeQpStress ()=0
 
const ADMaterialProperty (RankTwoTensor) &_mechanical_strain
 
 ADMaterialProperty (RankTwoTensor) &_stress
 
 ADMaterialProperty (RankTwoTensor) &_elastic_strain
 

Protected Attributes

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 ADComputeStressBase< compute_stage >

ADComputeStressBase is the base class for stress tensors.

Definition at line 25 of file ADComputeStressBase.h.

Constructor & Destructor Documentation

◆ ADComputeStressBase()

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

Definition at line 34 of file ADComputeStressBase.C.

35  : ADMaterial<compute_stage>(parameters),
36  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
37  _mechanical_strain(getADMaterialProperty<RankTwoTensor>(_base_name + "mechanical_strain")),
38  _stress(declareADProperty<RankTwoTensor>(_base_name + "stress")),
39  _elastic_strain(declareADProperty<RankTwoTensor>(_base_name + "elastic_strain")),
40  _extra_stresses(getParam<std::vector<MaterialPropertyName>>("extra_stress_names").size())
41 {
42  if (getParam<bool>("use_displaced_mesh"))
43  mooseError("The stress calculator needs to run on the undisplaced mesh.");
44 
45  const std::vector<MaterialPropertyName> extra_stress_names =
46  getParam<std::vector<MaterialPropertyName>>("extra_stress_names");
47  for (MooseIndex(_extra_stresses) i = 0; i < _extra_stresses.size(); ++i)
48  _extra_stresses[i] = &getMaterialProperty<RankTwoTensor>(extra_stress_names[i]);
49 }

Member Function Documentation

◆ ADMaterialProperty() [1/3]

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

◆ ADMaterialProperty() [2/3]

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

◆ ADMaterialProperty() [3/3]

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

◆ computeQpProperties()

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

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>
virtual void ADComputeStressBase< compute_stage >::computeQpStress ( )
protectedpure virtual

◆ initQpStatefulProperties()

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

◆ validParams()

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

Definition at line 18 of file ADComputeStressBase.C.

19 {
20  InputParameters params = ADMaterial<compute_stage>::validParams();
21  params.addParam<std::string>("base_name",
22  "Optional parameter that allows the user to define "
23  "multiple mechanics material systems on the same "
24  "block, i.e. for multiple phases");
25  params.suppressParameter<bool>("use_displaced_mesh");
26  params.addParam<std::vector<MaterialPropertyName>>(
27  "extra_stress_names",
28  std::vector<MaterialPropertyName>(),
29  "Material property names of rank two tensors to be added to the stress.");
30  return params;
31 }

Referenced by ADComputeLinearElasticStress< compute_stage >::validParams(), and ADComputeFiniteStrainElasticStress< compute_stage >::validParams().

Member Data Documentation

◆ _base_name

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

Definition at line 53 of file ADComputeStressBase.h.

◆ _extra_stresses

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

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
protected

initial stress components

Definition at line 63 of file ADComputeStressBase.h.

◆ usingMaterialMembers

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

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
validParams
InputParameters validParams()
ADComputeStressBase::_extra_stresses
std::vector< const MaterialProperty< RankTwoTensor > * > _extra_stresses
Extra stress tensors.
Definition: ADComputeStressBase.h:60
ADComputeStressBase::computeQpStress
virtual void computeQpStress()=0