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

CrackTipEnrichmentStressDivergenceTensors implements the residual and jacobian for enrichement displacement variables. More...

#include <CrackTipEnrichmentStressDivergenceTensors.h>

Inheritance diagram for CrackTipEnrichmentStressDivergenceTensors:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 CrackTipEnrichmentStressDivergenceTensors (const InputParameters &parameters)
 
virtual void computeJacobian () override
 
virtual void computeOffDiagJacobian (unsigned int jvar) override
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
virtual unsigned int crackTipEnrichementFunctionAtPoint (const Point &point, std::vector< Real > &B)
 calculate the enrichment function values at point More...
 
virtual unsigned int crackTipEnrichementFunctionDerivativeAtPoint (const Point &point, std::vector< RealVectorValue > &dB)
 calculate the enrichment function derivatives at point More...
 
void rotateFromCrackFrontCoordsToGlobal (const RealVectorValue &vector, RealVectorValue &rotated_vector, const unsigned int point_index)
 rotate a vector from crack front coordinate to global cooridate More...
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual Real computeQpResidual () override
 
virtual Real computeQpJacobian () override
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar) override
 

Protected Attributes

const std::string _base_name
 
const MaterialProperty< RankTwoTensor > & _stress
 
const MaterialProperty< RankFourTensor > & _Jacobian_mult
 
const MaterialProperty< RankTwoTensor > * _deformation_gradient
 
const MaterialProperty< RankTwoTensor > * _deformation_gradient_old
 
const MaterialProperty< RankTwoTensor > * _rotation_increment
 
const unsigned int _component
 displacement components More...
 
const unsigned int _enrichment_component
 enrichment function components More...
 
unsigned int _nenrich_disp
 Coupled enrichment displacement variables. More...
 
std::vector< unsigned int_enrich_disp_var
 
unsigned int _ndisp
 Coupled displacement variables. More...
 
std::vector< unsigned int_disp_var
 
Assembly_assembly_undisplaced
 undisplaced problem More...
 
MooseVariable_var_undisplaced
 Reference to this Kernel's undisplaced MooseVariable object. More...
 
const VariablePhiGradient_grad_phi_undisplaced
 Shape and test functions on the undisplaced mesh. More...
 
const VariableTestGradient_grad_test_undisplaced
 

Private Attributes

std::vector< Real_B
 enrichment function value More...
 
std::vector< RealVectorValue_dBX
 derivatives of enrichment function respect to global cooridnate More...
 
std::vector< RealVectorValue_dBx
 derivatives of enrichment function respect to crack front cooridnate More...
 
std::vector< Real_BI
 enrichment function at node I More...
 
std::vector< Real_BJ
 enrichment function at node J More...
 

Detailed Description

CrackTipEnrichmentStressDivergenceTensors implements the residual and jacobian for enrichement displacement variables.

Definition at line 25 of file CrackTipEnrichmentStressDivergenceTensors.h.

Constructor & Destructor Documentation

◆ CrackTipEnrichmentStressDivergenceTensors()

CrackTipEnrichmentStressDivergenceTensors::CrackTipEnrichmentStressDivergenceTensors ( const InputParameters parameters)

Definition at line 37 of file CrackTipEnrichmentStressDivergenceTensors.C.

39  : ALEKernel(parameters),
40  EnrichmentFunctionCalculation(&getUserObject<CrackFrontDefinition>("crack_front_definition")),
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")),
48  _B(4),
49  _dBX(4),
50  _dBx(4),
51  _BI(4),
52  _BJ(4)
53 {
55  for (unsigned int i = 0; i < _nenrich_disp; ++i)
56  _enrich_disp_var[i] = coupled("enrichment_displacements", i);
57 
58  _disp_var.resize(_ndisp);
59  for (unsigned int i = 0; i < _ndisp; ++i)
60  _disp_var[i] = coupled("displacements", i);
61 }
std::vector< RealVectorValue > _dBx
derivatives of enrichment function respect to crack front cooridnate
EnrichmentFunctionCalculation(const CrackFrontDefinition *crack_front_definition)
std::vector< Real > _BI
enrichment function at node I
unsigned int _nenrich_disp
Coupled enrichment displacement variables.
ALEKernel(const InputParameters &parameters)
Definition: ALEKernel.C:23
std::vector< Real > _BJ
enrichment function at node J
const unsigned int _enrichment_component
enrichment function components
const MaterialProperty< RankFourTensor > & _Jacobian_mult
std::vector< RealVectorValue > _dBX
derivatives of enrichment function respect to global cooridnate

