18 params.
addClassDescription(
"Free energy contribution from the cross terms in ACMultiInterface");
21 "Matrix of kappa names with rows and columns corresponding to each variable "
22 "name in interfacial_vars in the same order (should be symmetric).");
32 "Size of interfacial_vars squared is not equal to the size of kappa_names in "
33 "CrossTermGradientFreeEnergy");
36 for (
unsigned int i = 0; i <
_nvars; ++i)
40 for (
unsigned int j = 0; j <
_nvars; ++j)
54 for (
unsigned int i = 0; i <
_nvars; ++i)
55 for (
unsigned int j = 0; j < i; ++j)
57 const RealGradient cross =
59 total_energy += (*
_kappas[i][j])[
_qp] / 2.0 * cross * cross;
registerMooseObject("PhaseFieldApp", CrossTermGradientFreeEnergy)
Cross term gradient free energy contribution used by ACMultiInterface.
static InputParameters validParams()
virtual Real computeValue()
CrossTermGradientFreeEnergy(const InputParameters ¶meters)
std::vector< std::vector< const MaterialProperty< Real > * > > _kappas
void paramError(const std::string ¶m, Args... args) const
Total free energy (both the bulk and gradient parts), where the bulk free energy has been defined in ...
const std::vector< const VariableGradient * > _grad_vars
std::vector< MaterialPropertyName > _kappa_names
Gradient free energy prefactor kappa.
const std::vector< const VariableValue * > _vars
const VariableValue & _additional_free_energy
Additional free energy contribution.
static InputParameters validParams()
unsigned int _nvars
Coupled interface variables.