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)
54 for (
unsigned int i = 0; i <
_nvars; ++i)
55 for (
unsigned int j = 0;
j < i; ++
j)
59 total_energy += (*
_kappas[i][
j])[
_qp] / 2.0 * cross * cross;
virtual Real computeValue()
Total free energy (both the bulk and gradient parts), where the bulk free energy has been defined in ...
unsigned int _nvars
Coupled interface variables.
registerMooseObject("PhaseFieldApp", CrossTermGradientFreeEnergy)
const VariableValue & _additional_free_energy
Additional free energy contribution.
Cross term gradient free energy contribution used by ACMultiInterface.
void paramError(const std::string ¶m, Args... args) const
static InputParameters validParams()
std::vector< std::vector< const MaterialProperty< Real > * > > _kappas
const std::vector< const VariableValue * > _vars
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
const std::vector< const VariableGradient * > _grad_vars
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
CrossTermGradientFreeEnergy(const InputParameters ¶meters)
std::vector< MaterialPropertyName > _kappa_names
Gradient free energy prefactor kappa.