15 #define usingFunctionMaterialBaseMembers(T) \ 16 usingMaterialMembers; \ 17 using FunctionMaterialBase<T>::_args; \ 18 using FunctionMaterialBase<T>::_F_name; \ 19 using FunctionMaterialBase<T>::_nargs; \ 20 using FunctionMaterialBase<T>::_arg_names; \ 21 using FunctionMaterialBase<T>::_arg_numbers; \ 22 using FunctionMaterialBase<T>::_arg_param_names; \ 23 using FunctionMaterialBase<T>::_arg_param_numbers; \ 24 using FunctionMaterialBase<T>::_arg_constant_defaults; \ 25 using FunctionMaterialBase<T>::_prop_F; \ 26 using FunctionMaterialBase<T>::_communicator 32 template <
bool is_ad = false>
55 unsigned int argIndex(
unsigned int i_var)
const 59 "Requesting argIndex() for a derivative w.r.t. a variable not coupled to.");
64 std::vector<const GenericVariableValue<is_ad> *>
_args;
98 const int b =
static_cast<int>(var);
99 return b >= 0 ? b << 1 : (-b << 1) - 1;
104 unsigned int comp = 0);
typename Moose::GenericType< VariableValue, is_ad > GenericVariableValue
std::vector< unsigned int > _arg_numbers
Vector of all argument MOOSE variable numbers.
Material base class, central to all Materials that provide a Function as a material property value...
const GenericVariableValue< is_ad > & coupledGenericValue(const std::string &var_name, unsigned int comp=0)
helper function for coupling ad/regular variable values
std::string _F_name
Name of the function value material property and used as a base name to concatenate the material prop...
std::vector< int > _arg_param_numbers
bool _mapping_is_unique
Flag that indicates if exactly one linear variable is coupled per input file coupling parameter...
std::vector< std::string > _arg_names
String vector of all argument names.
static InputParameters validParams()
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
std::vector< std::string > _arg_constant_defaults
coupled variables with default values
FunctionMaterialBase(const InputParameters ¶meters)
std::vector< std::string > _arg_param_names
String vector of the input file coupling parameter name for each argument.
unsigned int argIndex(unsigned int i_var) const
FunctionMaterialBase keeps an internal list of all the variables the derivatives are taken w...
std::vector< unsigned int > _arg_index
Vector to look up the internal coupled variable index into arg* through the libMesh variable number...
Interface class ("Veneer") to provide generator methods for derivative material property names...
GenericMaterialProperty< Real, is_ad > * _prop_F
Material property to store the function value.
const InputParameters & parameters() const
Get the parameters of the object.
unsigned int _nargs
Number of coupled arguments.
unsigned int libMeshVarNumberRemap(unsigned int var) const
map the variable numbers to an even/odd interspersed pattern
std::vector< const GenericVariableValue< is_ad > * > _args
Coupled variables for function arguments.