Member Function Documentation

◆ computeJacobian()

void ALEKernel::computeJacobian ( )
overridevirtualinherited

Definition at line 34 of file ALEKernel.C.

Referenced by StressDivergenceTensors::computeJacobian().

35 {
36  _fe_problem.prepareShapes(_var.number(), _tid);
38 }
virtual void computeJacobian() override

◆ computeOffDiagJacobian()

void ALEKernel::computeOffDiagJacobian ( unsigned int  jvar)
overridevirtualinherited

Definition at line 41 of file ALEKernel.C.

Referenced by StressDivergenceTensors::computeOffDiagJacobian().

42 {
43  _fe_problem.prepareShapes(jvar, _tid);
45 }
virtual void computeOffDiagJacobian(unsigned int jvar) override

◆ computeQpJacobian()

Real CrackTipEnrichmentStressDivergenceTensors::computeQpJacobian ( )
overrideprotectedvirtual

Definition at line 83 of file CrackTipEnrichmentStressDivergenceTensors.C.

84 {
85  crackTipEnrichementFunctionAtPoint(*_current_elem->node_ptr(_i), _BI);
86  crackTipEnrichementFunctionAtPoint(*_current_elem->node_ptr(_j), _BJ);
87 
88  crackTipEnrichementFunctionAtPoint(_q_point[_qp], _B);
89 
90  unsigned int crack_front_point_index =
92 
93  for (unsigned int i = 0; i < 4; ++i)
94  rotateFromCrackFrontCoordsToGlobal(_dBx[i], _dBX[i], crack_front_point_index);
95 
97 
98  RealVectorValue grad_test =
99  _grad_test[_i][_qp] * (_B[_enrichment_component] - _BI[_enrichment_component]) +
100  _test[_i][_qp] * grad_B;
101  RealVectorValue grad_phi =
102  _grad_phi[_j][_qp] * (_B[_enrichment_component] - _BJ[_enrichment_component]) +
103  _phi[_j][_qp] * grad_B;
104 
106  _Jacobian_mult[_qp], _component, _component, grad_test, grad_phi);
107 }
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
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
Real elasticJacobian(const RankFourTensor &r4t, unsigned int i, unsigned int k, const RealGradient &grad_test, const RealGradient &grad_phi)
This is used for the standard kernel stress_ij*d(test)/dx_j, when varied wrt u_k Jacobian entry: d(st...
std::vector< Real > _BJ
enrichment function at node J
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
const MaterialProperty< RankFourTensor > & _Jacobian_mult
std::vector< RealVectorValue > _dBX
derivatives of enrichment function respect to global cooridnate

◆ computeQpOffDiagJacobian()

Real CrackTipEnrichmentStressDivergenceTensors::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtual

Definition at line 110 of file CrackTipEnrichmentStressDivergenceTensors.C.

111 {
112  unsigned int coupled_component = 0;
113  unsigned int coupled_enrichment_component = 0;
114  bool active(false);
115  bool active_enrich(false);
116 
117  for (unsigned int i = 0; i < _enrich_disp_var.size(); ++i)
118  {
119  if (jvar == _enrich_disp_var[i])
120  {
121  coupled_component = i / 4;
122  coupled_enrichment_component = i % 4;
123  active_enrich = true;
124  }
125  }
126 
127  for (unsigned int i = 0; i < _disp_var.size(); ++i)
128  {
129  if (jvar == _disp_var[i])
130  {
131  coupled_component = i;
132  active = true;
133  }
134  }
135 
136  if (active_enrich)
137  {
138  crackTipEnrichementFunctionAtPoint(*_current_elem->node_ptr(_i), _BI);
139  crackTipEnrichementFunctionAtPoint(*_current_elem->node_ptr(_j), _BJ);
140 
141  crackTipEnrichementFunctionAtPoint(_q_point[_qp], _B);
142  unsigned int crack_front_point_index =
144 
145  for (unsigned int i = 0; i < 4; ++i)
146  rotateFromCrackFrontCoordsToGlobal(_dBx[i], _dBX[i], crack_front_point_index);
147 
149  RealVectorValue grad_B_phi(_dBX[coupled_enrichment_component]);
150 
151  RealVectorValue grad_test =
152  _grad_test[_i][_qp] * (_B[_enrichment_component] - _BI[_enrichment_component]) +
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;
157 
159  _Jacobian_mult[_qp], _component, coupled_component, grad_test, grad_phi);
160  }
161  else if (active)
162  {
163  crackTipEnrichementFunctionAtPoint(*_current_elem->node_ptr(_i), _BI);
164 
165  crackTipEnrichementFunctionAtPoint(_q_point[_qp], _B);
166  unsigned int crack_front_point_index =
168 
169  for (unsigned int i = 0; i < 4; ++i)
170  rotateFromCrackFrontCoordsToGlobal(_dBx[i], _dBX[i], crack_front_point_index);
171 
173 
174  RealVectorValue grad_test =
175  _grad_test[_i][_qp] * (_B[_enrichment_component] - _BI[_enrichment_component]) +
176  _test[_i][_qp] * grad_B_test;
177 
179  _Jacobian_mult[_qp], _component, coupled_component, grad_test, _grad_phi[_j][_qp]);
180  }
181 
182  return 0;
183 }
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
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
Real elasticJacobian(const RankFourTensor &r4t, unsigned int i, unsigned int k, const RealGradient &grad_test, const RealGradient &grad_phi)
This is used for the standard kernel stress_ij*d(test)/dx_j, when varied wrt u_k Jacobian entry: d(st...
std::vector< Real > _BJ
enrichment function at node J
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
const MaterialProperty< RankFourTensor > & _Jacobian_mult
std::vector< RealVectorValue > _dBX
derivatives of enrichment function respect to global cooridnate

◆ computeQpResidual()

Real CrackTipEnrichmentStressDivergenceTensors::computeQpResidual ( )
overrideprotectedvirtual

Definition at line 64 of file CrackTipEnrichmentStressDivergenceTensors.C.

65 {
66  crackTipEnrichementFunctionAtPoint(*_current_elem->node_ptr(_i), _BI);
67 
68  crackTipEnrichementFunctionAtPoint(_q_point[_qp], _B);
69  unsigned int crack_front_point_index =
71 
72  for (unsigned int i = 0; i < 4; ++i)
73  rotateFromCrackFrontCoordsToGlobal(_dBx[i], _dBX[i], crack_front_point_index);
74 
76 
77  return _stress[_qp].row(_component) *
78  (_grad_test[_i][_qp] * (_B[_enrichment_component] - _BI[_enrichment_component]) +
79  _test[_i][_qp] * grad_B);
80 }
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
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
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
std::vector< RealVectorValue > _dBX
derivatives of enrichment function respect to global cooridnate

◆ crackTipEnrichementFunctionAtPoint()

unsigned int EnrichmentFunctionCalculation::crackTipEnrichementFunctionAtPoint ( const Point &  point,
std::vector< Real > &  B 
)
virtualinherited

calculate the enrichment function values at point

Returns
the closest crack front index

Definition at line 19 of file EnrichmentFunctionCalculation.C.

Referenced by ComputeCrackTipEnrichmentSmallStrain::computeProperties(), computeQpJacobian(), computeQpOffDiagJacobian(), ComputeCrackTipEnrichmentSmallStrain::computeQpProperties(), and computeQpResidual().

21 {
22  unsigned int crack_front_point_index =
24 
26  mooseError("EnrichmentFunctionCalculation: the distance between a point and the crack "
27  "tip/front is zero.");
28 
29  Real st = std::sin(_theta);
30  Real st2 = std::sin(_theta / 2.0);
31  Real ct2 = std::cos(_theta / 2.0);
32  Real sr = std::sqrt(_r);
33 
34  B[0] = sr * st2;
35  B[1] = sr * ct2;
36  B[2] = sr * st2 * st;
37  B[3] = sr * ct2 * st;
38 
39  return crack_front_point_index;
40 }
const CrackFrontDefinition & _crack_front_definition
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
void mooseError(Args &&... args)
void calculateRThetaToCrackFront(const Point qp, const std::size_t point_index, Real &r, Real &theta) const
Calculate r and theta of a point in the crack front polar coordinates for a given crack point index...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ crackTipEnrichementFunctionDerivativeAtPoint()

unsigned int EnrichmentFunctionCalculation::crackTipEnrichementFunctionDerivativeAtPoint ( const Point &  point,
std::vector< RealVectorValue > &  dB 
)
virtualinherited

calculate the enrichment function derivatives at point

Returns
the closest crack front index

Definition at line 43 of file EnrichmentFunctionCalculation.C.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), ComputeCrackTipEnrichmentSmallStrain::computeQpProperties(), and computeQpResidual().

