https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
KKSPhaseConcentrationMultiPhaseMaterial Class Reference

#include <KKSPhaseConcentrationMultiPhaseMaterial.h>

Inheritance diagram for KKSPhaseConcentrationMultiPhaseMaterial:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 KKSPhaseConcentrationMultiPhaseMaterial (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void initialSetup () override
 
virtual void computeQpProperties () override
 

Protected Attributes

const std::vector< const VariableValue * > _prop_c
 Global concentrations.
 
const unsigned int _num_c
 Number of global concentrations.
 
const unsigned int _num_j
 Number of phase parameters.
 
const std::vector< VariableName > _args_names
 Coupled variables of free energies.
 
const unsigned int _n_args
 Number of coupled variables of free energies.
 
MaterialProperty< Real > & _iter
 Number of nested Newton iteration.
 
const bool _damped_newton
 Check whether to use damping.
 
NestedSolve _nested_solve
 Instantiation of the NestedSolve class.
 
std::vector< MaterialBase * > _Fj_mat
 Free energy instantiation of the MaterialBase class.
 
std::vector< MaterialPropertyName > _hj_names
 Switching functions.
 
std::vector< const MaterialProperty< Real > * > _prop_hj
 
const std::vector< MaterialName > _Fj_names
 Free energies.
 
std::vector< const MaterialProperty< Real > * > _prop_Fi
 
std::vector< MaterialPropertyName > _ci_names
 Phase concentrations.
 
std::vector< MaterialProperty< Real > * > _prop_ci
 
std::vector< const MaterialProperty< Real > * > _ci_old
 
std::vector< Real > _ci_IC
 
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidci
 Derivative of free energies wrt phase concentrations \( \frac d{dc_i} F_i \).
 
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
 
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
 Derivative of free energies wrt coupled variables \( \frac d{dq} F_i \).
 
std::vector< std::vector< const MaterialProperty< Real > * > > _d2F1dc1darg
 
const Real _abs_tol
 Absolute and relative tolerance of nested Newton iteration.
 
const Real _rel_tol
 
MaterialName _condition_name
 Condition that must be violated for damping to occur.
 
MaterialBase_condition
 
const MaterialProperty< Real > * _C
 

Private Member Functions

bool haveMaterialProperty (const std::string &prop_name)
 
std::vector< VariableName > buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3)
 
void validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing)
 
bool isNotObjectVariable (const VariableName &name)
 

Private Attributes

FEProblemBase_dmi_fe_problem
 

Detailed Description

Definition at line 15 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Constructor & Destructor Documentation

◆ KKSPhaseConcentrationMultiPhaseMaterial()

KKSPhaseConcentrationMultiPhaseMaterial::KKSPhaseConcentrationMultiPhaseMaterial ( const InputParameters parameters)

Definition at line 50 of file KKSPhaseConcentrationMultiPhaseMaterial.C.

