20 "Computes the KKS phase concentration derivatives wrt global concentrations and order " 21 "parameters, which are used in the chain rules in the KKS kernels. This class is intended to " 22 "be used with KKSPhaseConcentrationMaterial.");
27 "Phase concentrations. The order must match Fa, Fb, and global_cs, for example, c1, " 31 params.
addParam<MaterialPropertyName>(
"h_name",
"h",
"Switching function h(eta).");
38 _num_c(coupledComponents(
"global_cs")),
39 _c_names(coupledNames(
"global_cs")),
40 _eta_name(getVar(
"eta", 0)->
name()),
41 _ci_names(getParam<
std::vector<MaterialPropertyName>>(
"ci_names")),
45 _Fa_name(getParam<MaterialName>(
"fa_name")),
46 _Fb_name(getParam<MaterialName>(
"fb_name")),
48 _prop_h(getMaterialProperty<
Real>(
"h_name")),
49 _prop_dh(getMaterialPropertyDerivative<
Real>(
"h_name", _eta_name))
89 _d2Fidcidbi[1][n][l] = &getMaterialPropertyDerivative<Real>(
125 std::vector<Real> k_c(
_num_c * 2);
126 std::vector<Real> x_c(
_num_c * 2);
135 x_c[m] +=
A(m, n) * k_c[n];
142 (*
_dcidb[m][n][i])[
_qp] = x_c[m * 2 + n];
148 std::vector<Real> k_eta(
_num_c * 2);
149 std::vector<Real> x_eta(
_num_c * 2);
162 x_eta[m] +=
A(m, n) * k_eta[n];
virtual void computeQpProperties() override
registerMooseObject("PhaseFieldApp", KKSPhaseConcentrationDerivatives)
const MaterialProperty< Real > & _prop_dh
Derivative of switching function.
static InputParameters validParams()
const MaterialName _Fa_name
Free energy names.
std::vector< const MaterialProperty< Real > * > _prop_ci
const std::vector< MaterialPropertyName > _ci_names
Phase concentrations.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
Second derivative of phase concentrations wrt two phase concentrations .
std::vector< std::vector< MaterialProperty< Real > * > > _dcideta
Derivative of phase concentrations wrt eta .
InputParameters validParams()
const std::vector< VariableName > _c_names
Names of global concentrations.
const MaterialProperty< Real > & _prop_h
Switching function.
const MaterialName _Fb_name
KKSPhaseConcentrationDerivatives(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const unsigned int _num_c
Number of global concentrations.
IntRange< T > make_range(T beg, T end)
const VariableName _eta_name
Phase parameter.
std::vector< std::vector< std::vector< MaterialProperty< Real > * > > > _dcidb
Derivative of phase concentrations wrt global concentrations .