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)
56 for (
unsigned int j = i; j <
_num_eta; ++j)
69 for (
unsigned int i = 0; i <
_num_eta; ++i)
MaterialProperty< Real > & _prop_g
Barrier function and its derivatives.
CrossTermBarrierFunctionBase(const InputParameters ¶meters)
unsigned int _num_eta
order parameters
std::string _function_name
name of the function of eta (used to generate the material property names)
std::vector< Real > _W_ij
barrier function height matrix
virtual void computeQpProperties()
std::vector< MaterialProperty< Real > * > _prop_dg
std::vector< std::vector< MaterialProperty< Real > * > > _prop_d2g
static InputParameters validParams()
const std::vector< VariableName > _eta_names
static InputParameters validParams()