53 _prop_c(coupledValues("global_cs")),
54 _num_c(coupledComponents("global_cs")),
55 _num_j(coupledComponents("all_etas")),
56 _hj_names(getParam<std::vector<MaterialPropertyName>>("hj_names")),
58 _Fj_names(getParam<std::vector<MaterialName>>("Fj_names")),
60 _ci_names(getParam<std::vector<MaterialPropertyName>>("ci_names")),
63 _ci_IC(getParam<std::vector<Real>>("ci_IC")),
66 _args_names(coupledNames("args")),
67 _n_args(coupledComponents("args")),
70 _iter(declareProperty<Real>("nested_iterations")),
71 _abs_tol(getParam<Real>("absolute_tolerance")),
72 _rel_tol(getParam<Real>("relative_tolerance")),
73 _damped_newton(getParam<bool>("damped_Newton")),
74 _condition_name(getParam<MaterialName>("conditions")),
75 _nested_solve(NestedSolve(parameters))
76
77{
78 // phase concentrations
79 for (const auto m : make_range(_num_c * _num_j))
80 {
81 _ci_old[m] = &getMaterialPropertyOld<Real>(_ci_names[m]);
82 _prop_ci[m] = &declareProperty<Real>(_ci_names[m]);
83 }
84
85 // free energies
86 for (const auto m : make_range(_num_j))
87 _prop_Fi[m] = &getMaterialPropertyByName<Real>(_Fj_names[m]);
88
89 // free energy derivatives w.r.t. phase concentrations
90 for (const auto m : make_range(_num_j))
91 {
92 _prop_hj[m] = &getMaterialPropertyByName<Real>(_hj_names[m]);
93
94 _dFidci[m].resize(_num_c);
95 _d2Fidcidbi[m].resize(_num_c);
96
97 for (const auto n : make_range(_num_c))
98 {
99 _dFidci[m][n] = &getMaterialPropertyDerivative<Real>(_Fj_names[m], _ci_names[m + n * _num_j]);
100
101 _d2Fidcidbi[m][n].resize(_num_c);
102
103 for (unsigned int l = 0; l < _num_c; ++l)
104 {
105 _d2Fidcidbi[m][n][l] = &getMaterialPropertyDerivative<Real>(
106 _Fj_names[m], _ci_names[m + n * _num_j], _ci_names[m + l * _num_j]);
107 }
108 }
109 }
110
111 // derivative of free energies wrt coupled variables
112 for (const auto m : make_range(_num_j))
113 {
114 _dFidarg[m].resize(_n_args);
115
116 for (const auto n : make_range(_n_args))
118 }
119
120 // second derivatives of F1 wrt c1 and other coupled variables
121 for (const auto m : make_range(_num_c))
122 {
123 _d2F1dc1darg[m].resize(_n_args);
124
125 for (const auto n : make_range(_n_args))
126 {
127 _d2F1dc1darg[m][n] =
128 &getMaterialPropertyDerivative<Real>(_Fj_names[0], _ci_names[m * _num_j], _args_names[n]);
129 }
130 }
131
132 if (_damped_newton)
133 _C = &getMaterialPropertyByName<Real>(_condition_name);
134 else
135 _C = nullptr;
136}
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative(const std::string &base, const std::vector< VariableName > &c)
const unsigned int _num_c
Number of global concentrations.
const unsigned int _n_args
Number of coupled variables of free energies.
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidci
Derivative of free energies wrt phase concentrations .
std::vector< const MaterialProperty< Real > * > _prop_hj
MaterialProperty< Real > & _iter
Number of nested Newton iteration.
const unsigned int _num_j
Number of phase parameters.
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
Derivative of free energies wrt coupled variables .
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
const std::vector< const VariableValue * > _prop_c
Global concentrations.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2F1dc1darg
const Real _abs_tol
Absolute and relative tolerance of nested Newton iteration.
std::vector< const MaterialProperty< Real > * > _ci_old
std::vector< MaterialPropertyName > _hj_names
Switching functions.
const std::vector< VariableName > _args_names
Coupled variables of free energies.
MaterialName _condition_name
Condition that must be violated for damping to occur.
const std::vector< MaterialName > _Fj_names
Free energies.
NestedSolve _nested_solve
Instantiation of the NestedSolve class.
std::vector< MaterialPropertyName > _ci_names
Phase concentrations.
std::vector< const MaterialProperty< Real > * > _prop_Fi
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)

Member Function Documentation

◆ computeQpProperties()

void KKSPhaseConcentrationMultiPhaseMaterial::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 157 of file KKSPhaseConcentrationMultiPhaseMaterial.C.

