https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
CompositeElasticityTensor Class Reference

CompositeElasticityTensor provides a simple RankFourTensor type MaterialProperty that can be used as an Elasticity tensor in a mechanics simulation. More...

#include <CompositeElasticityTensor.h>

Inheritance diagram for CompositeElasticityTensor:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 CompositeElasticityTensor (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

void computeQpProperties ()
 
void initializeDerivativeProperties (const std::string name)
 
virtual void computeQpTensorProperties (MaterialProperty< T > &M, Real derivative_prefactor=1.0)
 

Protected Attributes

const std::string _base_name
 Base name of the material system.
 
const std::string _M_name
 
MaterialProperty< RankFourTensor > & _M
 
std::vector< MaterialPropertyName > _tensor_names
 
std::vector< MaterialPropertyName > _weight_names
 
unsigned int _num_args
 
unsigned int _num_comp
 
std::vector< MaterialProperty< T > * > _dM
 
std::vector< std::vector< MaterialProperty< T > * > > _d2M
 
std::vector< const MaterialProperty< T > * > _tensors
 
std::vector< std::vector< const MaterialProperty< T > * > > _dtensors
 
std::vector< std::vector< std::vector< const MaterialProperty< T > * > > > _d2tensors
 
std::vector< const MaterialProperty< Real > * > _weights
 
std::vector< std::vector< const MaterialProperty< Real > * > > _dweights
 
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2weights
 

Private Member Functions

bool haveMaterialProperty (const std::string &prop_name)
 
std::vector< VariableName > buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3)
 
void validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing)
 
bool isNotObjectVariable (const VariableName &name)
 

Private Attributes

FEProblemBase_dmi_fe_problem
 

Detailed Description

CompositeElasticityTensor provides a simple RankFourTensor type MaterialProperty that can be used as an Elasticity tensor in a mechanics simulation.

This tensor is computes as a weighted sum of base elasticity tensors where each weight can be a scalar material property that may depend on simulation variables. The generic logic that computes a weighted sum of tensors is located in the templated base class CompositeTensorBase.

Definition at line 24 of file CompositeElasticityTensor.h.

Constructor & Destructor Documentation

◆ CompositeElasticityTensor()

CompositeElasticityTensor::CompositeElasticityTensor ( const InputParameters parameters)

Definition at line 27 of file CompositeElasticityTensor.C.

29 _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
30 _M_name(_base_name + "elasticity_tensor"),
31 _M(declareProperty<RankFourTensor>(_M_name))
32{
33 // we take the tensor names to be the _base names_ of the elasticity tensors
34 for (unsigned int i = 0; i < _num_comp; ++i)
35 _tensor_names[i] += "_elasticity_tensor";
36
38}
const std::string _base_name
Base name of the material system.
MaterialProperty< RankFourTensor > & _M
void initializeDerivativeProperties(const std::string name)
std::vector< MaterialPropertyName > _tensor_names

Member Function Documentation

◆ computeQpProperties()

void CompositeElasticityTensor::computeQpProperties ( )
protected

Definition at line 41 of file CompositeElasticityTensor.C.

42{
44}
virtual void computeQpTensorProperties(MaterialProperty< T > &M, Real derivative_prefactor=1.0)

◆ validParams()

InputParameters CompositeElasticityTensor::validParams ( )
static

Definition at line 15 of file CompositeElasticityTensor.C.

16{
18 params.addClassDescription("Assemble an elasticity tensor from multiple tensor contributions "
19 "weighted by material properties");
20 params.addParam<std::string>("base_name",
21 "Optional parameter that allows the user to define "
22 "multiple mechanics material systems on the same "
23 "block, i.e. for multiple phases");
24 return params;
25}
static InputParameters validParams()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _base_name

const std::string CompositeElasticityTensor::_base_name
protected

Base name of the material system.

Definition at line 35 of file CompositeElasticityTensor.h.

◆ _M

MaterialProperty<RankFourTensor>& CompositeElasticityTensor::_M
protected

Definition at line 38 of file CompositeElasticityTensor.h.

Referenced by computeQpProperties().

◆ _M_name

const std::string CompositeElasticityTensor::_M_name
protected

Definition at line 36 of file CompositeElasticityTensor.h.

Referenced by CompositeElasticityTensor().


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