21 "An integer corresponding to the direction the variable " 22 "this kernel acts in. (0 for x, 1 for y, 2 for z)");
24 "The component of the enrichement functions");
26 "The string of displacements suitable for the problem statement");
28 "enrichment_displacements",
29 "The string of enrichment displacements suitable for the problem statement");
30 params.
addParam<std::string>(
"base_name",
"Material property base name");
32 "The CrackFrontDefinition user object name");
33 params.
set<
bool>(
"use_displaced_mesh") =
false;
41 _base_name(isParamValid(
"base_name") ? getParam<
std::string>(
"base_name") +
"_" :
""),
42 _stress(getMaterialPropertyByName<
RankTwoTensor>(_base_name +
"stress")),
43 _Jacobian_mult(getMaterialPropertyByName<
RankFourTensor>(_base_name +
"Jacobian_mult")),
44 _component(getParam<unsigned
int>(
"component")),
45 _enrichment_component(getParam<unsigned
int>(
"enrichment_component")),
46 _nenrich_disp(coupledComponents(
"enrichment_displacements")),
47 _ndisp(coupledComponents(
"displacements")),
59 for (
unsigned int i = 0; i <
_ndisp; ++i)
60 _disp_var[i] = coupled(
"displacements", i);
69 unsigned int crack_front_point_index =
72 for (
unsigned int i = 0; i < 4; ++i)
79 _test[_i][_qp] * grad_B);
90 unsigned int crack_front_point_index =
93 for (
unsigned int i = 0; i < 4; ++i)
100 _test[_i][_qp] * grad_B;
103 _phi[_j][_qp] * grad_B;
112 unsigned int coupled_component = 0;
113 unsigned int coupled_enrichment_component = 0;
115 bool active_enrich(
false);
121 coupled_component = i / 4;
122 coupled_enrichment_component = i % 4;
123 active_enrich =
true;
127 for (
unsigned int i = 0; i <
_disp_var.size(); ++i)
131 coupled_component = i;
142 unsigned int crack_front_point_index =
145 for (
unsigned int i = 0; i < 4; ++i)
153 _test[_i][_qp] * grad_B_test;
154 RealVectorValue grad_phi = _grad_phi[_j][_qp] * (
_B[coupled_enrichment_component] -
155 _BJ[coupled_enrichment_component]) +
156 _phi[_j][_qp] * grad_B_phi;
166 unsigned int crack_front_point_index =
169 for (
unsigned int i = 0; i < 4; ++i)
176 _test[_i][_qp] * grad_B_test;
unsigned int _ndisp
Coupled displacement variables.
std::vector< RealVectorValue > _dBx
derivatives of enrichment function respect to crack front cooridnate
virtual unsigned int crackTipEnrichementFunctionAtPoint(const Point &point, std::vector< Real > &B)
calculate the enrichment function values at point
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
void rotateFromCrackFrontCoordsToGlobal(const RealVectorValue &vector, RealVectorValue &rotated_vector, const unsigned int point_index)
rotate a vector from crack front coordinate to global cooridate
std::vector< Real > _BI
enrichment function at node I
std::vector< Real > _B
enrichment function value
Class used in fracture integrals to define geometric characteristics of the crack front...
unsigned int _nenrich_disp
Coupled enrichment displacement variables.
std::vector< Real > _BJ
enrichment function at node J
static InputParameters validParams()
CrackTipEnrichmentStressDivergenceTensors(const InputParameters ¶meters)
virtual Real computeQpJacobian() override
registerMooseObject("XFEMApp", CrackTipEnrichmentStressDivergenceTensors)
Perform calculation of enrichment function values and derivatives.
const unsigned int _component
displacement components
CrackTipEnrichmentStressDivergenceTensors implements the residual and jacobian for enrichement displa...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computeQpResidual() override
std::vector< unsigned int > _enrich_disp_var
const unsigned int _enrichment_component
enrichment function components
virtual unsigned int crackTipEnrichementFunctionDerivativeAtPoint(const Point &point, std::vector< RealVectorValue > &dB)
calculate the enrichment function derivatives at point
static InputParameters validParams()
std::vector< unsigned int > _disp_var
const MaterialProperty< RankFourTensor > & _Jacobian_mult
std::vector< RealVectorValue > _dBX
derivatives of enrichment function respect to global cooridnate
const MaterialProperty< RankTwoTensor > & _stress
void ErrorVector unsigned int