158{
159 // parameters for nested Newton iteration
161
162 // initialize first guess using the solution from previous step
163 for (const auto m : make_range(_num_c * _num_j))
164 solution(m) = (*_ci_old[m])[_qp];
165
168
169 auto compute = [&](const NestedSolve::Value<> & guess,
170 NestedSolve::Value<> & residual,
171 NestedSolve::Jacobian<> & jacobian)
172 {
173 for (const auto m : make_range(_num_c * _num_j))
174 (*_prop_ci[m])[_qp] = guess(m);
175
176 for (const auto m : make_range(_num_j))
177 _Fj_mat[m]->computePropertiesAtQp(_qp);
178
179 // assign residual functions
180 for (const auto m : make_range(_num_c))
181 {
182 for (const auto n : make_range(_num_j - 1))
183 residual(m * _num_j + n) = (*_dFidci[n][m])[_qp] - (*_dFidci[n + 1][m])[_qp];
184
185 residual((m + 1) * _num_j - 1) = -(*_prop_c[m])[_qp];
186
187 for (const auto l : make_range(_num_j))
188 residual((m + 1) * _num_j - 1) += (*_prop_hj[l])[_qp] * (*_prop_ci[m * _num_j + l])[_qp];
189 }
190
191 jacobian.setZero();
192
193 // fill in the non-zero terms in jacobian
194 for (const auto m : make_range(_num_c))
195 {
196 // equal chemical potential derivative equations
197 for (const auto n : make_range(_num_j - 1))
198 {
199 for (const auto l : make_range(_num_c))
200 {
201 jacobian(m * _num_j + n, n + l * _num_j) = (*_d2Fidcidbi[n][m][l])[_qp];
202 jacobian(m * _num_j + n, n + l * _num_j + 1) = -(*_d2Fidcidbi[n + 1][m][l])[_qp];
203 }
204 }
205
206 // concentration conservation derivative equations
207 for (const auto n : make_range(_num_j))
208 jacobian((m + 1) * _num_j - 1, m * _num_j + n) = (*_prop_hj[n])[_qp];
209 }
210 };
211
212 auto computeCondition = [&](const NestedSolve::Value<> & guess) -> Real
213 {
214 for (const auto m : make_range(_num_c * _num_j))
215 (*_prop_ci[m])[_qp] = guess(m);
217 return ((*_C)[_qp]);
218 };
219
220 // choose between Newton or damped Newton's method
221 if (!_damped_newton)
222 _nested_solve.nonlinear(solution, compute);
223 else
224 _nested_solve.nonlinearDamped(solution, compute, computeCondition);
225
227
228 if (_nested_solve.getState() == NestedSolve::State::NOT_CONVERGED)
229 mooseException("Nested Newton iteration did not converge.");
230
231 // assign solution to ci
232 for (const auto m : make_range(_num_c * _num_j))
233 (*_prop_ci[m])[_qp] = solution[m];
234}
std::vector< MaterialBase * > _Fj_mat
Free energy instantiation of the MaterialBase class.
virtual void computePropertiesAtQp(unsigned int qp)
void nonlinearDamped(V &guess, T &&compute, C &&computeCondition)
typename std::conditional< N==1, NSReal, typename std::conditional< N==0, NestedSolveTempl< is_ad >::DynamicVector, Eigen::Matrix< NSReal, N, 1 > >::type >::type Value
const State & getState() const
void nonlinear(V &guess, T &&compute)
typename std::conditional< N==1, NSReal, typename std::conditional< N==0, NestedSolveTempl< is_ad >::DynamicMatrix, Eigen::Matrix< NSReal, N, N > >::type >::type Jacobian
void setRelativeTolerance(Real rel)
void setAbsoluteTolerance(Real abs)
const std::size_t & getIterations()
Outputs compute(const MooseEnum &rate, const Inputs &in, bool need_jacobian)
Dispatch to the rate selected by the objective_rate enum (truesdell / jaumann / green_naghdi / rashid...

◆ initialSetup()

void KKSPhaseConcentrationMultiPhaseMaterial::initialSetup ( )
overrideprotectedvirtual

Definition at line 146 of file KKSPhaseConcentrationMultiPhaseMaterial.C.

147{
148 _Fj_mat.resize(_num_j);
149
150 for (unsigned int m = 0; m < _num_j; ++m)
151 _Fj_mat[m] = &getMaterialByName(_Fj_names[m]);
152 if (_damped_newton)
153 _condition = &getMaterialByName(_condition_name);
154}

◆ initQpStatefulProperties()

void KKSPhaseConcentrationMultiPhaseMaterial::initQpStatefulProperties ( )
overrideprotectedvirtual

Definition at line 139 of file KKSPhaseConcentrationMultiPhaseMaterial.C.

140{
141 for (const auto m : make_range(_num_c * _num_j))
142 (*_prop_ci[m])[_qp] = _ci_IC[m];
143}

◆ validParams()

InputParameters KKSPhaseConcentrationMultiPhaseMaterial::validParams ( )
static

Definition at line 16 of file KKSPhaseConcentrationMultiPhaseMaterial.C.

17{
20 "Computes the KKS phase concentrations by using a nested Newton iteration "
21 "to solve the equal chemical potential and concentration conservation equations for "
22 "multiphase systems. This class is intented to be used with "
23 "KKSPhaseConcentrationMultiPhaseDerivatives.");
24 params.addRequiredCoupledVar("global_cs", "The interpolated concentrations c, b, etc.");
25 params.addRequiredCoupledVar("all_etas", "Order parameters.");
26 params.addRequiredParam<std::vector<MaterialPropertyName>>(
27 "hj_names", "Switching functions in the same order as all_etas.");
28 params.addRequiredParam<std::vector<MaterialName>>(
29 "Fj_names", "Free energy material objects in the same order as all_etas.");
30 params.addRequiredParam<std::vector<MaterialPropertyName>>(
31 "ci_names",
32 "Phase concentrations. They must have the same order as Fj_names and global_cs, for "
33 "example, c1, c2, b1, b2.");
34 params.addRequiredParam<std::vector<Real>>("ci_IC",
35 "Initial values of ci in the same order of ci_names");
36 params.addParam<MaterialPropertyName>(
37 "nested_iterations",
38 "The output number of nested Newton iterations at each quadrature point.");
39 params.addCoupledVar("args", "The coupled variables of free energies.");
40 params.addParam<bool>(
41 "damped_Newton", false, "Whether or not to use the damped Newton's method.");
42 params.addParam<MaterialName>("conditions",
43 "C",
44 "Material property that checks bounds and conditions on the "
45 "material properties being solved for.");
46 params += NestedSolve::validParams();
47 return params;
48}
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _abs_tol

