https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CZMInterfaceKernelBase.h
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
10#pragma once
11
12#include "InterfaceKernel.h"
13#include "JvarMapInterface.h"
14
19class CZMInterfaceKernelBase : public JvarMapKernelInterface<InterfaceKernel>
20{
21public:
23 CZMInterfaceKernelBase(const InputParameters & parameters);
24
25protected:
26 Real computeQpResidual(Moose::DGResidualType type) override;
27 Real computeQpJacobian(Moose::DGJacobianType type) override;
28 Real computeQpOffDiagJacobian(Moose::DGJacobianType type, unsigned int jvar) override;
29
31 virtual Real computeDResidualDDisplacement(const unsigned int & component_j,
32 const Moose::DGJacobianType & type) const = 0;
33
35 const std::string _base_name;
36
38 const unsigned int _component;
39
41 const unsigned int _ndisp;
42
45 std::vector<unsigned int> _disp_var;
46 std::vector<unsigned int> _disp_neighbor_var;
48
49 // pointer to displacement variables
50 std::vector<MooseVariable *> _vars;
51
52 // values of the traction and traction derivatives used
57};
Base class for implementing DG cohesive zone models (CZM) for 1D,2D, and 3D traction separation laws.
std::vector< MooseVariable * > _vars
const unsigned int _component
the displacement component this kernel is operating on (0=x, 1=y, 2 =z)
std::vector< unsigned int > _disp_var
Coupled displacement component variable IDs.
const MaterialProperty< RealVectorValue > & _traction_global
Real computeQpOffDiagJacobian(Moose::DGJacobianType type, unsigned int jvar) override
const MaterialProperty< RankTwoTensor > & _dtraction_djump_global
const std::string _base_name
Base name of the material system that this kernel applies to.
static InputParameters validParams()
Real computeQpResidual(Moose::DGResidualType type) override
std::vector< unsigned int > _disp_neighbor_var
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]
const unsigned int _ndisp
number of displacement components
Real computeQpJacobian(Moose::DGJacobianType type) override
DGResidualType
DGJacobianType