21 "Coupled function to evaluate with values from v");
23 "chemical_potential_functions",
"Coupled function to evaluate with values from v");
25 "List of up to four coupled variables that are substituted for x,y,z, and t "
26 "in the coupled function");
27 params.
set<
unsigned int>(
"derivative_order") = 2;
33 _free_energy_function(
34 isParamValid(
"free_energy_function") ? &getFunction(
"free_energy_function") : nullptr),
35 _chemical_potential_names(getParam<
std::vector<FunctionName>>(
"chemical_potential_functions")),
36 _chemical_potential_functions(_nargs)
40 "chemical_potential_functions",
41 "Exactly one chemical potential function must be supplied for each coupled variable");
44 for (
unsigned int i = 0; i <
_nargs; ++i)
53 "The undifferentiated free energy property is requested in the simulation, but no "
54 "function is provided");
65 for (
unsigned int i = 0; i < 3 && i <
_nargs; ++i)
74 for (
unsigned int i = 0; i <
_nargs; ++i)
82 for (
unsigned int j = i; j < 3 && j <
_nargs; ++j)
registerMooseObject("PhaseFieldApp", CoupledValueFunctionFreeEnergy)
Compute free energy and chemical potentials from user supplied MooseFunctions.
CoupledValueFunctionFreeEnergy(const InputParameters ¶meters)
void initialSetup() override
std::vector< const Function * > _chemical_potential_functions
static InputParameters validParams()
void computeProperties() override
const std::vector< FunctionName > _chemical_potential_names
const Function * _free_energy_function
static InputParameters validParams()
std::vector< std::vector< GenericMaterialProperty< Real, is_ad > * > > _prop_d2F
std::vector< GenericMaterialProperty< Real, is_ad > * > _prop_dF
const Function & getFunctionByName(const FunctionName &name) const
std::vector< const GenericVariableValue< is_ad > * > _args
GenericMaterialProperty< Real, is_ad > * _prop_F
virtual Real value(Real t, const Point &p) const
const QBase *const & _qrule
void paramError(const std::string ¶m, Args... args) const