Material properties get fully described using this structure, including their dependent variables and derivation state. More...
#include <FunctionMaterialPropertyDescriptor.h>
Public Types | |
typedef std::string | SymbolName |
Public Member Functions | |
FunctionMaterialPropertyDescriptor (const std::string &, MooseObject *, bool required=false) | |
FunctionMaterialPropertyDescriptor ()=delete | |
no default constructor More... | |
FunctionMaterialPropertyDescriptor (const FunctionMaterialPropertyDescriptor &) | |
copy constructor More... | |
FunctionMaterialPropertyDescriptor (const FunctionMaterialPropertyDescriptor &, MooseObject *) | |
copy constructor assigning new parent More... | |
FunctionMaterialPropertyDescriptor & | operator= (const FunctionMaterialPropertyDescriptor &)=default |
const std::string & | getSymbolName () const |
get the fparser symbol name More... | |
void | setSymbolName (const std::string &n) |
set the fparser symbol name More... | |
const std::string & | getPropertyName () const |
get the property name More... | |
GenericReal< is_ad > | value (unsigned int qp=libMesh::invalid_uint) const |
get the property value at the given quadrature point More... | |
void | addDerivative (const SymbolName &symbol) |
take another derivative More... | |
bool | dependsOn (const SymbolName &symbol) const |
Check if a material property depends on a given FParser symbol. More... | |
std::vector< SymbolName > | getDependentSymbols () |
builds a list of dependent symbols (exactly all symbols for which depends on returns true) More... | |
void | printDebug () |
output the internal state of this descriptor for debugging purposes More... | |
void | updatePropertyName () |
update the cached _property_name member More... | |
const MaterialPropertyName | derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
Helper functions to generate the material property names for the arbitrary derivatives. More... | |
const MaterialPropertyName | derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
Helper functions to generate the material property names for the first derivatives. More... | |
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. More... | |
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. More... | |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
aliases for the deprecated old function names More... | |
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 std::vector< FunctionMaterialPropertyDescriptor > | parseVector (const std::vector< std::string > &, MooseObject *) |
construct a vector of FunctionMaterialPropertyDescriptors from a vector of strings More... | |
Private Types | |
enum | PropertyState { PropertyState::CURRENT, PropertyState::OLD, PropertyState::OLDER } |
property state More... | |
Private Member Functions | |
void | parseDerivative (const std::string &) |
void | parseDependentSymbols (const std::string &) |
Private Attributes | |
enum FunctionMaterialPropertyDescriptor::PropertyState | _state |
std::string | _fparser_name |
name used in function expression More... | |
std::string | _base_name |
function material property base name More... | |
std::vector< SymbolName > | _dependent_symbols |
std::vector< SymbolName > | _derivative_symbols |
const GenericMaterialProperty< Real, is_ad > * | _value |
material property value (this is lazily updated and cached when read through value()) More... | |
const MaterialProperty< Real > * | _old_older_value |
old/older material property value (this is lazily updated and cached when read through value()) More... | |
MooseObject * | _parent |
material object that owns this descriptor More... | |
std::string | _property_name |
cache the final property name of the derivative More... | |
bool | _required |
is this a property that was directly specified by the user? Then it must exist. More... | |
Material properties get fully described using this structure, including their dependent variables and derivation state.
Definition at line 25 of file FunctionMaterialPropertyDescriptor.h.
|
inherited |
Definition at line 25 of file DerivativeMaterialPropertyNameInterface.h.
|
strongprivate |
property state
Enumerator | |
---|---|
CURRENT | |
OLD | |
OLDER |
Definition at line 97 of file FunctionMaterialPropertyDescriptor.h.
FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor | ( | const std::string & | expression, |
MooseObject * | parent, | ||
bool | required = false |
||
) |
Definition at line 17 of file FunctionMaterialPropertyDescriptor.C.
|
delete |
no default constructor
FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor | ( | const FunctionMaterialPropertyDescriptor< is_ad > & | rhs | ) |
copy constructor
Definition at line 50 of file FunctionMaterialPropertyDescriptor.C.
FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor | ( | const FunctionMaterialPropertyDescriptor< is_ad > & | rhs, |
MooseObject * | parent | ||
) |
copy constructor assigning new parent
Definition at line 66 of file FunctionMaterialPropertyDescriptor.C.
void FunctionMaterialPropertyDescriptor< is_ad >::addDerivative | ( | const SymbolName & | symbol | ) |
take another derivative
Definition at line 94 of file FunctionMaterialPropertyDescriptor.C.
Referenced by DerivativeParsedMaterialHelperTempl< is_ad >::recurseMatProps().
bool FunctionMaterialPropertyDescriptor< is_ad >::dependsOn | ( | const SymbolName & | symbol | ) | const |
Check if a material property depends on a given FParser symbol.
A dependency is indicated by either directly specifying it, or by requesting a derivative w.r.t. that symbol using the D[x,a] syntax
Definition at line 103 of file FunctionMaterialPropertyDescriptor.C.
|
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().
|
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().
std::vector< DerivativeMaterialPropertyNameInterface::SymbolName > FunctionMaterialPropertyDescriptor< is_ad >::getDependentSymbols | ( | ) |
builds a list of dependent symbols (exactly all symbols for which depends on returns true)
Definition at line 113 of file FunctionMaterialPropertyDescriptor.C.
|
inline |
get the property name
Definition at line 68 of file FunctionMaterialPropertyDescriptor.h.
|
inline |
get the fparser symbol name
Definition at line 62 of file FunctionMaterialPropertyDescriptor.h.
|
default |
|
private |
Definition at line 190 of file FunctionMaterialPropertyDescriptor.C.
|
private |
Definition at line 123 of file FunctionMaterialPropertyDescriptor.C.
Referenced by FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor().
|
static |
construct a vector of FunctionMaterialPropertyDescriptors from a vector of strings
Definition at line 83 of file FunctionMaterialPropertyDescriptor.C.
void FunctionMaterialPropertyDescriptor< is_ad >::printDebug | ( | ) |
output the internal state of this descriptor for debugging purposes
Definition at line 219 of file FunctionMaterialPropertyDescriptor.C.
|
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.
|
inline |
set the fparser symbol name
Definition at line 65 of file FunctionMaterialPropertyDescriptor.h.
Referenced by DerivativeParsedMaterialHelperTempl< is_ad >::recurseMatProps().
void FunctionMaterialPropertyDescriptor< is_ad >::updatePropertyName | ( | ) |
update the cached _property_name member
Definition at line 291 of file FunctionMaterialPropertyDescriptor.C.
Referenced by FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor().
GenericReal< is_ad > FunctionMaterialPropertyDescriptor< is_ad >::value | ( | unsigned int | qp = libMesh::invalid_uint | ) | const |
get the property value at the given quadrature point
Definition at line 232 of file FunctionMaterialPropertyDescriptor.C.
|
private |
function material property base name
Definition at line 108 of file FunctionMaterialPropertyDescriptor.h.
Referenced by FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor().
|
private |
Definition at line 110 of file FunctionMaterialPropertyDescriptor.h.
|
private |
Definition at line 111 of file FunctionMaterialPropertyDescriptor.h.
|
private |
name used in function expression
Definition at line 105 of file FunctionMaterialPropertyDescriptor.h.
Referenced by FunctionMaterialPropertyDescriptor< is_ad >::FunctionMaterialPropertyDescriptor(), FunctionMaterialPropertyDescriptor< is_ad >::getSymbolName(), and FunctionMaterialPropertyDescriptor< is_ad >::setSymbolName().
|
mutableprivate |
old/older material property value (this is lazily updated and cached when read through value())
Definition at line 117 of file FunctionMaterialPropertyDescriptor.h.
|
private |
material object that owns this descriptor
Definition at line 120 of file FunctionMaterialPropertyDescriptor.h.
|
private |
cache the final property name of the derivative
Definition at line 123 of file FunctionMaterialPropertyDescriptor.h.
Referenced by FunctionMaterialPropertyDescriptor< is_ad >::getPropertyName().
|
private |
is this a property that was directly specified by the user? Then it must exist.
Definition at line 126 of file FunctionMaterialPropertyDescriptor.h.
|
private |
|
mutableprivate |
material property value (this is lazily updated and cached when read through value())
Definition at line 114 of file FunctionMaterialPropertyDescriptor.h.