58 static std::vector<FunctionMaterialPropertyDescriptor>
std::vector< SymbolName > _dependent_symbols
Moose::GenericType< Real, is_ad > GenericReal
GenericReal< is_ad > value(unsigned int qp=libMesh::invalid_uint) const
get the property value at the given quadrature point
std::vector< SymbolName > _derivative_symbols
bool _required
is this a property that was directly specified by the user? Then it must exist.
std::string _base_name
function material property base name
const unsigned int invalid_uint
void parseDependentSymbols(const std::string &)
Material properties get fully described using this structure, including their dependent variables and...
void setSymbolName(const std::string &n)
set the fparser symbol name
std::string _property_name
cache the final property name of the derivative
void printDebug()
output the internal state of this descriptor for debugging purposes
void addDerivative(const SymbolName &symbol)
take another derivative
FunctionMaterialPropertyDescriptor()=delete
no default constructor
const std::string & getSymbolName() const
get the fparser symbol name
PropertyState
property state
Every object that can be built by the factory should be derived from this class.
enum FunctionMaterialPropertyDescriptor::PropertyState _state
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
void parseDerivative(const std::string &)
static std::vector< FunctionMaterialPropertyDescriptor > parseVector(const std::vector< std::string > &, MooseObject *)
construct a vector of FunctionMaterialPropertyDescriptors from a vector of strings ...
std::string _fparser_name
name used in function expression
const MaterialProperty< Real > * _old_older_value
old/older material property value (this is lazily updated and cached when read through value()) ...
void updatePropertyName()
update the cached _property_name member
FunctionMaterialPropertyDescriptor & operator=(const FunctionMaterialPropertyDescriptor &)=default
MooseObject * _parent
material object that owns this descriptor
bool dependsOn(const SymbolName &symbol) const
Check if a material property depends on a given FParser symbol.
const std::string & getPropertyName() const
get the property name
const GenericMaterialProperty< Real, is_ad > * _value
material property value (this is lazily updated and cached when read through value()) ...
std::vector< SymbolName > getDependentSymbols()
builds a list of dependent symbols (exactly all symbols for which depends on returns true) ...