45 {
46  unsigned int crack_front_point_index =
48 
50  mooseError("EnrichmentFunctionCalculation: the distance between a point and the crack "
51  "tip/front is zero.");
52 
53  Real st = std::sin(_theta);
54  Real ct = std::cos(_theta);
55  Real st2 = std::sin(_theta / 2.0);
56  Real ct2 = std::cos(_theta / 2.0);
57  Real st15 = std::sin(1.5 * _theta);
58  Real ct15 = std::cos(1.5 * _theta);
59  Real sr = std::sqrt(_r);
60 
61  dB[0](0) = -0.5 / sr * st2;
62  dB[0](1) = 0.5 / sr * ct2;
63  dB[0](2) = 0.0;
64  dB[1](0) = 0.5 / sr * ct2;
65  dB[1](1) = 0.5 / sr * st2;
66  dB[1](2) = 0.0;
67  dB[2](0) = -0.5 / sr * st15 * st;
68  dB[2](1) = 0.5 / sr * (st2 + st15 * ct);
69  dB[2](2) = 0.0;
70  dB[3](0) = -0.5 / sr * ct15 * st;
71  dB[3](1) = 0.5 / sr * (ct2 + ct15 * ct);
72  dB[3](2) = 0.0;
73 
74  return crack_front_point_index;
75 }
const CrackFrontDefinition & _crack_front_definition
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
void mooseError(Args &&... args)
void calculateRThetaToCrackFront(const Point qp, const std::size_t point_index, Real &r, Real &theta) const
Calculate r and theta of a point in the crack front polar coordinates for a given crack point index...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ rotateFromCrackFrontCoordsToGlobal()

