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

AD and non-AD shifted cohesive zone interface kernel for the small-strain formulation. More...

#include <SCZMInterfaceKernelSmallStrain.h>

Inheritance diagram for SCZMInterfaceKernelSmallStrainTempl< is_ad >:
[legend]

Public Types

typedef std::vector< int > JvarMap
 

Public Member Functions

 SCZMInterfaceKernelSmallStrainTempl (const InputParameters &parameters)
 
virtual void computeOffDiagJacobian (unsigned int jvar) override
 
unsigned int mapJvarToCvar (unsigned int jvar)
 
int mapJvarToCvar (unsigned int jvar, const JvarMap &jvar_map)
 
bool mapJvarToCvar (unsigned int jvar, unsigned int &cvar)
 
const JvarMap & getJvarMap ()
 
const JvarMap & getParameterJvarMap (std::string parameter_name)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

GenericReal< is_ad > computeQpResidual (Moose::DGResidualType type) override
 
Real computeQpJacobian (Moose::DGJacobianType type) override
 
Real computeQpOffDiagJacobian (Moose::DGJacobianType type, unsigned int jvar) override
 
Real computeDResidualDDisplacement (unsigned int component_j, Moose::DGJacobianType type) const
 
Real calculateDirectionalCorrectionJacobian (unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type) const
 
Real computeDResidualDDisplacement (unsigned int, Moose::DGJacobianType) const
 
Real computeDResidualDDisplacement (unsigned int component_j, Moose::DGJacobianType type) const
 
Real calculateDirectionalCorrectionJacobian (unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type) const
 
Real computeQpJacobian (Moose::DGJacobianType)
 
Real computeQpJacobian (Moose::DGJacobianType type)
 
Real computeQpOffDiagJacobian (Moose::DGJacobianType, unsigned int)
 
Real computeQpOffDiagJacobian (Moose::DGJacobianType type, unsigned int jvar)
 
Real calculateDirectionalCorrectionJacobian (unsigned int, unsigned int, Moose::DGJacobianType) const
 
bool perform_shifted () const override
 Whether to apply the shifted integration corrections.
 

Protected Attributes

const bool _directional_correction
 Whether to add the directional correction term.
 
bool _volumetric_locking_correction
 Whether to apply the volumetric locking correction to the directional correction term.
 
 usingGenericInterfaceKernelMembers
 
const std::string _base_name
 Base name of the material system that this kernel applies to.
 
const unsigned int _component
 The displacement component this kernel is operating on (0=x, 1=y, 2=z)
 
const unsigned int _ndisp
 Number of displacement components.
 
const GenericMaterialProperty< RealVectorValue, is_ad > & _traction_global
 Traction in the global frame.
 
const bool _shifted
 True by default; false only when requesting the non-shifted verification baseline.
 
const unsigned int _n_args
 
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress
 The stress tensor on the element and neighbor sides.
 
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress_neighbor
 
std::vector< unsigned int > _disp_var
 Non-AD data used by the hand-coded Jacobian.
 
std::vector< MooseVariable * > _vars
 
const MaterialProperty< RankTwoTensor > * _dtraction_djump_global
 
const MaterialProperty< RankFourTensor > * _Jacobian_mult
 
const MaterialProperty< RankFourTensor > * _Jacobian_mult_neighbor
 
bool _tangent_is_dpk1_df
 

Private Attributes

const std::size_t _jvar_max_size
 
JvarMap _jvar_map
 
std::map< std::string, JvarMap > _jvar_local_map
 

Detailed Description

template<bool is_ad>
class SCZMInterfaceKernelSmallStrainTempl< is_ad >

AD and non-AD shifted cohesive zone interface kernel for the small-strain formulation.

Definition at line 16 of file SCZMInterfaceKernelSmallStrain.h.

Constructor & Destructor Documentation

◆ SCZMInterfaceKernelSmallStrainTempl()

Definition at line 92 of file SCZMInterfaceKernelSmallStrain.C.

