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
SLKKSMultiACBulkC Class Reference

SLKKSMultiPhaseBase child class for the phase concentration term \( - \sum_j \frac{dF_1}{dc_1} \frac{dh_j}{d\eta_i} (c_j) \) in the the Allen-Cahn bulk residual. More...

#include <SLKKSMultiACBulkC.h>

Inheritance diagram for SLKKSMultiACBulkC:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 SLKKSMultiACBulkC (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 Real precomputeQpResidual ()
 
virtual Real precomputeQpJacobian ()
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar)
 

Protected Attributes

const VariableName _c_name
 name of the coupled concentration variable c
 
const bool _lagrange
 is eta_i supplied (then we assume the kernel operates on the Lagrange var)
 
VariableName _etai_name
 name of order parameter that derivatives are taken w.r.t.
 
unsigned int _etai_var
 index of order parameter that derivatives are taken w.r.t.
 
std::vector< VariableName > _cs_names
 names of all sublattice concentrations
 
const MaterialProperty< Real > & _prop_dFdc
 Derivative of the free energy function w.r.t. c.
 
std::vector< const MaterialProperty< Real > * > _prop_d2Fdcdcs
 Second derivatives of F w.r.t. c and all cs.
 
std::vector< const MaterialProperty< Real > * > _prop_dhdni
 first derivatives of all h w.r.t. to etai
 
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2hdnidn
 first derivatives of all h w.r.t. to the kernel variable and other etas
 
int _l_cs
 Position of the c variable in the cs list.
 
int _l_etai
 Position of the eta_i variable in the eta list.
 
const MaterialProperty< Real > & _mob
 Mobility.
 
std::vector< unsigned int_ns
 Number of sublattices per phase.
 
std::vector< Real > _a_cs
 Sublattice site numbers.
 
std::vector< unsigned int_phase
 phase index of each cs entry
 
const VariableValue_c
 Physical concentration.
 
const unsigned int _c_var
 
const std::size_t _ncs
 Sublattice concentrations.
 
std::vector< const VariableValue * > _cs
 
const JvarMap & _cs_map
 
const std::size_t _neta
 Order parameters for each phase \( \eta_j \).
 
std::vector< VariableName > _eta_names
 
const JvarMap & _eta_map
 
std::vector< MaterialPropertyName > _h_names
 Switching function names.
 
const std::size_t _nh
 

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

SLKKSMultiPhaseBase child class for the phase concentration term \( - \sum_j \frac{dF_1}{dc_1} \frac{dh_j}{d\eta_i} (c_j) \) in the the Allen-Cahn bulk residual.

D. Schwen et al. https://doi.org/10.1016/j.commatsci.2021.110466

The non-linear variable for this Kernel is the order parameter 'eta_i'.

Definition at line 22 of file SLKKSMultiACBulkC.h.

Constructor & Destructor Documentation

◆ SLKKSMultiACBulkC()

SLKKSMultiACBulkC::SLKKSMultiACBulkC ( const InputParameters parameters)

Definition at line 30 of file SLKKSMultiACBulkC.C.

