www.mooseframework.org
JIntegral.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
14 // Forward Declarations
22 {
23 public:
25 
27 
28  virtual void initialSetup() override;
29  virtual void initialize() override;
30  virtual void execute() override;
31  virtual void finalize() override;
32  virtual void threadJoin(const UserObject & y) override;
33 
34 protected:
44  Real computeQpIntegral(const std::size_t crack_front_point_index,
45  const Real scalar_q,
46  const RealVectorValue & grad_of_scalar_q);
50 
52 
55 
58 
64  std::vector<MooseVariableFEBase *> _fe_vars;
66  const FEType & _fe_type;
74  std::size_t _ring_index;
77  const enum class QMethod { Geometry, Topology } _q_function_type;
78 
81  const enum class PositionType { Angle, Distance } _position_type;
82 
84  std::vector<Real> _q_curr_elem;
86  const std::vector<std::vector<Real>> * _phi_curr_elem;
88  const std::vector<std::vector<RealGradient>> * _dphi_curr_elem;
90  unsigned int _qp;
101 };
IntegralType
Enum defining the type of integral to be computed.
Definition: JIntegral.h:49
enum JIntegral::PositionType _position_type
const MaterialProperty< RankTwoTensor > * _Eshelby_tensor
Eshelby tensor for J integral and K stress intensity factor.
Definition: JIntegral.h:54
VectorPostprocessorValue & _j_integral
Definition: JIntegral.h:99
Real _poissons_ratio
Poisson&#39;s ratio of the material.
Definition: JIntegral.h:70
static InputParameters validParams()
Definition: JIntegral.C:20
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 the J integral for a point on the crack fr...
Definition: JIntegral.C:124
std::vector< MooseVariableFEBase * > _fe_vars
Vector of all coupled variables.
Definition: JIntegral.h:64
virtual void threadJoin(const UserObject &y) override
Definition: JIntegral.C:250
JIntegral(const InputParameters &parameters)
Definition: JIntegral.C:58
Real _youngs_modulus
Young&#39;s modulus of the material.
Definition: JIntegral.h:72
This vectorpostprocessor computes the J-Integral, which is a measure of the strain energy release rat...
Definition: JIntegral.h:21
VectorPostprocessorValue & _position
Definition: JIntegral.h:98
const std::vector< double > y
VectorPostprocessorValue & _y
Definition: JIntegral.h:96
const MaterialProperty< RealVectorValue > *const _J_thermal_term_vec
Definition: JIntegral.h:51
Class used in fracture integrals to define geometric characteristics of the crack front...
const std::vector< std::vector< Real > > * _phi_curr_elem
Vector of shape function values for the current element.
Definition: JIntegral.h:86
const std::vector< std::vector< RealGradient > > * _dphi_curr_elem
Vector of gradients of shape function values for the current element.
Definition: JIntegral.h:88
QMethod
Enum used to select the method used to compute the q function used in the fracture integrals...
Definition: JIntegral.h:77
const CrackFrontDefinition *const _crack_front_definition
Definition: JIntegral.h:47
const FEType & _fe_type
FEType object defining order and family of displacement variables.
Definition: JIntegral.h:66
std::size_t _ring_index
Index of the ring for the integral computed by this object.
Definition: JIntegral.h:74
virtual void execute() override
Definition: JIntegral.C:171
enum JIntegral::IntegralType _integral
std::vector< Real > _q_curr_elem
Vector of q function values for the nodes in the current element.
Definition: JIntegral.h:84
PositionType
Enum used to define how the distance along the crack front is measured (angle or distance) ...
Definition: JIntegral.h:81
std::vector< Real > VectorPostprocessorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void initialize() override
Definition: JIntegral.C:102
unsigned int _qp
Current quadrature point index.
Definition: JIntegral.h:90
bool _has_symmetry_plane
Whether the crack plane is also a symmetry plane in the model.
Definition: JIntegral.h:68
const InputParameters & parameters() const
VectorPostprocessorValue & _x
Vectors computed by this VectorPostprocessor: x,y,z coordinates, position of nodes along crack front...
Definition: JIntegral.h:95
virtual void finalize() override
Definition: JIntegral.C:222
bool _treat_as_2d
Whether to treat a 3D model as 2D for computation of fracture integrals.
Definition: JIntegral.h:60
bool _using_mesh_cutter
Whether the crack is defined by an XFEM cutter mesh.
Definition: JIntegral.h:62
virtual void initialSetup() override
Definition: JIntegral.C:92
enum JIntegral::QMethod _q_function_type
const MaterialProperty< RankTwoTensor > * _Eshelby_tensor_dissipation
Eshelby tensor rate for computing the C(t) integral.
Definition: JIntegral.h:57
VectorPostprocessorValue & _z
Definition: JIntegral.h:97