19 "The component of the displacement vector this kernel is "
20 "working on: component == 0 => X, 1 => Y, 2 => Z");
23 params.
addParam<std::string>(
"base_name",
"Material property base name");
24 params.
addParam<std::string>(
"traction_global_name",
26 "Name of the traction material property (global frame)");
30 "Disable the shifted integration corrections while retaining the same interface kernel and "
31 "cohesive-zone model. Shifted integration is enabled by default and is the intended SBM "
32 "mode; disable it only to isolate the effect of the correction terms for verification and "
42 _base_name(this->isParamValid(
"base_name") &&
43 !this->template getParam<
std::string>(
"base_name").empty()
44 ? this->template getParam<
std::string>(
"base_name") +
"_"
46 _component(this->template getParam<unsigned
int>(
"component")),
47 _ndisp(this->coupledComponents(
"displacements")),
48 _traction_global(this->template getGenericMaterialPropertyByName<RealVectorValue, is_ad>(
49 _base_name + this->template getParam<
std::string>(
"traction_global_name"))),
50 _shifted(!this->template getParam<bool>(
"no_shifted"))
52 if (
_ndisp != this->_mesh.dimension())
53 this->paramError(
"displacements",
"Number of displacements must match problem dimension.");
56 this->paramError(
"displacements",
57 "The SCZM material requires 1, 2, or 3 displacement variables.");
64 auto residual = _traction_global[this->_qp](_component);
69 residual *= -this->_test[this->_i][this->_qp];
73 residual *= this->_test_neighbor[this->_i][this->_qp];
Moose::GenericType< Real, is_ad > GenericReal
void ErrorVector unsigned int
Template base providing signed-distance and normal-vector utilities for SBM objects.
static InputParameters validParams()
Base class for AD and non-AD shifted cohesive zone interface kernels.
static InputParameters validParams()
SCZMInterfaceKernelBaseTempl(const InputParameters ¶meters)
GenericReal< is_ad > computeQpResidual(Moose::DGResidualType type) override
const unsigned int _ndisp
Number of displacement components.