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

ADComputeVariableIsotropicElasticityTensor defines an elasticity tensor material for isotropic materials in which the elastic constants (Young's modulus and Poisson's ratio) vary as defined by material properties. More...

#include <ADComputeVariableIsotropicElasticityTensor.h>

Inheritance diagram for ADComputeVariableIsotropicElasticityTensor< compute_stage >:
[legend]

Public Member Functions

 ADComputeVariableIsotropicElasticityTensor (const InputParameters &parameters)
 
bool hasGuarantee (const MaterialPropertyName &prop_name, Guarantee guarantee)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computeQpElasticityTensor () override
 
const ADMaterialProperty (Real) &_youngs_modulus
 Material defining the Young's Modulus. More...
 
const ADMaterialProperty (Real) &_poissons_ratio
 Material defining the Poisson's Ratio. More...
 
virtual void computeQpProperties ()
 
 ADMaterialProperty (RankFourTensor) &_elasticity_tensor
 
void issueGuarantee (const MaterialPropertyName &prop_name, Guarantee guarantee)
 
void revokeGuarantee (const MaterialPropertyName &prop_name, Guarantee guarantee)
 

Protected Attributes

 usingComputeElasticityTensorBaseMembers
 
const std::string _base_name
 
std::string _elasticity_tensor_name
 
const Function *const _prefactor_function
 prefactor function to multiply the elasticity tensor with More...
 
 usingMaterialMembers
 

Private Attributes

std::map< MaterialPropertyName, std::set< Guarantee > > _guarantees
 

Detailed Description

template<ComputeStage compute_stage>
class ADComputeVariableIsotropicElasticityTensor< compute_stage >

ADComputeVariableIsotropicElasticityTensor defines an elasticity tensor material for isotropic materials in which the elastic constants (Young's modulus and Poisson's ratio) vary as defined by material properties.

Definition at line 15 of file ADComputeVariableIsotropicElasticityTensor.h.

Constructor & Destructor Documentation

◆ ADComputeVariableIsotropicElasticityTensor()

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

Definition at line 33 of file ADComputeVariableIsotropicElasticityTensor.C.

35  _youngs_modulus(getADMaterialProperty<Real>("youngs_modulus")),
36  _poissons_ratio(getADMaterialProperty<Real>("poissons_ratio"))
37 {
38  // all tensors created by this class are always isotropic
40 }

Member Function Documentation

◆ ADMaterialProperty() [1/3]

template<ComputeStage compute_stage>
ADComputeElasticityTensorBase< compute_stage >::ADMaterialProperty ( RankFourTensor  ) &
protectedinherited

◆ ADMaterialProperty() [2/3]

template<ComputeStage compute_stage>
const ADComputeVariableIsotropicElasticityTensor< compute_stage >::ADMaterialProperty ( Real  ) &
protected

Material defining the Poisson's Ratio.

◆ ADMaterialProperty() [3/3]

template<ComputeStage compute_stage>
const ADComputeVariableIsotropicElasticityTensor< compute_stage >::ADMaterialProperty ( Real  ) &
protected

Material defining the Young's Modulus.

◆ computeQpElasticityTensor()

template<ComputeStage compute_stage>
void ADComputeVariableIsotropicElasticityTensor< compute_stage >::computeQpElasticityTensor ( )
overrideprotectedvirtual

Implements ADComputeElasticityTensorBase< compute_stage >.

Definition at line 44 of file ADComputeVariableIsotropicElasticityTensor.C.

45 {
46  _elasticity_tensor[_qp].fillSymmetricIsotropicEandNu(_youngs_modulus[_qp], _poissons_ratio[_qp]);
47 }

◆ computeQpProperties()

template<ComputeStage compute_stage>
void ADComputeElasticityTensorBase< compute_stage >::computeQpProperties ( )
protectedvirtualinherited

Definition at line 46 of file ADComputeElasticityTensorBase.C.

47 {
49 
50  // Multiply by prefactor
52  _elasticity_tensor[_qp] *= _prefactor_function->value(_t, _q_point[_qp]);
53 }

