18 params.
addClassDescription(
"Calculate residual contribution for balancing the traction across an " 19 "interface (used in the cohesive zone method).");
20 params.
set<std::string>(
"traction_global_name") =
"PK1traction";
27 _dPK1traction_dF(getMaterialPropertyByName<
RankThreeTensor>(_base_name +
"dPK1traction_dF"))
41 jac += _test[_i][_qp] * jacsd *
_vars[component_j]->phiFace()[_j][_qp];
42 jac -= _test[_i][_qp] *
JacLD(component_j,
false);
45 jac -= _test[_i][_qp] * jacsd *
_vars[component_j]->phiFaceNeighbor()[_j][_qp];
46 jac -= _test[_i][_qp] *
JacLD(component_j,
true);
49 jac -= _test_neighbor[_i][_qp] * jacsd *
_vars[component_j]->phiFace()[_j][_qp];
50 jac += _test_neighbor[_i][_qp] *
JacLD(component_j,
false);
53 jac += _test_neighbor[_i][_qp] * jacsd *
_vars[component_j]->phiFaceNeighbor()[_j][_qp];
54 jac += _test_neighbor[_i][_qp] *
JacLD(component_j,
true);
67 phi = 0.5 *
_vars[cc]->gradPhiFaceNeighbor()[_j][_qp];
69 phi = 0.5 *
_vars[cc]->gradPhiFace()[_j][_qp];
71 for (
unsigned int j = 0;
j < 3;
j++)
74 mooseAssert(std::isfinite(jacld),
"CZMInterfaceKernelTotalLagrangian JacLD is not finite");
static InputParameters validParams()
registerMooseObject("SolidMechanicsApp", CZMInterfaceKernelTotalLagrangian)
Base class for implementing DG cohesive zone models (CZM) for 1D,2D, and 3D traction separation laws...
static InputParameters validParams()
CZMInterfaceKernelTotalLagrangian(const InputParameters ¶meters)
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] ...
DG cohesive zone model kernel for the Total Lagrangian formulation.
const unsigned int _component
the displacement component this kernel is operating on (0=x, 1=y, 2 =z)
std::vector< MooseVariable * > _vars
const MaterialProperty< RankThreeTensor > & _dPK1traction_dF
Real JacLD(const unsigned int cc, const bool neighbor) const
method computing the jacobian contribution due to rotations and area changes
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
const MaterialProperty< RankTwoTensor > & _dtraction_djump_global