https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
NestedKKSMultiACBulkF Class Referenceabstract

KKSMultiACBulkBase child class for the free energy term \( \sum_j \frac{\partial h_j}{\partial \eta_i} F_j + w_i \frac{dg_i}{d\eta_i} \) in the the Allen-Cahn bulk residual. More...

#include <NestedKKSMultiACBulkF.h>

Inheritance diagram for NestedKKSMultiACBulkF:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 NestedKKSMultiACBulkF (const InputParameters &parameters)
 
virtual void initialSetup ()
 
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 Types

enum  PFFunctionType
 

Protected Member Functions

virtual Real computeDFDOP (PFFunctionType type)
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar)
 
virtual Real precomputeQpResidual ()
 
virtual Real precomputeQpJacobian ()
 
virtual Real computeDFDOP (PFFunctionType type)=0
 

Protected Attributes

unsigned int _num_c
 Number of global concentrations. More...
 
int _k
 Position of the nonlinear variable in the list of cj's. More...
 
std::vector< MaterialPropertyName > _ci_names
 Phase concentrations`. More...
 
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidetaj
 Derivative of phase concentrations wrt etaj \( \frac d{d{eta_j}} c_i \). More...
 
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidb
 Derivative of phase concentrations wrt global concentrations \( \frac d{db} c_i \). More...
 
Real _wi
 double well height parameter More...
 
MaterialPropertyName _gi_name
 Barrier functions. More...
 
const MaterialProperty< Real > & _dgi
 Derivatives of barrier function. More...
 
const MaterialProperty< Real > & _d2gi
 Second derivative of barrier function. More...
 
std::vector< std::vector< const MaterialProperty< Real > * > > _d2hjdetaidetap
 Second derivative of switching function \( \frac {d^2}{deta_i deta_p} h_j \). More...
 
std::vector< const MaterialProperty< Real > * > _dF1dc1
 Derivative of the free energy function \( \frac d{dc_1} F_1 \). More...
 
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
 Derivative of the free energy function \( \frac d{dq} F_i \). More...
 
VariableName _etai_name
 name of order parameter that derivatives are taken wrt (needed to retrieve the derivative material properties) More...
 
unsigned int _etai_var
 index of order parameter that derivatives are taken wrt More...
 
std::vector< MaterialPropertyName > _Fj_names
 Names of free energy functions for each phase \( F_j \). More...
 
unsigned int _num_j
 
std::vector< const MaterialProperty< Real > * > _prop_Fj
 Values of the free energy functions for each phase \( F_j \). More...
 
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dFjdarg
 Derivatives of the free energy functions (needed for off-diagonal Jacobians) More...
 
std::vector< MaterialPropertyName > _hj_names
 switching function names More...
 
std::vector< const MaterialProperty< Real > * > _prop_hj
 Values of the switching functions for each phase \( h_j \). More...
 
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
 Derivatives of the switching functions wrt the order parameter for this kernel. More...
 
std::vector< const MaterialProperty< Real > * > _prop_d2hjdetai2
 Second derivatives of the switching functions wrt the order parameter for this kernel. More...
 
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2hjdetaidarg
 Second derivatives of the switching functions (needed for off-diagonal Jacobians) More...
 
const MaterialProperty< Real > & _L
 Mobility. More...
 
const MaterialProperty< Real > & _dLdop
 Mobility derivative w.r.t. order parameter. More...
 
std::vector< const MaterialProperty< Real > *> _dLdarg
 Mobility derivative w.r.t coupled variables. More...
 
std::vector< VariableName > _c_names
 Global concentrations. More...
 
const JvarMap & _c_map
 
std::vector< VariableName > _eta_names
 Phase parameters. More...
 
const JvarMap & _eta_map
 

Detailed Description

KKSMultiACBulkBase child class for the free energy term \( \sum_j \frac{\partial h_j}{\partial \eta_i} F_j + w_i \frac{dg_i}{d\eta_i} \) in the the Allen-Cahn bulk residual.

The non-linear variable for this Kernel is the order parameter \( eta_i \).

Definition at line 21 of file NestedKKSMultiACBulkF.h.

Member Enumeration Documentation

◆ PFFunctionType

enum ACBulk::PFFunctionType
protectedinherited

Definition at line 37 of file ACBulk.h.

38  {
39  Jacobian,
40  Residual
41  };

Constructor & Destructor Documentation

◆ NestedKKSMultiACBulkF()

NestedKKSMultiACBulkF::NestedKKSMultiACBulkF ( const InputParameters parameters)

Definition at line 32 of file NestedKKSMultiACBulkF.C.

33  : KKSMultiACBulkBase(parameters),
34  _c_names(coupledNames("global_cs")),
35  _c_map(getParameterJvarMap("global_cs")),
36  _num_c(coupledComponents("global_cs")),
37  _eta_names(coupledNames("all_etas")),
38  _eta_map(getParameterJvarMap("all_etas")),
39  _k(-1),
40  _ci_names(getParam<std::vector<MaterialPropertyName>>("ci_names")),
42  _dcidb(_num_c),
43  _wi(getParam<Real>("wi")),
44  _gi_name(getParam<MaterialPropertyName>("gi_name")),
45  _dgi(getMaterialPropertyDerivative<Real>("gi_name", _etai_name)),
46  _d2gi(getMaterialPropertyDerivative<Real>("gi_name", _etai_name, _etai_name)),
48  _dF1dc1(_num_c),
50 {
51  for (const auto i : make_range(_num_j))
52  {
53  // get order parameter names and variable indices
54  _eta_names[i] = getVar("all_etas", i)->name();
55 
56  // Set _k to the position of the nonlinear variable in the list of etaj's
57  if (coupled("all_etas", i) == _var.number())
58  _k = i;
59  }
60 
61  // _dcideta and _dcidb are computed in KKSPhaseConcentrationDerivatives
62  for (const auto m : make_range(_num_c))
63  {
64  _dcidetaj[m].resize(_num_j);
65  _dcidb[m].resize(_num_j);
66 
67  for (const auto n : make_range(_num_j))
68  {
69  _dcidetaj[m][n].resize(_num_j);
70  _dcidb[m][n].resize(_num_c);
71 
72  for (const auto l : make_range(_num_j))
73  _dcidetaj[m][n][l] =
74  &getMaterialPropertyDerivative<Real>(_ci_names[n + m * _num_j], _eta_names[l]);
75 
76  for (const auto l : make_range(_num_c))
77  _dcidb[m][n][l] =
78  &getMaterialPropertyDerivative<Real>(_ci_names[n + m * _num_j], _c_names[l]);
79  }
80  }
81 
82  // _dF1dc1 is computed in KKSPhaseConcentrationMaterial
83  for (const auto m : make_range(_num_c))
84  _dF1dc1[m] = &getMaterialPropertyDerivative<Real>(_Fj_names[0], _ci_names[m * _num_j]);
85 
86  for (const auto m : make_range(_num_j))
87  {
88  _d2hjdetaidetap[m].resize(_num_j);
89 
90  for (const auto n : make_range(_num_j))
91  _d2hjdetaidetap[m][n] =
92  &getMaterialPropertyDerivative<Real>(_hj_names[m], _eta_names[_k], _eta_names[n]);
93  }
94 
95  // _dFidarg is computed in KKSPhaseConcentrationMaterial
96  for (const auto m : make_range(_num_j))
97  {
98  _dFidarg[m].resize(_n_args);
99 
100  for (const auto n : make_range(_n_args))
101  _dFidarg[m][n] = &getMaterialPropertyDerivative<Real>(_Fj_names[m], m);
102  }
103 }
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
Derivative of the free energy function .
std::vector< MaterialPropertyName > _ci_names
Phase concentrations`.
const MaterialProperty< Real > & _d2gi
Second derivative of barrier function.
std::vector< const MaterialProperty< Real > * > _dF1dc1
Derivative of the free energy function .
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
std::vector< VariableName > _eta_names
Phase parameters.
int _k
Position of the nonlinear variable in the list of cj&#39;s.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidetaj
Derivative of phase concentrations wrt etaj .
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidb
Derivative of phase concentrations wrt global concentrations .
std::vector< MaterialPropertyName > _hj_names
switching function names
std::vector< VariableName > _c_names
Global concentrations.
IntRange< T > make_range(T beg, T end)
VariableName _etai_name
name of order parameter that derivatives are taken wrt (needed to retrieve the derivative material pr...
std::vector< std::vector< const MaterialProperty< Real > * > > _d2hjdetaidetap
Second derivative of switching function .
const MaterialProperty< Real > & _dgi
Derivatives of barrier function.
MaterialPropertyName _gi_name
Barrier functions.
unsigned int _num_c
Number of global concentrations.
KKSMultiACBulkBase(const InputParameters &parameters)
Real _wi
double well height parameter

Member Function Documentation

◆ computeDFDOP() [1/2]

Real NestedKKSMultiACBulkF::computeDFDOP ( PFFunctionType  type)
protectedvirtual

Definition at line 106 of file NestedKKSMultiACBulkF.C.

107 {
108  Real sum = 0.0;
109 
110  switch (type)
111  {
112  case Residual:
113  for (const auto m : make_range(_num_j))
114  sum += (*_prop_dhjdetai[m])[_qp] * (*_prop_Fj[m])[_qp];
115 
116  return sum + _wi * _dgi[_qp];
117 
118  case Jacobian:
119  // For when this kernel is used in the Lagrange multiplier equation. In that case the
120  // Lagrange multiplier is the nonlinear variable
121  if (_etai_var != _var.number())
122  return 0.0;
123 
124  // if eta_i is the nonlinear variable
125  for (const auto m : make_range(_num_j))
126  {
127  Real sum1 = 0.0;
128 
129  for (const auto n : make_range(_num_c))
130  sum1 += (*_dF1dc1[n])[_qp] * (*_dcidetaj[n][m][_k])[_qp];
131 
132  sum +=
133  (*_d2hjdetaidetap[m][_k])[_qp] * (*_prop_Fj[m])[_qp] + (*_prop_dhjdetai[m])[_qp] * sum1;
134  }
135 
136  return _phi[_j][_qp] * (sum + _wi * _d2gi[_qp]);
137  }
138 
139  mooseError("Invalid type passed in");
140 }
const MaterialProperty< Real > & _d2gi
Second derivative of barrier function.
std::vector< const MaterialProperty< Real > * > _dF1dc1
Derivative of the free energy function .
void mooseError(Args &&... args)
int _k
Position of the nonlinear variable in the list of cj&#39;s.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidetaj
Derivative of phase concentrations wrt etaj .
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the free energy functions for each phase .
IntRange< T > make_range(T beg, T end)
std::vector< std::vector< const MaterialProperty< Real > * > > _d2hjdetaidetap
Second derivative of switching function .
const MaterialProperty< Real > & _dgi
Derivatives of barrier function.
unsigned int _num_c
Number of global concentrations.
unsigned int _etai_var
index of order parameter that derivatives are taken wrt
Real _wi
double well height parameter

◆ computeDFDOP() [2/2]

virtual Real ACBulk< Real >::computeDFDOP ( PFFunctionType  type)
protectedpure virtualinherited

◆ computeQpOffDiagJacobian()

Real NestedKKSMultiACBulkF::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Reimplemented from ACBulk< Real >.

Definition at line 143 of file NestedKKSMultiACBulkF.C.

144 {
145  // first get dependence of mobility _L on other variables using parent class member function Real
147 
148  Real sum = 0.0;
149 
150  // if concentrations are the coupled variables
151  auto compvar = mapJvarToCvar(jvar, _c_map);
152  if (compvar >= 0)
153  {
154  for (const auto m : make_range(_num_j))
155  {
156  Real sum1 = 0.0;
157 
158  for (const auto n : make_range(_num_c))
159  sum1 += (*_dF1dc1[n])[_qp] * (*_dcidb[n][m][compvar])[_qp];
160 
161  sum += (*_prop_dhjdetai[m])[_qp] * sum1;
162  }
163 
164  res += _L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
165 
166  return res;
167  }
168 
169  // if order parameters are the coupled variables
170  auto etavar = mapJvarToCvar(jvar, _eta_map);
171  if (etavar >= 0)
172  {
173  for (const auto m : make_range(_num_j))
174  {
175  Real sum1 = 0.0;
176 
177  for (const auto n : make_range(_num_c))
178  sum1 += (*_dF1dc1[n])[_qp] * (*_dcidetaj[n][m][etavar])[_qp];
179 
180  sum += (*_d2hjdetaidetap[m][etavar])[_qp] * (*_prop_Fj[m])[_qp] +
181  (*_prop_dhjdetai[m])[_qp] * sum1;
182  }
183 
184  res += _L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
185 
186  return res;
187  }
188 
189  // Handle the case when this kernel is used in the Lagrange multiplier equation. In this case
190  // the second derivative of the barrier function contributes to the off-diagonal Jacobian
191  if (jvar == _etai_var)
192  {
193  sum += _wi * _d2gi[_qp];
194 
195  res += _L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
196  }
197 
198  // for all other vars get the coupled variable jvar is referring to
199  const unsigned int cvar = mapJvarToCvar(jvar);
200  for (const auto m : make_range(_num_j))
201  res -= _L[_qp] * (*_prop_dhjdetai[m])[_qp] * (*_dFidarg[m][cvar])[_qp] * _phi[_j][_qp] *
202  _test[_i][_qp];
203 
204  return res;
205 }
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
Derivative of the free energy function .
const MaterialProperty< Real > & _L
Mobility.
Definition: ACBulk.h:46
const MaterialProperty< Real > & _d2gi
Second derivative of barrier function.
std::vector< const MaterialProperty< Real > * > _dF1dc1
Derivative of the free energy function .
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidetaj
Derivative of phase concentrations wrt etaj .
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidb
Derivative of phase concentrations wrt global concentrations .
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the free energy functions for each phase .
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: ACBulk.h:110
IntRange< T > make_range(T beg, T end)
std::vector< std::vector< const MaterialProperty< Real > * > > _d2hjdetaidetap
Second derivative of switching function .
unsigned int _num_c
Number of global concentrations.
unsigned int _etai_var
index of order parameter that derivatives are taken wrt
Real _wi
double well height parameter

◆ initialSetup()

void KKSMultiACBulkBase::initialSetup ( )
virtualinherited

Reimplemented from ACBulk< Real >.

Definition at line 72 of file KKSMultiACBulkBase.C.

73 {
75 
76  for (unsigned int n = 0; n < _num_j; ++n)
77  {
78  validateNonlinearCoupling<Real>(_Fj_names[n]);
79  validateNonlinearCoupling<Real>(_hj_names[n]);
80  }
81 }
virtual void initialSetup()
Definition: ACBulk.h:79
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
std::vector< MaterialPropertyName > _hj_names
switching function names

◆ precomputeQpJacobian()

Real ACBulk< Real >::precomputeQpJacobian ( )
protectedvirtualinherited

Definition at line 97 of file ACBulk.h.

98 {
99  // Get free energy derivative and Jacobian
100  Real dFdop = computeDFDOP(Residual);
101 
102  Real JdFdop = computeDFDOP(Jacobian);
103 
104  // Set Jacobian value using product rule
105  return _L[_qp] * JdFdop + _dLdop[_qp] * _phi[_j][_qp] * dFdop;
106 }
const MaterialProperty< Real > & _L
Mobility.
Definition: ACBulk.h:46
virtual Real computeDFDOP(PFFunctionType type)=0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< Real > & _dLdop
Mobility derivative w.r.t. order parameter.
Definition: ACBulk.h:49

◆ precomputeQpResidual()

Real ACBulk< Real >::precomputeQpResidual ( )
protectedvirtualinherited

Definition at line 86 of file ACBulk.h.

87 {
88  // Get free energy derivative from function
89  Real dFdop = computeDFDOP(Residual);
90 
91  // Set residual
92  return _L[_qp] * dFdop;
93 }
const MaterialProperty< Real > & _L
Mobility.
Definition: ACBulk.h:46
virtual Real computeDFDOP(PFFunctionType type)=0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ validParams()

InputParameters NestedKKSMultiACBulkF::validParams ( )
static

Definition at line 15 of file NestedKKSMultiACBulkF.C.

16 {
18  params.addClassDescription("KKS model kernel (part 1 of 2) for the Bulk Allen-Cahn. This "
19  "includes all terms NOT dependent on chemical potential.");
20  params.addRequiredCoupledVar("global_cs", "The interpolated concentrations c, b, etc.");
21  params.addRequiredCoupledVar("all_etas", "Order parameters.");
22  params.addRequiredParam<std::vector<MaterialPropertyName>>(
23  "ci_names",
24  "Phase concentrations. They must have the same order as Fj_names and global_cs, for "
25  "example, c1, c2, b1, b2.");
26  params.addRequiredParam<Real>("wi", "Double well height parameter.");
27  params.addRequiredParam<MaterialPropertyName>(
28  "gi_name", "Base name for the double well function g_i(eta_i).");
29  return params;
30 }
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _c_map

const JvarMap& NestedKKSMultiACBulkF::_c_map
protected

Definition at line 34 of file NestedKKSMultiACBulkF.h.

Referenced by computeQpOffDiagJacobian().

◆ _c_names

std::vector<VariableName> NestedKKSMultiACBulkF::_c_names
protected

Global concentrations.

Definition at line 33 of file NestedKKSMultiACBulkF.h.

Referenced by NestedKKSMultiACBulkF().

◆ _ci_names

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

Phase concentrations`.

Definition at line 49 of file NestedKKSMultiACBulkF.h.

Referenced by NestedKKSMultiACBulkF().

◆ _d2gi

const MaterialProperty<Real>& NestedKKSMultiACBulkF::_d2gi
protected

Second derivative of barrier function.

Definition at line 67 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), and computeQpOffDiagJacobian().

◆ _d2hjdetaidetap

std::vector<std::vector<const MaterialProperty<Real> *> > NestedKKSMultiACBulkF::_d2hjdetaidetap
protected

Second derivative of switching function \( \frac {d^2}{deta_i deta_p} h_j \).

Definition at line 70 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), computeQpOffDiagJacobian(), and NestedKKSMultiACBulkF().

◆ _dcidb

std::vector<std::vector<std::vector<const MaterialProperty<Real> *> > > NestedKKSMultiACBulkF::_dcidb
protected

Derivative of phase concentrations wrt global concentrations \( \frac d{db} c_i \).

Definition at line 55 of file NestedKKSMultiACBulkF.h.

Referenced by computeQpOffDiagJacobian(), and NestedKKSMultiACBulkF().

◆ _dcidetaj

std::vector<std::vector<std::vector<const MaterialProperty<Real> *> > > NestedKKSMultiACBulkF::_dcidetaj
protected

Derivative of phase concentrations wrt etaj \( \frac d{d{eta_j}} c_i \).

Definition at line 52 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), computeQpOffDiagJacobian(), and NestedKKSMultiACBulkF().

◆ _dF1dc1

std::vector<const MaterialProperty<Real> *> NestedKKSMultiACBulkF::_dF1dc1
protected

Derivative of the free energy function \( \frac d{dc_1} F_1 \).

Definition at line 73 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), computeQpOffDiagJacobian(), and NestedKKSMultiACBulkF().

◆ _dFidarg

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

Derivative of the free energy function \( \frac d{dq} F_i \).

Definition at line 76 of file NestedKKSMultiACBulkF.h.

Referenced by computeQpOffDiagJacobian(), and NestedKKSMultiACBulkF().

◆ _dgi

const MaterialProperty<Real>& NestedKKSMultiACBulkF::_dgi
protected

Derivatives of barrier function.

Definition at line 64 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP().

◆ _dLdarg

std::vector<const MaterialProperty<Real > *> ACBulk< Real >::_dLdarg
protectedinherited

Mobility derivative w.r.t coupled variables.

Definition at line 52 of file ACBulk.h.

◆ _dLdop

const MaterialProperty<Real >& ACBulk< Real >::_dLdop
protectedinherited

Mobility derivative w.r.t. order parameter.

Definition at line 49 of file ACBulk.h.

◆ _eta_map

const JvarMap& NestedKKSMultiACBulkF::_eta_map
protected

Definition at line 42 of file NestedKKSMultiACBulkF.h.

Referenced by computeQpOffDiagJacobian().

◆ _eta_names

std::vector<VariableName> NestedKKSMultiACBulkF::_eta_names
protected

Phase parameters.

Definition at line 41 of file NestedKKSMultiACBulkF.h.

Referenced by NestedKKSMultiACBulkF().

◆ _etai_name

VariableName KKSMultiACBulkBase::_etai_name
protectedinherited

name of order parameter that derivatives are taken wrt (needed to retrieve the derivative material properties)

Definition at line 34 of file KKSMultiACBulkBase.h.

Referenced by KKSMultiACBulkBase::KKSMultiACBulkBase().

◆ _etai_var

unsigned int KKSMultiACBulkBase::_etai_var
protectedinherited

◆ _Fj_names

std::vector<MaterialPropertyName> KKSMultiACBulkBase::_Fj_names
protectedinherited

◆ _gi_name

MaterialPropertyName NestedKKSMultiACBulkF::_gi_name
protected

Barrier functions.

Definition at line 61 of file NestedKKSMultiACBulkF.h.

◆ _hj_names

std::vector<MaterialPropertyName> KKSMultiACBulkBase::_hj_names
protectedinherited

◆ _k

int NestedKKSMultiACBulkF::_k
protected

Position of the nonlinear variable in the list of cj's.

Definition at line 46 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), and NestedKKSMultiACBulkF().

◆ _L

const MaterialProperty<Real >& ACBulk< Real >::_L
protectedinherited

◆ _num_c

unsigned int NestedKKSMultiACBulkF::_num_c
protected

Number of global concentrations.

Definition at line 38 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), computeQpOffDiagJacobian(), and NestedKKSMultiACBulkF().

◆ _num_j

unsigned int KKSMultiACBulkBase::_num_j
protectedinherited

◆ _prop_d2hjdetai2

std::vector<const MaterialProperty<Real> *> KKSMultiACBulkBase::_prop_d2hjdetai2
protectedinherited

Second derivatives of the switching functions wrt the order parameter for this kernel.

Definition at line 59 of file KKSMultiACBulkBase.h.

Referenced by KKSMultiACBulkC::computeDFDOP(), KKSMultiACBulkF::computeDFDOP(), and KKSMultiACBulkBase::KKSMultiACBulkBase().

◆ _prop_d2hjdetaidarg

std::vector<std::vector<const MaterialProperty<Real> *> > KKSMultiACBulkBase::_prop_d2hjdetaidarg
protectedinherited

Second derivatives of the switching functions (needed for off-diagonal Jacobians)

Definition at line 62 of file KKSMultiACBulkBase.h.

Referenced by KKSMultiACBulkC::computeQpOffDiagJacobian(), KKSMultiACBulkF::computeQpOffDiagJacobian(), and KKSMultiACBulkBase::KKSMultiACBulkBase().

◆ _prop_dFjdarg

std::vector<std::vector<const MaterialProperty<Real> *> > KKSMultiACBulkBase::_prop_dFjdarg
protectedinherited

Derivatives of the free energy functions (needed for off-diagonal Jacobians)

Definition at line 47 of file KKSMultiACBulkBase.h.

Referenced by KKSMultiACBulkF::computeQpOffDiagJacobian(), and KKSMultiACBulkBase::KKSMultiACBulkBase().

◆ _prop_dhjdetai

std::vector<const MaterialProperty<Real> *> KKSMultiACBulkBase::_prop_dhjdetai
protectedinherited

◆ _prop_Fj

std::vector<const MaterialProperty<Real> *> KKSMultiACBulkBase::_prop_Fj
protectedinherited

Values of the free energy functions for each phase \( F_j \).

Definition at line 44 of file KKSMultiACBulkBase.h.

Referenced by computeDFDOP(), KKSMultiACBulkF::computeDFDOP(), computeQpOffDiagJacobian(), KKSMultiACBulkF::computeQpOffDiagJacobian(), and KKSMultiACBulkBase::KKSMultiACBulkBase().

◆ _prop_hj

std::vector<const MaterialProperty<Real> *> KKSMultiACBulkBase::_prop_hj
protectedinherited

Values of the switching functions for each phase \( h_j \).

Definition at line 53 of file KKSMultiACBulkBase.h.

Referenced by KKSMultiACBulkBase::KKSMultiACBulkBase().

◆ _wi

Real NestedKKSMultiACBulkF::_wi
protected

double well height parameter

Definition at line 58 of file NestedKKSMultiACBulkF.h.

Referenced by computeDFDOP(), and computeQpOffDiagJacobian().


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