95 _stress(this->template getGenericMaterialPropertyByName<RankTwoTensor, is_ad>(
96 this->_base_name + parameters.get<MaterialPropertyName>("stress"))),
97 _stress_neighbor(this->template getGenericNeighborMaterialPropertyByName<RankTwoTensor, is_ad>(
98 this->_base_name + parameters.get<MaterialPropertyName>("stress"))),
100 _Jacobian_mult(nullptr),
102 _tangent_is_dpk1_df(false),
103 _directional_correction(parameters.get<bool>("directional_correction")),
105{
106 if constexpr (!is_ad)
107 {
108 _disp_var.resize(this->_ndisp);
109 _vars.resize(this->_ndisp);
110 for (const auto i : make_range(this->_ndisp))
111 {
112 _disp_var[i] = this->coupled("displacements", i);
113 _vars[i] = this->getVar("displacements", i);
114 }
115
116 _dtraction_djump_global = &this->template getMaterialPropertyByName<RankTwoTensor>(
117 this->_base_name + "dtraction_djump_global");
118 _Jacobian_mult = &this->template getMaterialPropertyByName<RankFourTensor>(
119 this->_base_name + parameters.get<MaterialPropertyName>("tangent"));
120 _Jacobian_mult_neighbor = &this->template getNeighborMaterialPropertyByName<RankFourTensor>(
121 this->_base_name + parameters.get<MaterialPropertyName>("tangent"));
122 _volumetric_locking_correction = parameters.get<bool>("volumetric_locking_correction");
123
124 const auto & tangent_name = parameters.get<MaterialPropertyName>("tangent");
125 const auto & tangent_definition = parameters.get<MooseEnum>("tangent_definition");
126 if (tangent_definition == "auto")
127 {
128 if (tangent_name == "Jacobian_mult")
129 _tangent_is_dpk1_df = false;
130 else if (tangent_name == "pk1_jacobian")
131 _tangent_is_dpk1_df = true;
132 else
133 this->paramError("tangent_definition",
134 "Cannot infer the mathematical definition of custom tangent property '",
135 tangent_name,
136 "'. Set 'tangent_definition' to 'stress_wrt_strain' or "
137 "'pk1_wrt_deformation_gradient'.");
138 }
139 else
140 _tangent_is_dpk1_df = tangent_definition == "pk1_wrt_deformation_gradient";
141 }
142}
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Base class for AD and non-AD shifted cohesive zone interface kernels.
const std::string _base_name
Base name of the material system that this kernel applies to.
const unsigned int _ndisp
Number of displacement components.
const MaterialProperty< RankTwoTensor > * _dtraction_djump_global
const MaterialProperty< RankFourTensor > * _Jacobian_mult
const bool _directional_correction
Whether to add the directional correction term.
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress
The stress tensor on the element and neighbor sides.
std::vector< unsigned int > _disp_var
Non-AD data used by the hand-coded Jacobian.
bool _volumetric_locking_correction
Whether to apply the volumetric locking correction to the directional correction term.
const MaterialProperty< RankFourTensor > * _Jacobian_mult_neighbor
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress_neighbor
IntRange< T > make_range(T beg, T end)

Member Function Documentation

◆ calculateDirectionalCorrectionJacobian() [1/3]

template<bool is_ad>
Real SCZMInterfaceKernelSmallStrainTempl< is_ad >::calculateDirectionalCorrectionJacobian ( unsigned int  ivar,
unsigned int  jvar,
Moose::DGJacobianType  type 
) const
protected

◆ calculateDirectionalCorrectionJacobian() [2/3]

Real SCZMInterfaceKernelSmallStrainTempl< false >::calculateDirectionalCorrectionJacobian ( unsigned int  ivar,
unsigned int  jvar,
Moose::DGJacobianType  type 
) const
protected

Definition at line 250 of file SCZMInterfaceKernelSmallStrain.C.

