https://mooseframework.inl.gov
CZMInterfaceKernelSmallStrain.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
11 
13 
16 {
18 
19  params.addClassDescription(
20  "CZM Interface kernel to use when using the Small Strain kinematic formulation.");
21 
22  return params;
23 }
24 
26  : CZMInterfaceKernelBase(parameters)
27 {
28 }
29 
30 Real
32  const unsigned int & component_j, const Moose::DGJacobianType & type) const
33 {
34  Real jac = _dtraction_djump_global[_qp](_component, component_j);
35  switch (type)
36  {
37  case Moose::ElementElement: // Residual_sign -1 ddeltaU_ddisp sign -1;
38  jac *= _test[_i][_qp] * _vars[component_j]->phiFace()[_j][_qp];
39  break;
40  case Moose::ElementNeighbor: // Residual_sign -1 ddeltaU_ddisp sign 1;
41  jac *= -_test[_i][_qp] * _vars[component_j]->phiFaceNeighbor()[_j][_qp];
42  break;
43  case Moose::NeighborElement: // Residual_sign 1 ddeltaU_ddisp sign -1;
44  jac *= -_test_neighbor[_i][_qp] * _vars[component_j]->phiFace()[_j][_qp];
45  break;
46  case Moose::NeighborNeighbor: // Residual_sign 1 ddeltaU_ddisp sign 1;
47  jac *= _test_neighbor[_i][_qp] * _vars[component_j]->phiFaceNeighbor()[_j][_qp];
48  break;
49  }
50  return jac;
51 }
NeighborElement
registerMooseObject("SolidMechanicsApp", CZMInterfaceKernelSmallStrain)
CZMInterfaceKernelSmallStrain(const InputParameters &parameters)
Base class for implementing DG cohesive zone models (CZM) for 1D,2D, and 3D traction separation laws...
static InputParameters validParams()
ElementElement
Real computeDResidualDDisplacement(const unsigned int &component_j, const Moose::DGJacobianType &type) const override
method computing the derivative of residual[_component] w.r.t displacement[component_j] ...
const unsigned int _component
the displacement component this kernel is operating on (0=x, 1=y, 2 =z)
std::vector< MooseVariable * > _vars
ElementNeighbor
DGJacobianType
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DG cohesive zone model kernel for the small strain formulation.
void addClassDescription(const std::string &doc_string)
const MaterialProperty< RankTwoTensor > & _dtraction_djump_global
NeighborNeighbor