20 "f_name",
"Name of the parsed material property",
"f_name is deprecated, use property_name");
22 params.
addParam<std::string>(
"property_name",
"F",
"Name of the parsed material property");
29 _F_name(getRenamedParam<
std::string>(
"f_name",
"property_name")),
30 _prop_F(&declareGenericProperty<
Real, is_ad>(_F_name))
33 _mapping_is_unique =
true;
34 for (
const auto & var_param : _pars.getCoupledVariableParamNames())
37 const auto it = _coupled_vars.find(var_param);
41 if (it == _coupled_vars.end())
43 if (_pars.hasDefaultCoupledValue(var_param))
44 _arg_constant_defaults.push_back(var_param);
47 const auto &
vars = it->second;
51 _mapping_is_unique =
false;
56 mooseAssert(
vars[comp],
"Null variable");
57 const auto & var_name =
vars[comp]->name();
59 if (std::find(_arg_names.begin(), _arg_names.end(), var_name) != _arg_names.end())
60 mooseError(
"A nonlinear variable can only be coupled in once.");
63 const auto number = coupled(var_param, comp);
64 _arg_names.push_back(var_name);
65 _arg_numbers.push_back(number);
66 _arg_param_names.push_back(var_param);
67 if (_mapping_is_unique)
68 _arg_param_numbers.push_back(-1);
70 _arg_param_numbers.push_back(comp);
73 const auto idx = libMeshVarNumberRemap(number);
74 if (idx >= _arg_index.size())
75 _arg_index.resize(idx + 1, -1);
77 _arg_index[
idx] = _args.size();
80 _args.push_back(&coupledGenericValue(var_param, comp));
84 _nargs = _arg_names.size();
91 return coupledValue(var_name, comp);
98 return adCoupledValue(var_name, comp);
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Moose::GenericType< VariableValue, is_ad > GenericVariableValue
Interface class ("Veneer") to provide generator methods for derivative material property names.
Material base class, central to all Materials that provide a Function as a material property value.
static InputParameters validParams()
const GenericVariableValue< is_ad > & coupledGenericValue(const std::string &var_name, unsigned int comp=0)
helper function for coupling ad/regular variable values
FunctionMaterialBase(const InputParameters ¶meters)
Materials compute MaterialProperties.
static InputParameters validParams()
auto index_range(const T &sizable)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real