◆ hasGuarantee()

bool GuaranteeProvider::hasGuarantee ( const MaterialPropertyName &  prop_name,
Guarantee  guarantee 
)
inherited

Definition at line 16 of file GuaranteeProvider.C.

17 {
18  auto it = _guarantees.find(prop_name);
19  if (it == _guarantees.end())
20  return false;
21 
22  auto it2 = it->second.find(guarantee);
23  return it2 != it->second.end();
24 }

◆ issueGuarantee()

void GuaranteeProvider::issueGuarantee ( const MaterialPropertyName &  prop_name,
Guarantee  guarantee 
)
protectedinherited

◆ revokeGuarantee()

void GuaranteeProvider::revokeGuarantee ( const MaterialPropertyName &  prop_name,
Guarantee  guarantee 
)
protectedinherited

Definition at line 34 of file GuaranteeProvider.C.

35 {
36  auto it = _guarantees.find(prop_name);
37  if (it != _guarantees.end())
38  it->second.erase(guarantee);
39 }

Referenced by ComputeElasticityTensorCP::ComputeElasticityTensorCP().

◆ validParams()

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

Definition at line 19 of file ADComputeVariableIsotropicElasticityTensor.C.

20 {
22  params.addClassDescription("Compute an isotropic elasticity tensor for elastic constants that "
23  "change as a function of material properties");
24  params.addRequiredParam<MaterialPropertyName>("youngs_modulus",
25  "Name of material defining the Young's Modulus");
26  params.addRequiredParam<MaterialPropertyName>("poissons_ratio",
27  "Name of material defining the Poisson's Ratio");
28  return params;
29 }

Member Data Documentation

◆ _base_name

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

Definition at line 48 of file ADComputeElasticityTensorBase.h.

◆ _elasticity_tensor_name

template<ComputeStage compute_stage>
std::string ADComputeElasticityTensorBase< compute_stage >::_elasticity_tensor_name
protectedinherited

◆ _guarantees

std::map<MaterialPropertyName, std::set<Guarantee> > GuaranteeProvider::_guarantees
privateinherited

◆ _prefactor_function

template<ComputeStage compute_stage>
const Function* const ADComputeElasticityTensorBase< compute_stage >::_prefactor_function
protectedinherited

prefactor function to multiply the elasticity tensor with

Definition at line 54 of file ADComputeElasticityTensorBase.h.

◆ usingComputeElasticityTensorBaseMembers

template<ComputeStage compute_stage>
ADComputeVariableIsotropicElasticityTensor< compute_stage >::usingComputeElasticityTensorBaseMembers
protected

Definition at line 42 of file ADComputeVariableIsotropicElasticityTensor.h.

◆ usingMaterialMembers

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

Definition at line 56 of file ADComputeElasticityTensorBase.h.


The documentation for this class was generated from the following files:
GuaranteeProvider::_guarantees
std::map< MaterialPropertyName, std::set< Guarantee > > _guarantees
Definition: GuaranteeProvider.h:37
ADComputeElasticityTensorBase::validParams
static InputParameters validParams()
Definition: ADComputeElasticityTensorBase.C:17
GuaranteeProvider::issueGuarantee
void issueGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
Definition: GuaranteeProvider.C:27
ADComputeElasticityTensorBase::_elasticity_tensor_name
std::string _elasticity_tensor_name
Definition: ADComputeElasticityTensorBase.h:49
ADComputeElasticityTensorBase
ADComputeElasticityTensorBase is a the base class for computing elasticity tensors.
Definition: ADComputeElasticityTensorBase.h:24
ADComputeElasticityTensorBase::computeQpElasticityTensor
virtual void computeQpElasticityTensor()=0
ADComputeElasticityTensorBase::_prefactor_function
const Function *const _prefactor_function
prefactor function to multiply the elasticity tensor with
Definition: ADComputeElasticityTensorBase.h:54
Guarantee::ISOTROPIC