15 #include "libmesh/fparser_ad.hh" 17 #define usingDerivativeParsedMaterialHelperMembers(T) \ 18 usingParsedMaterialHelperMembers(T); \ 19 using typename DerivativeParsedMaterialHelperTempl<T>::Derivative; \ 20 using typename DerivativeParsedMaterialHelperTempl<T>::MaterialPropertyDerivativeRule; \ 21 using DerivativeParsedMaterialHelperTempl<T>::_derivative_order; \ 22 using DerivativeParsedMaterialHelperTempl<T>::_derivatives 93 :
_parent(p), _var(v), _child(c)
unsigned int _dmatvar_index
next available variable number for automatically created material property derivative variables ...
MaterialPropertyDerivativeRule(std::string p, std::string v, std::string c)
std::shared_ptr< SymFunction > SymFunctionPtr
Shorthand for an smart pointer to an autodiff function parser object.
std::vector< std::size_t > _derivative_symbol_table
list of all indices into _variable_names to take derivatives, w.r.t.
void computeQpProperties() override
Users must override this method.
DerivativeParsedMaterialHelperTempl< true > ADDerivativeParsedMaterialHelper
void assembleDerivatives()
Perform construction of all requested derivatives.
DerivativeParsedMaterialHelperTempl< false > DerivativeParsedMaterialHelper
std::vector< Derivative > _derivatives
The requested derivatives of the free energy (sorted by order)
Helper class to perform the auto derivative taking.
void recurseMatProps(unsigned int var, unsigned int order, const MatPropDescriptorList &parent_mpd)
GenericMaterialProperty< Real, is_ad > * _mat_prop
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
void functionsPostParse() override
static InputParameters validParams()
const std::string _dmatvar_base
variable base name for the dynamically material property derivatives
Helper class to perform the parsing and optimization of the function expression.
void recurseDerivative(unsigned int var, unsigned int order, const Derivative &parent_derivative)
const InputParameters & parameters() const
Get the parameters of the object.
void initQpStatefulProperties() override
Initialize stateful properties at quadrature points.
std::vector< SymbolName > _darg_names
unsigned int _derivative_order
maximum derivative order
DerivativeParsedMaterialHelperTempl(const InputParameters ¶meters, VariableNameMappingMode map_mode=VariableNameMappingMode::USE_PARAM_NAMES)
const ParallelParamObject & _parent
DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
std::vector< MaterialPropertyDerivativeRule > _bulk_rules
std::vector< FunctionMaterialPropertyDescriptor< is_ad > > MatPropDescriptorList
convenience typedef for the material property descriptors
usingParsedMaterialHelperMembers(is_ad)