CompositeTensorBase computes a simple T type MaterialProperty \( \bar T\) that is summed up from a list of other T objects (tensors) \( T_i \) with associated weights \( w_i \). More...
#include <CompositeTensorBase.h>
Public Types | |
| typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
| CompositeTensorBase (const InputParameters ¶meters) | |
| const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialProperty (const std::string &name) |
| Fetch a material property if it exists, otherwise return getZeroMaterialProperty. | |
| const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialPropertyByName (const std::string &name) |
| Fetch a material property by name if it exists, otherwise return getZeroMaterialProperty. | |
| void | validateDerivativeMaterialPropertyBase (const std::string &base) |
| Check if the material property base exists. | |
| const MaterialPropertyName | derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
| Helper functions to generate the material property names for the arbitrary derivatives. | |
| const MaterialPropertyName | derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
| Helper functions to generate the material property names for the first derivatives. | |
| const MaterialPropertyName | derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
| Helper functions to generate the material property names for the second derivatives. | |
| const MaterialPropertyName | derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
| Helper functions to generate the material property names for the third derivatives. | |
| GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
| Methods for declaring derivative material properties. | |
| 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) |
| Methods for retrieving derivative material properties. | |
| 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) |
Convenience methods for retrieving derivative material properties based on a mix of variable names c and indices v into the _coupled_standard_moose_vars vector. | |
| 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) |
| Methods for retrieving derivative material properties. | |
| 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) |
| check if derivatives of the passed in material property exist w.r.t a variable that is not coupled in to the current object | |
| 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="") |
| const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
| aliases for the deprecated old function names | |
| 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 | 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 | initializeDerivativeProperties (const std::string name) |
| Output material properties are initialized here so that derived classes can modify the name. | |
| virtual void | computeQpTensorProperties (MaterialProperty< T > &M, Real derivative_prefactor=1.0) |
| Fill in the. | |
Protected Attributes | |
| std::vector< MaterialPropertyName > | _tensor_names |
| component tensor names | |
| std::vector< MaterialPropertyName > | _weight_names |
| component weight names | |
| unsigned int | _num_args |
| number of dependent variables | |
| unsigned int | _num_comp |
| number of compomemt tensors and weights | |
| std::vector< MaterialProperty< T > * > | _dM |
| Composed tensor and its derivatives. | |
| std::vector< std::vector< MaterialProperty< T > * > > | _d2M |
| std::vector< const MaterialProperty< T > * > | _tensors |
| component tensors and their derivatives w.r.t. the args | |
| std::vector< std::vector< const MaterialProperty< T > * > > | _dtensors |
| std::vector< std::vector< std::vector< const MaterialProperty< T > * > > > | _d2tensors |
| std::vector< const MaterialProperty< Real > * > | _weights |
| component weights and their derivatives w.r.t. the args | |
| 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) |
| Check if a material property is present with the applicable restrictions. | |
| std::vector< VariableName > | buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3) |
| helper method to combine multiple VariableNames into a vector (if they are != "") | |
| void | validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing) |
| helper method to compile list of missing coupled variables for a given system | |
| bool | isNotObjectVariable (const VariableName &name) |
Private Attributes | |
| FEProblemBase & | _dmi_fe_problem |
| Reference to FEProblemBase. | |
CompositeTensorBase computes a simple T type MaterialProperty \( \bar T\) that is summed up from a list of other T objects (tensors) \( T_i \) with associated weights \( w_i \).
\( \bar T = \sum_i T_i\cdot w_i \) Derivatives w.r.t. variables are computed accordingly. This base class is used by the CompositeMobilityTensor and CompositeElasticityTensor classes.
| T | The type of the objects to sum together |
Definition at line 27 of file CompositeTensorBase.h.
|
inherited |
Definition at line 35 of file DerivativeMaterialInterface.h.
| CompositeTensorBase< T, U >::CompositeTensorBase | ( | const InputParameters & | parameters | ) |
Definition at line 81 of file CompositeTensorBase.h.
|
privateinherited |
helper method to combine multiple VariableNames into a vector (if they are != "")
Definition at line 180 of file DerivativeMaterialInterface.h.
|
protectedvirtual |
Fill in the.
The root_property is kept separate from the derivatives to allow the application of this template to the Eigenstrain calculation, which contributes derivatives to a different material property (and uses a derivative_prefactor of -1).
Definition at line 172 of file CompositeTensorBase.h.
|
inherited |
Definition at line 63 of file DerivativeMaterialInterface.h.
|
inherited |
Methods for declaring derivative material properties.
| U | The material property type |
| base | The name of the property to take the derivative of |
| c | The variable(s) to take the derivatives with respect to |
Definition at line 60 of file DerivativeMaterialInterface.h.
|
inherited |
Definition at line 67 of file DerivativeMaterialInterface.h.
|
inherited |
Helper functions to generate the material property names for the arbitrary derivatives.
Definition at line 16 of file DerivativeMaterialPropertyNameInterface.C.
Referenced by DerivativeMaterialPropertyNameInterface::derivativePropertyNameSecond(), DerivativeMaterialPropertyNameInterface::derivativePropertyNameThird(), and DerivativeMaterialPropertyNameInterface::propertyName().
|
inherited |
Helper functions to generate the material property names for the first derivatives.
Definition at line 56 of file DerivativeMaterialPropertyNameInterface.C.
Referenced by DerivativeMaterialPropertyNameInterface::propertyNameFirst(), NEML2Action::setupDerivativeMappings(), and NEML2Action::setupParameterDerivativeMappings().
|
inherited |
Helper functions to generate the material property names for the second derivatives.
Definition at line 63 of file DerivativeMaterialPropertyNameInterface.C.
Referenced by DerivativeMaterialPropertyNameInterface::propertyNameSecond().
|
inherited |
Helper functions to generate the material property names for the third derivatives.
Definition at line 70 of file DerivativeMaterialPropertyNameInterface.C.
Referenced by DerivativeMaterialPropertyNameInterface::propertyNameThird().
|
inherited |
Fetch a material property if it exists, otherwise return getZeroMaterialProperty.
| name | The input parameter key of type MaterialPropertyName |
Definition at line 44 of file DerivativeMaterialInterface.h.
|
inherited |
Fetch a material property by name if it exists, otherwise return getZeroMaterialProperty.
Definition at line 49 of file DerivativeMaterialInterface.h.
|
inherited |
Check if base is a default property and shortcut to returning zero, as derivatives of constants are zero.
Definition at line 86 of file DerivativeMaterialInterface.h.
|
inherited |
Methods for retrieving derivative material properties.
| U | The material property type |
| base | The name of the property to take the derivative of |
| c | The variable(s) to take the derivatives with respect to |
Definition at line 82 of file DerivativeMaterialInterface.h.
|
inherited |
Check if base is a default property and shortcut to returning zero, as derivatives of constants are zero.
Definition at line 90 of file DerivativeMaterialInterface.h.
|
inherited |
Convenience methods for retrieving derivative material properties based on a mix of variable names c and indices v into the _coupled_standard_moose_vars vector.
Definition at line 103 of file DerivativeMaterialInterface.h.
|
inherited |
Definition at line 110 of file DerivativeMaterialInterface.h.
|
inherited |
Definition at line 130 of file DerivativeMaterialInterface.h.
|
inherited |
Methods for retrieving derivative material properties.
| U | The material property type |
| base | The name of the property to take the derivative of |
| c | The variable(s) to take the derivatives with respect to |
Definition at line 125 of file DerivativeMaterialInterface.h.
|
inherited |
Definition at line 135 of file DerivativeMaterialInterface.h.
|
privateinherited |
Check if a material property is present with the applicable restrictions.
Definition at line 176 of file DerivativeMaterialInterface.h.
|
protected |
Output material properties are initialized here so that derived classes can modify the name.
Definition at line 113 of file CompositeTensorBase.h.
|
inlineprivateinherited |
Definition at line 191 of file DerivativeMaterialInterface.h.
|
inlineinherited |
aliases for the deprecated old function names
Definition at line 59 of file DerivativeMaterialPropertyNameInterface.h.
|
inlineinherited |
Definition at line 65 of file DerivativeMaterialPropertyNameInterface.h.
|
inlineinherited |
Definition at line 71 of file DerivativeMaterialPropertyNameInterface.h.
|
inlineinherited |
Definition at line 78 of file DerivativeMaterialPropertyNameInterface.h.
|
inherited |
check if derivatives of the passed in material property exist w.r.t a variable that is not coupled in to the current object
Definition at line 147 of file DerivativeMaterialInterface.h.
|
inherited |
Definition at line 152 of file DerivativeMaterialInterface.h.
|
privateinherited |
helper method to compile list of missing coupled variables for a given system
Definition at line 184 of file DerivativeMaterialInterface.h.
|
inherited |
Check if the material property base exists.
Print a warning if it doesn't. This is useful in materials that pull in only derivative properties, which are optional. If the base property name has a typo all derivatives will be set to zero without the user ever knowing.
Definition at line 171 of file DerivativeMaterialInterface.h.
|
inherited |
Definition at line 158 of file DerivativeMaterialInterface.h.
|
static |
Definition at line 102 of file CompositeTensorBase.h.
|
protected |
Definition at line 64 of file CompositeTensorBase.h.
|
protected |
Definition at line 70 of file CompositeTensorBase.h.
|
protected |
Definition at line 76 of file CompositeTensorBase.h.
|
protected |
Composed tensor and its derivatives.
Definition at line 63 of file CompositeTensorBase.h.
|
privateinherited |
Reference to FEProblemBase.
Definition at line 194 of file DerivativeMaterialInterface.h.
|
protected |
Definition at line 69 of file CompositeTensorBase.h.
|
protected |
Definition at line 75 of file CompositeTensorBase.h.
|
protected |
number of dependent variables
Definition at line 58 of file CompositeTensorBase.h.
|
protected |
number of compomemt tensors and weights
Definition at line 60 of file CompositeTensorBase.h.
Referenced by CompositeTensorBase< T, U >::CompositeTensorBase().
|
protected |
component tensor names
Definition at line 53 of file CompositeTensorBase.h.
|
protected |
component tensors and their derivatives w.r.t. the args
Definition at line 68 of file CompositeTensorBase.h.
|
protected |
component weight names
Definition at line 55 of file CompositeTensorBase.h.
Referenced by CompositeTensorBase< T, U >::CompositeTensorBase().
|
protected |
component weights and their derivatives w.r.t. the args
Definition at line 74 of file CompositeTensorBase.h.