252{
253 const auto true_normal =
254 _shifted ? RealVectorValue(trueNormal()) : RealVectorValue(_normals[_qp]);
255
256 const bool trial_on_element = type == Moose::ElementElement || type == Moose::NeighborElement;
257 const auto grad_phi = trial_on_element ? _grad_phi[_j][_qp] : _grad_phi_neighbor[_j][_qp];
258
259 const auto nt_tangent = _normals[_qp] - (true_normal * _normals[_qp]) * true_normal;
260
261 const auto test = (type == Moose::ElementElement || type == Moose::ElementNeighbor)
262 ? _test[_i][_qp]
263 : _test_neighbor[_i][_qp];
264
265 const auto & r4t = (type == Moose::ElementElement || type == Moose::ElementNeighbor)
266 ? (*_Jacobian_mult)[_qp]
267 : (*_Jacobian_mult_neighbor)[_qp];
268
270 r4t, ivar, jvar, nt_tangent * test /*transpose later (w^T n^T)*/, grad_phi /*B*/);
271
272 const Real n0 = nt_tangent(0);
273 const Real n1 = nt_tangent(1);
274 const Real n2 = nt_tangent(2);
275
276 const Real gp0 = grad_phi(0);
277 const Real gp1 = grad_phi(1);
278 const Real gp2 = grad_phi(2);
279
280 const auto i = ivar;
281 const auto k = jvar;
282
283 const Real symmetric_part =
284 ((r4t(i, 0, 0, k) * gp0 + r4t(i, 0, 1, k) * gp1 + r4t(i, 0, 2, k) * gp2) * n0 +
285 (r4t(i, 1, 0, k) * gp0 + r4t(i, 1, 1, k) * gp1 + r4t(i, 1, 2, k) * gp2) * n1 +
286 (r4t(i, 2, 0, k) * gp0 + r4t(i, 2, 1, k) * gp1 + r4t(i, 2, 2, k) * gp2) * n2) *
287 test;
288
289 // dP/dF acts on the full displacement gradient. A strain-based tangent instead acts on the
290 // symmetric gradient, which contributes the transposed contraction as well.
291 Real jacobian = _tangent_is_dpk1_df ? origin_part : (origin_part + symmetric_part) * 0.5;
292
294 {
295 const auto grad_op = gradOpForCoord(_coord_sys,
296 k,
297 grad_phi,
298 trial_on_element ? _phi[_j][_qp] : _phi_neighbor[_j][_qp],
299 _q_point[_qp]);
300 const auto avg_grad_op = StabilizationUtils::elementAverage(
301 [this, k, trial_on_element](unsigned int qp)
302 {
303 return gradOpForCoord(_coord_sys,
304 k,
305 trial_on_element ? _grad_phi[_j][qp] : _grad_phi_neighbor[_j][qp],
306 trial_on_element ? _phi[_j][qp] : _phi_neighbor[_j][qp],
307 _q_point[qp]);
308 },
309 _JxW,
310 _coord);
311 const Real volumetric_increment = (avg_grad_op.trace() - grad_op.trace()) / 3.0;
312
313 for (const auto m : make_range(3))
314 jacobian += (r4t(i, 0, m, m) * n0 + r4t(i, 1, m, m) * n1 + r4t(i, 2, m, m) * n2) * test *
315 volumetric_increment;
316 }
317
318 return jacobian;
319}
const bool _shifted
True by default; false only when requesting the non-shifted verification baseline.
Real elasticJacobian(const RankFourTensor &r4t, unsigned int i, unsigned int k, const RealGradient &grad_test, const RealGradient &grad_phi)
This is used for the standard kernel stress_ij*d(test)/dx_j, when varied wrt u_k Jacobian entry: d(st...
ElementElement
NeighborElement
ElementNeighbor
auto elementAverage(const Functor &f, const MooseArray< Real > &JxW, const MooseArray< Real > &coord)
VectorValue< Real > RealVectorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ calculateDirectionalCorrectionJacobian() [3/3]

Real SCZMInterfaceKernelSmallStrainTempl< true >::calculateDirectionalCorrectionJacobian ( unsigned int  ,
unsigned int  ,
Moose::DGJacobianType   
) const
protected

Definition at line 393 of file SCZMInterfaceKernelSmallStrain.C.

395{
396 return 0;
397}

◆ computeDResidualDDisplacement() [1/3]

template<bool is_ad>
Real SCZMInterfaceKernelSmallStrainTempl< is_ad >::computeDResidualDDisplacement ( unsigned int  component_j,
Moose::DGJacobianType  type 
) const
protected

◆ computeDResidualDDisplacement() [2/3]

Real SCZMInterfaceKernelSmallStrainTempl< false >::computeDResidualDDisplacement ( unsigned int  component_j,
Moose::DGJacobianType  type 
) const
protected

Definition at line 192 of file SCZMInterfaceKernelSmallStrain.C.

194{
195 const auto jacsd = (*_dtraction_djump_global)[this->_qp](this->_component, component_j);
196 Real jac = jacsd;
197
198 if (!_shifted)
199 {
200 switch (type)
201 {
202 case Moose::ElementElement: // Residual_sign -1 ddeltaU_ddisp sign -1;
203 jac *= _test[_i][_qp] * _vars[component_j]->phiFace()[_j][_qp];
204 break;
205 case Moose::ElementNeighbor: // Residual_sign -1 ddeltaU_ddisp sign 1;
206 jac *= -_test[_i][_qp] * _vars[component_j]->phiFaceNeighbor()[_j][_qp];
207 break;
208 case Moose::NeighborElement: // Residual_sign 1 ddeltaU_ddisp sign -1;
209 jac *= -_test_neighbor[_i][_qp] * _vars[component_j]->phiFace()[_j][_qp];
210 break;
211 case Moose::NeighborNeighbor: // Residual_sign 1 ddeltaU_ddisp sign 1;
212 jac *= _test_neighbor[_i][_qp] * _vars[component_j]->phiFaceNeighbor()[_j][_qp];
213 break;
214 }
215 return jac;
216 }
217
218 const auto d = surrogateDistance();
219 const auto true_normal = RealVectorValue(trueNormal());
220 const auto true_normal_dot_surrogate_normal = true_normal * _normals[_qp];
221
222 // Shifted derivative uses d(u + grad_u * d)/du = phiFace + gradPhiFace * d.
223 switch (type)
224 {
225 case Moose::ElementElement: // Residual_sign -1 ddeltaU_ddisp sign -1;
226 jac *= _test[_i][_qp] * (_vars[component_j]->phiFace()[_j][_qp] +
227 _vars[component_j]->gradPhiFace()[_j][_qp] * d);
228 break;
229 case Moose::ElementNeighbor: // Residual_sign -1 ddeltaU_ddisp sign 1;
230 jac *= -_test[_i][_qp] * (_vars[component_j]->phiFaceNeighbor()[_j][_qp] +
231 _vars[component_j]->gradPhiFaceNeighbor()[_j][_qp] * d);
232 break;
233 case Moose::NeighborElement: // Residual_sign 1 ddeltaU_ddisp sign -1;
234 jac *= -_test_neighbor[_i][_qp] * (_vars[component_j]->phiFace()[_j][_qp] +
235 _vars[component_j]->gradPhiFace()[_j][_qp] * d);
236 break;
237 case Moose::NeighborNeighbor: // Residual_sign 1 ddeltaU_ddisp sign 1;
238 jac *= _test_neighbor[_i][_qp] * (_vars[component_j]->phiFaceNeighbor()[_j][_qp] +
239 _vars[component_j]->gradPhiFaceNeighbor()[_j][_qp] * d);
240 break;
241 }
242
243 jac *= true_normal_dot_surrogate_normal; // Area correction
244
245 return jac;
246}
const unsigned int _component
The displacement component this kernel is operating on (0=x, 1=y, 2=z)
NeighborNeighbor

◆ computeDResidualDDisplacement() [3/3]

Real SCZMInterfaceKernelSmallStrainTempl< true >::computeDResidualDDisplacement ( unsigned int  ,
Moose::DGJacobianType   
) const
protected

Definition at line 184 of file SCZMInterfaceKernelSmallStrain.C.

186{
187 return 0;
188}

◆ computeQpJacobian() [1/3]

Real SCZMInterfaceKernelSmallStrainTempl< false >::computeQpJacobian ( Moose::DGJacobianType  type)
protected

Definition at line 330 of file SCZMInterfaceKernelSmallStrain.C.

331{
332 Real jacobian = computeDResidualDDisplacement(this->_component, type);
333
335 switch (type)
336 {
339 break;
342 break;
345 break;
346 }
347
348 return jacobian;
349}
Real calculateDirectionalCorrectionJacobian(unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type) const
Real computeDResidualDDisplacement(unsigned int component_j, Moose::DGJacobianType type) const

◆ computeQpJacobian() [2/3]

template<bool is_ad>
Real SCZMInterfaceKernelSmallStrainTempl< is_ad >::computeQpJacobian ( Moose::DGJacobianType  type)
overrideprotected

◆ computeQpJacobian() [3/3]

Real SCZMInterfaceKernelSmallStrainTempl< true >::computeQpJacobian ( Moose::DGJacobianType  )
protected

Definition at line 323 of file SCZMInterfaceKernelSmallStrain.C.

324{
325 return 0;
326}

◆ computeQpOffDiagJacobian() [1/3]

Real SCZMInterfaceKernelSmallStrainTempl< false >::computeQpOffDiagJacobian ( Moose::DGJacobianType  type,
unsigned int  jvar 
)
protected

Definition at line 361 of file SCZMInterfaceKernelSmallStrain.C.

363{
364 if (this->getJvarMap()[jvar] < 0)
365 return 0;
366
367 Real jacobian = 0;
368 for (const auto coupled_component : make_range(this->_ndisp))
369 if (jvar == _disp_var[coupled_component])
370 jacobian = computeDResidualDDisplacement(coupled_component, type);
371
373 for (const auto coupled_component : make_range(_ndisp))
374 if (jvar == _disp_var[coupled_component])
375 switch (type)
376 {
378 jacobian -= calculateDirectionalCorrectionJacobian(_component, coupled_component, type);
379 break;
381 jacobian += calculateDirectionalCorrectionJacobian(_component, coupled_component, type);
382 break;
385 break;
386 }
387
388 return jacobian;
389}
if(subdm)

◆ computeQpOffDiagJacobian() [2/3]

template<bool is_ad>
Real SCZMInterfaceKernelSmallStrainTempl< is_ad >::computeQpOffDiagJacobian ( Moose::DGJacobianType  type,
unsigned int  jvar 
)
overrideprotected

◆ computeQpOffDiagJacobian() [3/3]

Real SCZMInterfaceKernelSmallStrainTempl< true >::computeQpOffDiagJacobian ( Moose::DGJacobianType  ,
unsigned int   
)
protected

Definition at line 353 of file SCZMInterfaceKernelSmallStrain.C.

355{
356 return 0;
357}

◆ computeQpResidual()

template<bool is_ad>
GenericReal< is_ad > SCZMInterfaceKernelSmallStrainTempl< is_ad >::computeQpResidual ( Moose::DGResidualType  type)
overrideprotected

Definition at line 146 of file SCZMInterfaceKernelSmallStrain.C.

147{
148 if (!this->_shifted)
150
151 const RealVectorValue true_normal(this->trueNormal());
152 const Real true_normal_dot_surrogate_normal = true_normal * this->_normals[this->_qp];
153
155 residual *= true_normal_dot_surrogate_normal;
156
158 {
159 const auto stress = _stress[this->_qp].row(this->_component);
160 const auto stress_neighbor = _stress_neighbor[this->_qp].row(this->_component);
161 const auto normal_tangent =
162 this->_normals[this->_qp] - true_normal_dot_surrogate_normal * true_normal;
163
164 switch (type)
165 {
166 case Moose::Element:
167 residual -= this->_test[this->_i][this->_qp] * (stress * normal_tangent);
168 break;
169
170 case Moose::Neighbor:
171 residual += this->_test_neighbor[this->_i][this->_qp] * (stress_neighbor * normal_tangent);
172 break;
173
174 default:
175 break;
176 }
177 }
178
179 return residual;
180}
GenericReal< is_ad > computeQpResidual(Moose::DGResidualType type) override

◆ perform_shifted()

template<bool is_ad>
bool SCZMInterfaceKernelBaseTempl< is_ad >::perform_shifted ( ) const
inlineoverrideprotectedinherited

Whether to apply the shifted integration corrections.

Shifted integration is the default and intended mode for SBM simulations. It can be disabled only to provide a non-shifted baseline with the same interface kernel and cohesive-zone model, which isolates the effect of the shifted correction terms for verification and comparison.

Definition at line 33 of file SCZMInterfaceKernelBase.h.

33{ return _shifted; }

◆ validParams()

template<bool is_ad>
InputParameters SCZMInterfaceKernelSmallStrainTempl< is_ad >::validParams ( )
static

Definition at line 59 of file SCZMInterfaceKernelSmallStrain.C.

60{
62
63 params.addParam<bool>("directional_correction", true, "Add the directional correction terms.");
64 params.addParam<MaterialPropertyName>(
65 "stress", "stress", "Name of the stress tensor material property.");
66 if constexpr (!is_ad)
67 {
68 params.addParam<MaterialPropertyName>(
69 "tangent", "Jacobian_mult", "Name of the material Jacobian tensor property.");
70 params.addParam<MooseEnum>(
71 "tangent_definition",
72 MooseEnum("auto stress_wrt_strain pk1_wrt_deformation_gradient", "auto"),
73 "Mathematical definition of the tangent material property. 'auto' recognizes the standard "
74 "Jacobian_mult property as d(stress)/d(strain) and pk1_jacobian as d(PK1)/d(F). Select "
75 "'stress_wrt_strain' or 'pk1_wrt_deformation_gradient' explicitly for a custom tangent "
76 "property; use the latter only when the property is known to be d(PK1)/d(F).");
77 params.addParam<bool>(
78 "volumetric_locking_correction",
79 false,
80 "Whether to apply volumetric locking correction to the directional "
81 "correction Jacobian. This setting should be consistent with the volumetric "
82 "locking correction used in the bulk finite element formulation to ensure "
83 "the interface Jacobian is consistent with the bulk stress.");
84 }
86 "Shifted CZM Interface kernel to use when using the Small Strain kinematic formulation.");
87
88 return params;
89}
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)
static InputParameters validParams()