31 : SLKKSMultiPhaseBase(parameters),
32 _c_name(coupledName("c", 0)),
33 _lagrange(isCoupled("eta_i")),
34 _etai_name(_lagrange ? coupledName("eta_i", 0) : _var.name()),
35 _etai_var(_lagrange ? coupled("eta_i") : _var.number()),
41 _l_cs(-1),
42 _l_etai(-1),
43 _mob(getMaterialProperty<Real>("mob_name"))
44{
45 // Determine position of the selected concentration variable
46 for (std::size_t i = 0; i < _ncs; ++i)
47 {
48 _cs_names[i] = coupledName("cs", i);
49 if (coupled("cs", i) == _c_var)
50 _l_cs = i;
51 }
52
53 // Check to make sure the nonlinear variable is in the cs list
54 if (_l_cs < 0)
55 paramError("cs", "One of the listed variables must be the 'c' variable");
56
57 // Determine position of the selected concentration variable
58 for (std::size_t i = 0; i < _neta; ++i)
59 if (coupled("eta", i) == _etai_var)
60 _l_etai = i;
61
62 // Check to make sure the nonlinear variable or eta_i (if supplied) is in the eta list
63 if (_l_etai < 0)
64 paramError("eta_i",
65 "Either eta_i or the kernel variable must be one of the listed 'eta' variables");
66
67 // Iterate over all sublattice concentrations
68 for (std::size_t i = 0; i < _ncs; ++i)
69 // get second partial derivatives w.r.t. c and cs (only if c and cs are in the same phase)
70 _prop_d2Fdcdcs[i] = (_phase[i] == _phase[_l_cs])
71 ? &getMaterialPropertyDerivative<Real>("F", _c_name, _cs_names[i])
72 : nullptr;
73
74 // fetch all switching function derivatives
75 for (std::size_t i = 0; i < _nh; ++i)
76 {
77 _prop_dhdni[i] = &getMaterialPropertyDerivativeByName<Real>(_h_names[i], _etai_name);
78
79 _prop_d2hdnidn[i].resize(_neta);
80 for (std::size_t j = 0; j < _neta; ++j)
81 _prop_d2hdnidn[i][j] =
82 &getMaterialPropertyDerivativeByName<Real>(_h_names[i], _etai_name, _eta_names[j]);
83 }
84}
const std::string name
Definition Setup.h:21
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative(const std::string &base, const std::vector< VariableName > &c)
std::vector< const MaterialProperty< Real > * > _prop_d2Fdcdcs
Second derivatives of F w.r.t. c and all cs.
const MaterialProperty< Real > & _prop_dFdc
Derivative of the free energy function w.r.t. c.
const MaterialProperty< Real > & _mob
Mobility.
std::vector< VariableName > _cs_names
names of all sublattice concentrations
std::vector< const MaterialProperty< Real > * > _prop_dhdni
first derivatives of all h w.r.t. to etai
int _l_etai
Position of the eta_i variable in the eta list.
const bool _lagrange
is eta_i supplied (then we assume the kernel operates on the Lagrange var)
int _l_cs
Position of the c variable in the cs list.
const VariableName _c_name
name of the coupled concentration variable c
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2hdnidn
first derivatives of all h w.r.t. to the kernel variable and other etas
VariableName _etai_name
name of order parameter that derivatives are taken w.r.t.
unsigned int _etai_var
index of order parameter that derivatives are taken w.r.t.
Enforce sum of phase sublattice concentrations to be the real concentration.
const std::size_t _neta
Order parameters for each phase .
const unsigned int _c_var
std::vector< MaterialPropertyName > _h_names
Switching function names.
const std::size_t _nh
std::vector< unsigned int > _phase
phase index of each cs entry
const std::size_t _ncs
Sublattice concentrations.
std::vector< VariableName > _eta_names
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ computeQpOffDiagJacobian()

Real SLKKSMultiACBulkC::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Definition at line 132 of file SLKKSMultiACBulkC.C.

133{
134 // concentration variables
135 auto csvar = mapJvarToCvar(jvar, _cs_map);
136 if (csvar >= 0)
137 {
138 // does F depend on the csvar? if so we need to apply the product rule
139 if (_phase[csvar] == _phase[_l_cs])
140 {
141 // sum over phases
142 std::size_t k = 0;
143 Real sum = 0.0;
144 for (std::size_t i = 0; i < _nh; ++i)
145 {
146 // sum sublattice concentrations
147 Real csum = 0.0;
148 for (unsigned int j = 0; j < _ns[i]; ++j)
149 {
150 csum += (*_cs[k])[_qp] * _a_cs[k];
151 k++;
152 }
153 sum += (*_prop_dhdni[i])[_qp] * csum;
154 }
155
156 return -_mob[_qp] *
157 ((*_prop_d2Fdcdcs[csvar])[_qp] * sum +
158 _prop_dFdc[_qp] * (*_prop_dhdni[_phase[csvar]])[_qp] * _a_cs[csvar]) /
159 _a_cs[_l_cs] * _phi[_j][_qp] * _test[_i][_qp];
160 }
161
162 return -_mob[_qp] * _prop_dFdc[_qp] / _a_cs[_l_cs] * (*_prop_dhdni[_phase[csvar]])[_qp] *
163 _a_cs[csvar] * _phi[_j][_qp] * _test[_i][_qp];
164 }
165
166 // order parameters
167 auto etavar = mapJvarToCvar(jvar, _eta_map);
168 if (etavar >= 0)
169 {
170 // sum over phases
171 std::size_t k = 0;
172 Real sum = 0.0;
173 for (std::size_t i = 0; i < _nh; ++i)
174 {
175 // sum sublattice concentrations
176 Real csum = 0.0;
177 for (unsigned int j = 0; j < _ns[i]; ++j)
178 {
179 csum += (*_cs[k])[_qp] * _a_cs[k];
180 k++;
181 }
182 sum += (*_prop_d2hdnidn[i][etavar])[_qp] * csum;
183 }
184
185 return -_mob[_qp] * _prop_dFdc[_qp] / _a_cs[_l_cs] * sum * _phi[_j][_qp] * _test[_i][_qp];
186 }
187
188 return 0.0;
189}
std::vector< const VariableValue * > _cs
std::vector< Real > _a_cs
Sublattice site numbers.
std::vector< unsigned int > _ns
Number of sublattices per phase.