void EnrichmentFunctionCalculation::rotateFromCrackFrontCoordsToGlobal ( const RealVectorValue vector,
RealVectorValue rotated_vector,
const unsigned int  point_index 
)
inherited

rotate a vector from crack front coordinate to global cooridate

Parameters
rotated_vectorrotated vector

Definition at line 78 of file EnrichmentFunctionCalculation.C.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), ComputeCrackTipEnrichmentSmallStrain::computeQpProperties(), and computeQpResidual().

81 {
82  rotated_vector = _crack_front_definition.rotateFromCrackFrontCoordsToGlobal(vector, point_index);
83 }
const CrackFrontDefinition & _crack_front_definition
RealVectorValue rotateFromCrackFrontCoordsToGlobal(const RealVectorValue vector, const std::size_t point_index) const
Rotate a vector from crack front cartesian coordinate to global cartesian coordinate.

◆ validParams()

InputParameters CrackTipEnrichmentStressDivergenceTensors::validParams ( )
static

Definition at line 16 of file CrackTipEnrichmentStressDivergenceTensors.C.

17 {
19  params.addClassDescription("Enrich stress divergence kernel for small-strain simulations");
20  params.addRequiredParam<unsigned int>("component",
21  "An integer corresponding to the direction the variable "
22  "this kernel acts in. (0 for x, 1 for y, 2 for z)");
23  params.addRequiredParam<unsigned int>("enrichment_component",
24  "The component of the enrichement functions");
25  params.addRequiredCoupledVar("displacements",
26  "The string of displacements suitable for the problem statement");
27  params.addRequiredCoupledVar(
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");
31  params.addRequiredParam<UserObjectName>("crack_front_definition",
32  "The CrackFrontDefinition user object name");
33  params.set<bool>("use_displaced_mesh") = false;
34  return params;
35 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()
Definition: ALEKernel.C:16

Member Data Documentation

◆ _assembly_undisplaced

Assembly& ALEKernel::_assembly_undisplaced
protectedinherited

undisplaced problem

Definition at line 28 of file ALEKernel.h.

◆ _B

std::vector<Real> CrackTipEnrichmentStressDivergenceTensors::_B
private

enrichment function value

Definition at line 62 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _base_name

const std::string CrackTipEnrichmentStressDivergenceTensors::_base_name
protected

Definition at line 38 of file CrackTipEnrichmentStressDivergenceTensors.h.

◆ _BI

std::vector<Real> CrackTipEnrichmentStressDivergenceTensors::_BI
private

enrichment function at node I

Definition at line 68 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _BJ

std::vector<Real> CrackTipEnrichmentStressDivergenceTensors::_BJ
private

enrichment function at node J

Definition at line 70 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

◆ _component

const unsigned int CrackTipEnrichmentStressDivergenceTensors::_component
protected

displacement components

Definition at line 48 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _dBX

std::vector<RealVectorValue> CrackTipEnrichmentStressDivergenceTensors::_dBX
private

derivatives of enrichment function respect to global cooridnate

Definition at line 64 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _dBx

std::vector<RealVectorValue> CrackTipEnrichmentStressDivergenceTensors::_dBx
private

derivatives of enrichment function respect to crack front cooridnate

Definition at line 66 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _deformation_gradient

const MaterialProperty<RankTwoTensor>* CrackTipEnrichmentStressDivergenceTensors::_deformation_gradient
protected

Definition at line 43 of file CrackTipEnrichmentStressDivergenceTensors.h.

◆ _deformation_gradient_old

const MaterialProperty<RankTwoTensor>* CrackTipEnrichmentStressDivergenceTensors::_deformation_gradient_old
protected

Definition at line 44 of file CrackTipEnrichmentStressDivergenceTensors.h.

◆ _disp_var

std::vector<unsigned int> CrackTipEnrichmentStressDivergenceTensors::_disp_var
protected

◆ _enrich_disp_var

std::vector<unsigned int> CrackTipEnrichmentStressDivergenceTensors::_enrich_disp_var
protected

◆ _enrichment_component

const unsigned int CrackTipEnrichmentStressDivergenceTensors::_enrichment_component
protected

enrichment function components

Definition at line 50 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _grad_phi_undisplaced

const VariablePhiGradient& ALEKernel::_grad_phi_undisplaced
protectedinherited

Shape and test functions on the undisplaced mesh.

Definition at line 34 of file ALEKernel.h.

◆ _grad_test_undisplaced

const VariableTestGradient& ALEKernel::_grad_test_undisplaced
protectedinherited

Definition at line 35 of file ALEKernel.h.

◆ _Jacobian_mult

const MaterialProperty<RankFourTensor>& CrackTipEnrichmentStressDivergenceTensors::_Jacobian_mult
protected

◆ _ndisp

unsigned int CrackTipEnrichmentStressDivergenceTensors::_ndisp
protected

Coupled displacement variables.

Definition at line 57 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by CrackTipEnrichmentStressDivergenceTensors().

◆ _nenrich_disp

unsigned int CrackTipEnrichmentStressDivergenceTensors::_nenrich_disp
protected

Coupled enrichment displacement variables.

Definition at line 53 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by CrackTipEnrichmentStressDivergenceTensors().

◆ _rotation_increment

const MaterialProperty<RankTwoTensor>* CrackTipEnrichmentStressDivergenceTensors::_rotation_increment
protected

Definition at line 45 of file CrackTipEnrichmentStressDivergenceTensors.h.

◆ _stress

const MaterialProperty<RankTwoTensor>& CrackTipEnrichmentStressDivergenceTensors::_stress
protected

Definition at line 40 of file CrackTipEnrichmentStressDivergenceTensors.h.

Referenced by computeQpResidual().

◆ _var_undisplaced

MooseVariable& ALEKernel::_var_undisplaced
protectedinherited

Reference to this Kernel's undisplaced MooseVariable object.

Definition at line 31 of file ALEKernel.h.


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