const Real KKSPhaseConcentrationMultiPhaseMaterial::_abs_tol
protected

Absolute and relative tolerance of nested Newton iteration.

Definition at line 81 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties().

◆ _args_names

const std::vector<VariableName> KKSPhaseConcentrationMultiPhaseMaterial::_args_names
protected

Coupled variables of free energies.

Definition at line 63 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by KKSPhaseConcentrationMultiPhaseMaterial().

◆ _C

const MaterialProperty<Real>* KKSPhaseConcentrationMultiPhaseMaterial::_C
protected

◆ _ci_IC

std::vector<Real> KKSPhaseConcentrationMultiPhaseMaterial::_ci_IC
protected

Definition at line 50 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by initQpStatefulProperties().

◆ _ci_names

std::vector<MaterialPropertyName> KKSPhaseConcentrationMultiPhaseMaterial::_ci_names
protected

Phase concentrations.

Definition at line 47 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by KKSPhaseConcentrationMultiPhaseMaterial().

◆ _ci_old

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMultiPhaseMaterial::_ci_old
protected

◆ _condition

MaterialBase* KKSPhaseConcentrationMultiPhaseMaterial::_condition
protected

Definition at line 90 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties(), and initialSetup().

◆ _condition_name

MaterialName KKSPhaseConcentrationMultiPhaseMaterial::_condition_name
protected

Condition that must be violated for damping to occur.

Definition at line 89 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by initialSetup(), and KKSPhaseConcentrationMultiPhaseMaterial().

◆ _d2F1dc1darg

std::vector<std::vector<const MaterialProperty<Real> *> > KKSPhaseConcentrationMultiPhaseMaterial::_d2F1dc1darg
protected