◆ precomputeQpJacobian()

Real SLKKSMultiACBulkC::precomputeQpJacobian ( )
protectedvirtual

Definition at line 107 of file SLKKSMultiACBulkC.C.

108{
109 // For when this kernel is used in the Lagrange multiplier equation
110 if (_lagrange)
111 return 0.0;
112
113 // For when eta_i is the nonlinear variable
114 std::size_t k = 0;
115 Real sum = 0.0;
116 for (std::size_t i = 0; i < _nh; ++i)
117 {
118 // sum sublattice concentrations
119 Real csum = 0.0;
120 for (unsigned int j = 0; j < _ns[i]; ++j)
121 {
122 csum += (*_cs[k])[_qp] * _a_cs[k];
123 k++;
124 }
125 sum += (*_prop_d2hdnidn[i][_l_etai])[_qp] * csum;
126 }
127
128 return -_mob[_qp] * _phi[_j][_qp] * _prop_dFdc[_qp] / _a_cs[_l_cs] * sum;
129}

◆ precomputeQpResidual()

Real SLKKSMultiACBulkC::precomputeQpResidual ( )
protectedvirtual

Definition at line 87 of file SLKKSMultiACBulkC.C.

88{ // sum over phases
89 std::size_t k = 0;
90 Real sum = 0.0;
91 for (std::size_t i = 0; i < _nh; ++i)
92 {
93 // sum sublattice concentrations
94 Real csum = 0.0;
95 for (unsigned int j = 0; j < _ns[i]; ++j)
96 {
97 csum += (*_cs[k])[_qp] * _a_cs[k];
98 k++;
99 }
100 sum += (*_prop_dhdni[i])[_qp] * csum;
101 }
102
103 return -_mob[_qp] * _prop_dFdc[_qp] / _a_cs[_l_cs] * sum;
104}

◆ validParams()

InputParameters SLKKSMultiACBulkC::validParams ( )
static

Definition at line 15 of file SLKKSMultiACBulkC.C.

16{
18 params.addClassDescription("Multi-phase SLKKS model kernel for the bulk Allen-Cahn. "
19 "This includes all terms dependent on chemical potential.");
20 params.addRequiredParam<MaterialPropertyName>(
21 "F", "Phase free energy function that is a function of 'c'");
22 params.addRequiredCoupledVar("c", "Concentration variable F depends on");
23 params.addCoupledVar("eta_i",
24 "Order parameter that derivatives are taken with respect to (kernel "
25 "variable is used if this is not specified)");
26 params.addParam<MaterialPropertyName>("mob_name", "L", "The mobility used with the kernel");
27 return params;
28}
static InputParameters validParams()

Member Data Documentation

◆ _a_cs

std::vector<Real> SLKKSMultiPhaseBase::_a_cs
protectedinherited

◆ _c

const VariableValue& SLKKSMultiPhaseBase::_c
protectedinherited

Physical concentration.

Definition at line 57 of file SLKKSMultiPhaseBase.h.

Referenced by SLKKSMultiPhaseConcentration::precomputeQpResidual().

◆ _c_name

const VariableName SLKKSMultiACBulkC::_c_name
protected

name of the coupled concentration variable c

Definition at line 35 of file SLKKSMultiACBulkC.h.

Referenced by SLKKSMultiACBulkC().

◆ _c_var

const unsigned int SLKKSMultiPhaseBase::_c_var
protectedinherited

◆ _cs

std::vector<const VariableValue *> SLKKSMultiPhaseBase::_cs
protectedinherited

◆ _cs_map

const JvarMap& SLKKSMultiPhaseBase::_cs_map
protectedinherited

◆ _cs_names

std::vector<VariableName> SLKKSMultiACBulkC::_cs_names
protected

names of all sublattice concentrations

Definition at line 47 of file SLKKSMultiACBulkC.h.

Referenced by SLKKSMultiACBulkC().

◆ _eta_map

const JvarMap& SLKKSMultiPhaseBase::_eta_map
protectedinherited

◆ _eta_names

std::vector<VariableName> SLKKSMultiPhaseBase::_eta_names
protectedinherited

◆ _etai_name

VariableName SLKKSMultiACBulkC::_etai_name
protected

name of order parameter that derivatives are taken w.r.t.

Definition at line 41 of file SLKKSMultiACBulkC.h.

Referenced by SLKKSMultiACBulkC().

◆ _etai_var

unsigned int SLKKSMultiACBulkC::_etai_var
protected

index of order parameter that derivatives are taken w.r.t.

Definition at line 44 of file SLKKSMultiACBulkC.h.

Referenced by SLKKSMultiACBulkC().

◆ _h_names

std::vector<MaterialPropertyName> SLKKSMultiPhaseBase::_h_names
protectedinherited

Switching function names.

Definition at line 49 of file SLKKSMultiPhaseBase.h.

Referenced by SLKKSMultiACBulkC(), and SLKKSMultiPhaseConcentration::SLKKSMultiPhaseConcentration().

◆ _l_cs

int SLKKSMultiACBulkC::_l_cs
protected

Position of the c variable in the cs list.

Definition at line 62 of file SLKKSMultiACBulkC.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), precomputeQpResidual(), and SLKKSMultiACBulkC().

◆ _l_etai

int SLKKSMultiACBulkC::_l_etai
protected

Position of the eta_i variable in the eta list.

Definition at line 65 of file SLKKSMultiACBulkC.h.

Referenced by precomputeQpJacobian(), and SLKKSMultiACBulkC().

◆ _lagrange

const bool SLKKSMultiACBulkC::_lagrange
protected

is eta_i supplied (then we assume the kernel operates on the Lagrange var)

Definition at line 38 of file SLKKSMultiACBulkC.h.

Referenced by precomputeQpJacobian().

◆ _mob

const MaterialProperty<Real>& SLKKSMultiACBulkC::_mob
protected

Mobility.

Definition at line 68 of file SLKKSMultiACBulkC.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().

◆ _ncs

const std::size_t SLKKSMultiPhaseBase::_ncs
protectedinherited

◆ _neta

const std::size_t SLKKSMultiPhaseBase::_neta
protectedinherited

Order parameters for each phase \( \eta_j \).

Definition at line 40 of file SLKKSMultiPhaseBase.h.

Referenced by SLKKSMultiACBulkC(), SLKKSMultiPhaseBase::SLKKSMultiPhaseBase(), and SLKKSMultiPhaseConcentration::SLKKSMultiPhaseConcentration().

◆ _nh

const std::size_t SLKKSMultiPhaseBase::_nh
protectedinherited

◆ _ns

std::vector<unsigned int> SLKKSMultiPhaseBase::_ns
protectedinherited

◆ _phase

std::vector<unsigned int> SLKKSMultiPhaseBase::_phase
protectedinherited

◆ _prop_d2Fdcdcs

std::vector<const MaterialProperty<Real> *> SLKKSMultiACBulkC::_prop_d2Fdcdcs
protected

Second derivatives of F w.r.t. c and all cs.

Definition at line 53 of file SLKKSMultiACBulkC.h.

Referenced by computeQpOffDiagJacobian(), and SLKKSMultiACBulkC().

◆ _prop_d2hdnidn

std::vector<std::vector<const MaterialProperty<Real> *> > SLKKSMultiACBulkC::_prop_d2hdnidn
protected

first derivatives of all h w.r.t. to the kernel variable and other etas

Definition at line 59 of file SLKKSMultiACBulkC.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and SLKKSMultiACBulkC().

◆ _prop_dFdc

const MaterialProperty<Real>& SLKKSMultiACBulkC::_prop_dFdc
protected

Derivative of the free energy function w.r.t. c.

Definition at line 50 of file SLKKSMultiACBulkC.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().

◆ _prop_dhdni

std::vector<const MaterialProperty<Real> *> SLKKSMultiACBulkC::_prop_dhdni
protected

first derivatives of all h w.r.t. to etai

Definition at line 56 of file SLKKSMultiACBulkC.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpResidual(), and SLKKSMultiACBulkC().


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