Member Data Documentation

◆ _base_name

template<bool is_ad>
const std::string SCZMInterfaceKernelBaseTempl< is_ad >::_base_name
protectedinherited

Base name of the material system that this kernel applies to.

Definition at line 36 of file SCZMInterfaceKernelBase.h.

Referenced by SCZMInterfaceKernelSmallStrainTempl< is_ad >::SCZMInterfaceKernelSmallStrainTempl().

◆ _component

template<bool is_ad>
const unsigned int SCZMInterfaceKernelBaseTempl< is_ad >::_component
protectedinherited

The displacement component this kernel is operating on (0=x, 1=y, 2=z)

Definition at line 39 of file SCZMInterfaceKernelBase.h.

◆ _directional_correction

template<bool is_ad>
const bool SCZMInterfaceKernelSmallStrainTempl< is_ad >::_directional_correction
protected

Whether to add the directional correction term.

Definition at line 49 of file SCZMInterfaceKernelSmallStrain.h.

◆ _disp_var

template<bool is_ad>
std::vector<unsigned int> SCZMInterfaceKernelSmallStrainTempl< is_ad >::_disp_var
protected

Non-AD data used by the hand-coded Jacobian.

Definition at line 40 of file SCZMInterfaceKernelSmallStrain.h.

Referenced by SCZMInterfaceKernelSmallStrainTempl< is_ad >::SCZMInterfaceKernelSmallStrainTempl().