Second derivative of free energy Fa wrt phase concentration ca and a coupled variable \( \frac{d^2}{dc_a dq} F_a \)

Definition at line 74 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by KKSPhaseConcentrationMultiPhaseMaterial().

◆ _d2Fidcidbi

std::vector<std::vector<std::vector<const MaterialProperty<Real> *> > > KKSPhaseConcentrationMultiPhaseMaterial::_d2Fidcidbi
protected

Second derivative of free energies wrt phase concentrations \( \frac {d^2}{dc_i db_i} F_i \)

Definition at line 59 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMultiPhaseMaterial().

◆ _damped_newton

const bool KKSPhaseConcentrationMultiPhaseMaterial::_damped_newton
protected

Check whether to use damping.

Definition at line 86 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties(), initialSetup(), and KKSPhaseConcentrationMultiPhaseMaterial().

◆ _dFidarg

std::vector<std::vector<const MaterialProperty<Real> *> > KKSPhaseConcentrationMultiPhaseMaterial::_dFidarg
protected

Derivative of free energies wrt coupled variables \( \frac d{dq} F_i \).

Definition at line 69 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by KKSPhaseConcentrationMultiPhaseMaterial().

◆ _dFidci

std::vector<std::vector<const MaterialProperty<Real> *> > KKSPhaseConcentrationMultiPhaseMaterial::_dFidci
protected

Derivative of free energies wrt phase concentrations \( \frac d{dc_i} F_i \).

Definition at line 54 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMultiPhaseMaterial().

◆ _Fj_mat

std::vector<MaterialBase *> KKSPhaseConcentrationMultiPhaseMaterial::_Fj_mat
protected

Free energy instantiation of the MaterialBase class.

Definition at line 98 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties(), and initialSetup().

◆ _Fj_names

const std::vector<MaterialName> KKSPhaseConcentrationMultiPhaseMaterial::_Fj_names
protected

Free energies.

Definition at line 42 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by initialSetup(), and KKSPhaseConcentrationMultiPhaseMaterial().

◆ _hj_names

std::vector<MaterialPropertyName> KKSPhaseConcentrationMultiPhaseMaterial::_hj_names
protected

Switching functions.

Definition at line 37 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by KKSPhaseConcentrationMultiPhaseMaterial().

◆ _iter

MaterialProperty<Real>& KKSPhaseConcentrationMultiPhaseMaterial::_iter
protected

Number of nested Newton iteration.

Definition at line 78 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties().

◆ _n_args

const unsigned int KKSPhaseConcentrationMultiPhaseMaterial::_n_args
protected

Number of coupled variables of free energies.

Definition at line 66 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by KKSPhaseConcentrationMultiPhaseMaterial().

◆ _nested_solve

NestedSolve KKSPhaseConcentrationMultiPhaseMaterial::_nested_solve
protected

Instantiation of the NestedSolve class.

Definition at line 95 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties().

◆ _num_c

const unsigned int KKSPhaseConcentrationMultiPhaseMaterial::_num_c
protected

Number of global concentrations.

Definition at line 31 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and KKSPhaseConcentrationMultiPhaseMaterial().

◆ _num_j

const unsigned int KKSPhaseConcentrationMultiPhaseMaterial::_num_j
protected

◆ _prop_c

const std::vector<const VariableValue *> KKSPhaseConcentrationMultiPhaseMaterial::_prop_c
protected

Global concentrations.

Definition at line 28 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties().

◆ _prop_ci

std::vector<MaterialProperty<Real> *> KKSPhaseConcentrationMultiPhaseMaterial::_prop_ci
protected

◆ _prop_Fi

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMultiPhaseMaterial::_prop_Fi
protected

◆ _prop_hj

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMultiPhaseMaterial::_prop_hj
protected

◆ _rel_tol

const Real KKSPhaseConcentrationMultiPhaseMaterial::_rel_tol
protected

Definition at line 82 of file KKSPhaseConcentrationMultiPhaseMaterial.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files: