18 params.
addClassDescription(
"Two phase material that combines n phase materials using a switching " 19 "function with and n non-conserved order parameters (to be used with " 20 "SwitchingFunctionConstraint*).");
21 params.
addCoupledVar(
"etas",
"Order parameters for all phases.");
30 paramError(
"hi_names",
"The number of hi_names must be equal to the number of coupled etas");
32 for (
unsigned int i = 0; i <
_num_etas; ++i)
38 _d3hi[i] = &getMaterialPropertyDerivative<Real>(
46 const unsigned int i =
argIndex(i_var);
54 for (
unsigned n = 0; n <
_num_fi; ++n)
63 const unsigned int i =
argIndex(i_var);
70 if (i_eta >= 0 && j_eta >= 0)
77 return d2F +
_W * (*
_d2g[i_eta][j_eta])[
_qp];
91 for (
unsigned n = 0; n <
_num_fi; ++n)
99 const unsigned int i =
argIndex(i_var);
108 if (i_eta >= 0 && j_eta >= 0 && k_eta >= 0)
116 return d3F +
_W * (*
_d3g[i_eta][j_eta][k_eta])[
_qp];
121 if (i_eta >= 0 && j_eta >= 0)
124 if (j_eta >= 0 && k_eta >= 0)
127 if (k_eta >= 0 && i_eta >= 0)
144 for (
unsigned n = 0; n <
_num_fi; ++n)
virtual Real computeDF(unsigned int i_var)
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d2Fi
Second derivatives of Fi.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d3g
std::vector< const MaterialProperty< Real > * > _dg
Barrier function derivatives.
std::vector< const MaterialProperty< Real > * > _d2hi
registerMooseObject("PhaseFieldApp", DerivativeMultiPhaseMaterial)
std::vector< MaterialPropertyName > _hi_names
phase switching function names
unsigned int _num_etas
name of the order parameter variable
std::vector< std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > > _prop_d3Fi
Third derivatives of Fi.
Real _W
Phase transformation energy barrier.
std::vector< const MaterialProperty< Real > * > _hi
Switching functions.
Multi phase free energy material that combines an arbitrary number of phase free energies to a global...
std::vector< const MaterialProperty< Real > * > _d3hi
void paramError(const std::string ¶m, Args... args) const
unsigned int argIndex(unsigned int i_var) const
virtual Real computeD3F(unsigned int i_var, unsigned int j_var, unsigned int k_var)
std::vector< VariableName > _eta_names
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< std::vector< const MaterialProperty< Real > * > > _d2g
static InputParameters validParams()
std::vector< int > _eta_index
If the variable a non-conserved OP this array holds the index into the etas parameter vector for a gi...
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
DerivativeMaterial child class to evaluate a parsed function for the free energy and automatically pr...
std::vector< const MaterialProperty< Real > * > _prop_Fi
Function value of the i phase.
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dFi
Derivatives of Fi w.r.t. arg[i].
static InputParameters validParams()
std::vector< const MaterialProperty< Real > * > _dhi
Function value of the i phase.
DerivativeMultiPhaseMaterial(const InputParameters ¶meters)
static const std::string k
virtual Real computeD2F(unsigned int i_var, unsigned int j_var)