32 virtual void execute()
override;
60 const RealVectorValue & grad_of_scalar_q);
103 std::vector<const VariableValue *>
_disp;
const std::vector< double > y
InteractionIntegralTempl< true > ADInteractionIntegral
InteractionIntegralTempl< false > InteractionIntegral
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
std::vector< Real > VectorPostprocessorValue
Class used in fracture integrals to define geometric characteristics of the crack front.
This vectorpostprocessor computes the Interaction Integral, which is used to compute various fracture...
VectorPostprocessorValue & _interaction_integral
Real _kappa
Kappa Lame constant.
const CrackFrontDefinition *const _crack_front_definition
Pointer to the crack front definition object.
const std::vector< std::vector< libMesh::RealGradient > > * _dphi_curr_elem
Vector of gradients of shape function values for the current element.
const VariableGradient * _additional_eigenstrain_gradient_12
Gradient used to add contribution to the interaction integral (YZ)
virtual void initialize() override
const VariableGradient * _additional_eigenstrain_gradient_22
Gradient used to add contribution to the interaction integral (ZZ)
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress
Reference to the stress tensor computed by the material models.
bool _has_symmetry_plane
Whether the crack plane is also a symmetry plane in the model.
const GenericMaterialProperty< RankTwoTensor, is_ad > & _strain
Reference to the strain tensor computed by the material models.
VectorPostprocessorValue & _y
const GenericMaterialProperty< RankTwoTensor, is_ad > *const _total_deigenstrain_dT
Derivative of the total eigenstrain with respect to temperature.
const MaterialProperty< Real > * _functionally_graded_youngs_modulus_crack_dir_gradient
Spatial derivative of the youngs modulus in the crack direction.
enum InteractionIntegralTempl::PositionType _position_type
enum InteractionIntegralTempl::SifMethod _sif_mode
virtual void threadJoin(const UserObject &y) override
const MaterialProperty< Real > * _functionally_graded_youngs_modulus
Spatial elasticity modulus variable for FGM.
Real _poissons_ratio
Poisson's ratio of the material.
const VariableGradient * _additional_eigenstrain_gradient_01
Gradient used to add contribution to the interaction integral (XY)
Real _theta
Angle of current point relative to the crack front.
virtual void finalize() override
std::vector< Real > _q_curr_elem
Vector of q function values for the nodes in the current element.
const bool _fgm_crack
Whether to consider interaction integral and material properties for a crack in functionally graded m...
const VariableGradient & _grad_temp
Gradient of temperature.
std::vector< MooseVariableFEBase * > _fe_vars
Vector of all coupled variables.
enum InteractionIntegralTempl::QMethod _q_function_type
QMethod
Enum used to select the method used to compute the q function used in the fracture integrals.
Real _youngs_modulus
Young's modulus of the material.
bool _has_additional_eigenstrain
Whether the user chooses to add other eigenstrain influence (e.g. irradiation-induced)
std::size_t _ndisp
Number of displacement components.
static MooseEnum qFunctionType()
Get the MooseEnum defining the options for how the q function is defined.
static MooseEnum sifModeType()
Get the MooseEnum defining the options for the integral to be computed.
bool _treat_as_2d
Whether to treat a model as 2D for computation of fracture integrals.
bool _using_mesh_cutter
Is the crack defined by an XFEM cutter mesh.
virtual void execute() override
PositionType
Enum used to define how the distance along the crack front is measured (angle or distance)
Real _shear_modulus
Shear modulus.
const libMesh::FEType & _fe_type
FEType object defining order and family of displacement variables.
std::vector< const VariableValue * > _disp
Displacement variables.
Real _K_factor
Conversion factor applied to convert interaction integral to stress intensity factor K.
Real _r
Radial distance from the current point to the crack front.
void computeTFields(RankTwoTensor &aux_stress, RankTwoTensor &grad_disp)
Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displa...
const std::vector< std::vector< Real > > * _phi_curr_elem
Vector of shape function values for the current element.
SifMethod
Enum used to select the type of integral to be performed.
void computeAuxFields(RankTwoTensor &aux_stress, RankTwoTensor &grad_disp, RankTwoTensor &aux_strain, RankTwoTensor &aux_disp)
Compute the auxiliary fields, including the auxiliary stress and the gradient of the auxiliary displa...
const VariableGradient * _additional_eigenstrain_gradient_11
Gradient used to add contribution to the interaction integral (YY)
std::size_t _ring_index
Index of the ring for the integral computed by this object.
VectorPostprocessorValue & _z
static InputParameters validParams()
const MaterialProperty< RealVectorValue > * _body_force
std::vector< const VariableGradient * > _grad_disp
Gradient of displacements.
VectorPostprocessorValue & _position
virtual void initialSetup() override
const GenericMaterialProperty< RankThreeTensor, is_ad > * _eigenstrain_gradient
Pointers to optionally-used eigenstrain gradient and body force.
unsigned int _qp
Current quadrature point index.
const bool _has_temp
Whether the temperature variable is coupled.
const VariableGradient * _additional_eigenstrain_gradient_02
Gradient used to add contribution to the interaction integral (XZ)
Real computeQpIntegral(const std::size_t crack_front_point_index, const Real scalar_q, const RealVectorValue &grad_of_scalar_q)
Compute the contribution of a specific quadrature point to a fracture integral for a point on the cra...
VectorPostprocessorValue & _x
Vectors computed by this VectorPostprocessor: x,y,z coordinates, position of nodes along crack front,...
const VariableGradient * _additional_eigenstrain_gradient_00
Gradient used to add contribution to the interaction integral (XX)
const InputParameters & parameters() const
VariableGradientTempl< false > VariableGradient