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

DG cohesive zone model kernel for the small strain formulation. More...

#include <CZMInterfaceKernelSmallStrain.h>

Inheritance diagram for CZMInterfaceKernelSmallStrain:
[legend]

Public Types

typedef std::vector< intJvarMap
 

Public Member Functions

 CZMInterfaceKernelSmallStrain (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 JvarMapgetJvarMap ()
 
const JvarMapgetParameterJvarMap (std::string parameter_name)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

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] More...
 
Real computeQpResidual (Moose::DGResidualType type) override
 
Real computeQpJacobian (Moose::DGJacobianType type) override
 
Real computeQpOffDiagJacobian (Moose::DGJacobianType type, unsigned int jvar) override
 

Protected Attributes

const std::string _base_name
 Base name of the material system that this kernel applies to. More...
 
const unsigned int _component
 the displacement component this kernel is operating on (0=x, 1=y, 2 =z) More...
 
const unsigned int _ndisp
 number of displacement components More...
 
std::vector< MooseVariable * > _vars
 
const unsigned int _n_args
 
std::vector< unsigned int_disp_var
 Coupled displacement component variable IDs. More...
 
std::vector< unsigned int_disp_neighbor_var
 
const MaterialProperty< RealVectorValue > & _traction_global
 
const MaterialProperty< RankTwoTensor > & _dtraction_djump_global
 

Detailed Description

DG cohesive zone model kernel for the small strain formulation.

This kernel assummes the traction sepration law only depends from the displacement jump. One kernel is required for each displacement component

Definition at line 17 of file CZMInterfaceKernelSmallStrain.h.

Constructor & Destructor Documentation

◆ CZMInterfaceKernelSmallStrain()

CZMInterfaceKernelSmallStrain::CZMInterfaceKernelSmallStrain ( const InputParameters parameters)

Definition at line 25 of file CZMInterfaceKernelSmallStrain.C.

26  : CZMInterfaceKernelBase(parameters)
27 {
28 }
CZMInterfaceKernelBase(const InputParameters &parameters)

Member Function Documentation

◆ computeDResidualDDisplacement()

Real CZMInterfaceKernelSmallStrain::computeDResidualDDisplacement ( const unsigned int component_j,
const Moose::DGJacobianType type 
) const
overrideprotectedvirtual

method computing the derivative of residual[_component] w.r.t displacement[component_j]

Implements CZMInterfaceKernelBase.

Definition at line 31 of file CZMInterfaceKernelSmallStrain.C.

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
ElementElement
const unsigned int _component
the displacement component this kernel is operating on (0=x, 1=y, 2 =z)
std::vector< MooseVariable * > _vars
ElementNeighbor
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< RankTwoTensor > & _dtraction_djump_global
NeighborNeighbor

◆ computeQpJacobian()

Real CZMInterfaceKernelBase::computeQpJacobian ( Moose::DGJacobianType  type)
overrideprotectedinherited

Definition at line 79 of file CZMInterfaceKernelBase.C.

80 {
81  // retrieve the diagonal Jacobian coefficient dependning on the displacement
82  // component (_component) this kernel is working on
84 }
const unsigned int _component
the displacement component this kernel is operating on (0=x, 1=y, 2 =z)
virtual Real computeDResidualDDisplacement(const unsigned int &component_j, const Moose::DGJacobianType &type) const =0
method computing the derivative of residual[_component] w.r.t displacement[component_j] ...

◆ computeQpOffDiagJacobian()

Real CZMInterfaceKernelBase::computeQpOffDiagJacobian ( Moose::DGJacobianType  type,
unsigned int  jvar 
)
overrideprotectedinherited

Definition at line 87 of file CZMInterfaceKernelBase.C.

88 {
89  // bail out if jvar is not coupled
90  if (getJvarMap()[jvar] < 0)
91  return 0.0;
92 
93  // Jacobian of the residul[_component] w.r.t to the coupled displacement
94  // component[off_diag_component]
95  for (unsigned int off_diag_component = 0; off_diag_component < _ndisp; ++off_diag_component)
96  {
97  if (jvar == _disp_var[off_diag_component])
98  return computeDResidualDDisplacement(off_diag_component, type);
99  }
100  // this is the place where one should implement derivatives of the residual w.r.t. other variables
101  return 0.0;
102 }
std::vector< unsigned int > _disp_var
Coupled displacement component variable IDs.
const unsigned int _ndisp
number of displacement components
virtual Real computeDResidualDDisplacement(const unsigned int &component_j, const Moose::DGJacobianType &type) const =0
method computing the derivative of residual[_component] w.r.t displacement[component_j] ...

◆ computeQpResidual()

Real CZMInterfaceKernelBase::computeQpResidual ( Moose::DGResidualType  type)
overrideprotectedinherited

Definition at line 61 of file CZMInterfaceKernelBase.C.

62 {
64 
65  switch (type)
66  {
67  // [test_secondary-test_primary]*T where T represents the traction.
68  case Moose::Element:
69  r *= -_test[_i][_qp];
70  break;
71  case Moose::Neighbor:
72  r *= _test_neighbor[_i][_qp];
73  break;
74  }
75  return r;
76 }
const unsigned int _component
the displacement component this kernel is operating on (0=x, 1=y, 2 =z)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< RealVectorValue > & _traction_global

◆ validParams()

InputParameters CZMInterfaceKernelSmallStrain::validParams ( )
static

Definition at line 15 of file CZMInterfaceKernelSmallStrain.C.

16 {
18 
19  params.addClassDescription(
20  "CZM Interface kernel to use when using the Small Strain kinematic formulation.");
21 
22  return params;
23 }
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _base_name

const std::string CZMInterfaceKernelBase::_base_name
protectedinherited

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

Definition at line 35 of file CZMInterfaceKernelBase.h.

◆ _component

const unsigned int CZMInterfaceKernelBase::_component
protectedinherited

◆ _disp_neighbor_var

std::vector<unsigned int> CZMInterfaceKernelBase::_disp_neighbor_var
protectedinherited

◆ _disp_var

std::vector<unsigned int> CZMInterfaceKernelBase::_disp_var
protectedinherited

Coupled displacement component variable IDs.

Definition at line 45 of file CZMInterfaceKernelBase.h.

Referenced by CZMInterfaceKernelBase::computeQpOffDiagJacobian(), and CZMInterfaceKernelBase::CZMInterfaceKernelBase().

◆ _dtraction_djump_global

const MaterialProperty<RankTwoTensor>& CZMInterfaceKernelBase::_dtraction_djump_global
protectedinherited

◆ _ndisp

const unsigned int CZMInterfaceKernelBase::_ndisp
protectedinherited

number of displacement components

Definition at line 41 of file CZMInterfaceKernelBase.h.

Referenced by CZMInterfaceKernelBase::computeQpOffDiagJacobian(), and CZMInterfaceKernelBase::CZMInterfaceKernelBase().

◆ _traction_global

const MaterialProperty<RealVectorValue>& CZMInterfaceKernelBase::_traction_global
protectedinherited

Definition at line 54 of file CZMInterfaceKernelBase.h.

Referenced by CZMInterfaceKernelBase::computeQpResidual().

◆ _vars

std::vector<MooseVariable *> CZMInterfaceKernelBase::_vars
protectedinherited

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