◆ _dtraction_djump_global

template<bool is_ad>
const MaterialProperty<RankTwoTensor>* SCZMInterfaceKernelSmallStrainTempl< is_ad >::_dtraction_djump_global
protected

◆ _Jacobian_mult

template<bool is_ad>
const MaterialProperty<RankFourTensor>* SCZMInterfaceKernelSmallStrainTempl< is_ad >::_Jacobian_mult
protected

◆ _Jacobian_mult_neighbor

template<bool is_ad>
const MaterialProperty<RankFourTensor>* SCZMInterfaceKernelSmallStrainTempl< is_ad >::_Jacobian_mult_neighbor
protected

◆ _ndisp

template<bool is_ad>
const unsigned int SCZMInterfaceKernelBaseTempl< is_ad >::_ndisp
protectedinherited

◆ _shifted

template<bool is_ad>
const bool SCZMInterfaceKernelBaseTempl< is_ad >::_shifted
protectedinherited

True by default; false only when requesting the non-shifted verification baseline.

Definition at line 48 of file SCZMInterfaceKernelBase.h.

Referenced by SCZMInterfaceKernelBaseTempl< is_ad >::perform_shifted().

◆ _stress

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>& SCZMInterfaceKernelSmallStrainTempl< is_ad >::_stress
protected

