16 params.
addParam<std::string>(
"function_name",
"g",
"actual name for g(eta_i)");
17 MooseEnum g_order(
"SIMPLE=0 LOW",
"SIMPLE");
18 params.
addParam<
MooseEnum>(
"g_order", g_order,
"Polynomial order of the barrier function g(eta)");
21 "Terms controlling barrier height set W=1 in " 22 "DerivativeMultiPhaseMaterial for these to " 29 _function_name(getParam<
std::string>(
"function_name")),
31 _W_ij(getParam<
std::vector<
Real>>(
"W_ij")),
32 _num_eta(coupledComponents(
"etas")),
33 _eta_names(coupledNames(
"etas")),
34 _eta(coupledValues(
"etas")),
35 _prop_g(declareProperty<
Real>(_function_name)),
42 "Size of W_ij does not match (number of etas)^2. Supply W_ij of correct size.");
45 for (
unsigned int i = 0; i <
_num_eta; ++i)
47 paramError(
"W_ij",
"Set on-diagonal values of W_ij to zero.");
50 for (
unsigned int i = 0; i <
_num_eta; ++i)
53 for (
unsigned int i = 0; i <
_num_eta; ++i)
69 for (
unsigned int i = 0; i <
_num_eta; ++i)
std::vector< Real > _W_ij
barrier function height matrix
std::vector< std::vector< MaterialProperty< Real > * > > _prop_d2g
const std::vector< VariableName > _eta_names
std::string _function_name
name of the function of eta (used to generate the material property names)
unsigned int _num_eta
order parameters
std::vector< MaterialProperty< Real > * > _prop_dg
virtual void computeQpProperties()
CrossTermBarrierFunctionBase(const InputParameters ¶meters)
static InputParameters validParams()
void paramError(const std::string ¶m, Args... args) const
MaterialProperty< Real > & _prop_g
Barrier function and its derivatives.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static InputParameters validParams()