The stress tensor on the element and neighbor sides.

Definition at line 34 of file SCZMInterfaceKernelSmallStrain.h.

◆ _stress_neighbor

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>& SCZMInterfaceKernelSmallStrainTempl< is_ad >::_stress_neighbor
protected

Definition at line 35 of file SCZMInterfaceKernelSmallStrain.h.

◆ _tangent_is_dpk1_df

template<bool is_ad>
bool SCZMInterfaceKernelSmallStrainTempl< is_ad >::_tangent_is_dpk1_df
protected

◆ _traction_global

template<bool is_ad>
const GenericMaterialProperty<RealVectorValue, is_ad>& SCZMInterfaceKernelBaseTempl< is_ad >::_traction_global
protectedinherited

Traction in the global frame.

Definition at line 45 of file SCZMInterfaceKernelBase.h.

◆ _vars

template<bool is_ad>
std::vector<MooseVariable *> SCZMInterfaceKernelSmallStrainTempl< is_ad >::_vars
protected

◆ _volumetric_locking_correction

template<bool is_ad>
bool SCZMInterfaceKernelSmallStrainTempl< is_ad >::_volumetric_locking_correction
protected

Whether to apply the volumetric locking correction to the directional correction term.

Definition at line 52 of file SCZMInterfaceKernelSmallStrain.h.

Referenced by SCZMInterfaceKernelSmallStrainTempl< is_ad >::SCZMInterfaceKernelSmallStrainTempl().

◆ usingGenericInterfaceKernelMembers

template<bool is_ad>
SCZMInterfaceKernelSmallStrainTempl< is_ad >::usingGenericInterfaceKernelMembers
protected

Definition at line 64 of file SCZMInterfaceKernelSmallStrain.h.


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