www.mooseframework.org
InteractionIntegral.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 
12 #include "ElementIntegralPostprocessor.h"
13 #include "CrackFrontDefinition.h"
14 
15 // Forward Declarations
17 template <typename>
20 
21 template <>
22 InputParameters validParams<InteractionIntegral>();
23 
28 class InteractionIntegral : public ElementIntegralPostprocessor
29 {
30 public:
31  static InputParameters validParams();
32 
33  InteractionIntegral(const InputParameters & parameters);
34 
35  virtual Real getValue();
36 
37  static MooseEnum qFunctionType();
38  static MooseEnum sifModeType();
39 
40 protected:
41  virtual void initialSetup();
42  virtual Real computeQpIntegral();
43  virtual Real computeIntegral();
44  void computeAuxFields(RankTwoTensor & aux_stress, RankTwoTensor & grad_disp);
45  void computeTFields(RankTwoTensor & aux_stress, RankTwoTensor & grad_disp);
46  unsigned int _ndisp;
49  const unsigned int _crack_front_point_index;
51  const MaterialProperty<RankTwoTensor> * _stress;
52  const MaterialProperty<RankTwoTensor> * _strain;
53  std::vector<const VariableGradient *> _grad_disp;
54  const bool _has_temp;
55  const VariableGradient & _grad_temp;
56  Real _K_factor;
60  unsigned int _ring_index;
61  const MaterialProperty<RankTwoTensor> * _total_deigenstrain_dT;
62  std::vector<Real> _q_curr_elem;
63  const std::vector<std::vector<Real>> * _phi_curr_elem;
64  const std::vector<std::vector<RealGradient>> * _dphi_curr_elem;
65  Real _kappa;
67  Real _r;
68  Real _theta;
69 
70 private:
71  enum class QMethod
72  {
73  Geometry,
74  Topology
75  };
76 
78 
79  enum class SifMethod
80  {
81  KI,
82  KII,
83  KIII,
84  T
85  };
86 
88 };
InteractionIntegral::sifModeType
static MooseEnum sifModeType()
Definition: InteractionIntegral.C:27
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: InteractionIntegral.h:18
validParams< InteractionIntegral >
InputParameters validParams< InteractionIntegral >()
InteractionIntegral::_crack_front_point_index
const unsigned int _crack_front_point_index
Definition: InteractionIntegral.h:49
InteractionIntegral::_ndisp
unsigned int _ndisp
Definition: InteractionIntegral.h:46
InteractionIntegral::_has_temp
const bool _has_temp
Definition: InteractionIntegral.h:54
InteractionIntegral::SifMethod::KIII
InteractionIntegral::SifMethod::KI
InteractionIntegral::_total_deigenstrain_dT
const MaterialProperty< RankTwoTensor > * _total_deigenstrain_dT
Definition: InteractionIntegral.h:61
InteractionIntegral::validParams
static InputParameters validParams()
Definition: InteractionIntegral.C:37
CrackFrontDefinition
Works on top of NodalNormalsPreprocessor.
Definition: CrackFrontDefinition.h:36
InteractionIntegral::qFunctionType
static MooseEnum qFunctionType()
Definition: InteractionIntegral.C:21
InteractionIntegral::_has_crack_front_point_index
bool _has_crack_front_point_index
Definition: InteractionIntegral.h:48
CrackFrontDefinition.h
InteractionIntegral::_strain
const MaterialProperty< RankTwoTensor > * _strain
Definition: InteractionIntegral.h:52
InteractionIntegral::_poissons_ratio
Real _poissons_ratio
Definition: InteractionIntegral.h:58
InteractionIntegral::SifMethod::KII
InteractionIntegral::_treat_as_2d
bool _treat_as_2d
Definition: InteractionIntegral.h:50
InteractionIntegral::QMethod
QMethod
Definition: InteractionIntegral.h:71
InteractionIntegral::_q_function_type
const QMethod _q_function_type
Definition: InteractionIntegral.h:77
InteractionIntegral::getValue
virtual Real getValue()
Definition: InteractionIntegral.C:148
InteractionIntegral::computeQpIntegral
virtual Real computeQpIntegral()
Definition: InteractionIntegral.C:160
InteractionIntegral
This postprocessor computes the Interaction Integral.
Definition: InteractionIntegral.h:28
InteractionIntegral::SifMethod
SifMethod
Definition: InteractionIntegral.h:79
InteractionIntegral::_K_factor
Real _K_factor
Definition: InteractionIntegral.h:56
InteractionIntegral::computeAuxFields
void computeAuxFields(RankTwoTensor &aux_stress, RankTwoTensor &grad_disp)
Definition: InteractionIntegral.C:291
InteractionIntegral::_phi_curr_elem
const std::vector< std::vector< Real > > * _phi_curr_elem
Definition: InteractionIntegral.h:63
InteractionIntegral::QMethod::Geometry
InteractionIntegral::computeIntegral
virtual Real computeIntegral()
Definition: InteractionIntegral.C:252
InteractionIntegral::_has_symmetry_plane
bool _has_symmetry_plane
Definition: InteractionIntegral.h:57
InteractionIntegral::_grad_disp
std::vector< const VariableGradient * > _grad_disp
Definition: InteractionIntegral.h:53
InteractionIntegral::initialSetup
virtual void initialSetup()
Definition: InteractionIntegral.C:142
InteractionIntegral::_youngs_modulus
Real _youngs_modulus
Definition: InteractionIntegral.h:59
InteractionIntegral::_r
Real _r
Definition: InteractionIntegral.h:67
InteractionIntegral::_shear_modulus
Real _shear_modulus
Definition: InteractionIntegral.h:66
InteractionIntegral::InteractionIntegral
InteractionIntegral(const InputParameters &parameters)
Definition: InteractionIntegral.C:76
InteractionIntegral::computeTFields
void computeTFields(RankTwoTensor &aux_stress, RankTwoTensor &grad_disp)
Definition: InteractionIntegral.C:353
InteractionIntegral::_crack_front_definition
const CrackFrontDefinition *const _crack_front_definition
Definition: InteractionIntegral.h:47
InteractionIntegral::_grad_temp
const VariableGradient & _grad_temp
Definition: InteractionIntegral.h:55
InteractionIntegral::QMethod::Topology
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
InteractionIntegral::_stress
const MaterialProperty< RankTwoTensor > * _stress
Definition: InteractionIntegral.h:51
InteractionIntegral::_ring_index
unsigned int _ring_index
Definition: InteractionIntegral.h:60
InteractionIntegral::_q_curr_elem
std::vector< Real > _q_curr_elem
Definition: InteractionIntegral.h:62
InteractionIntegral::_dphi_curr_elem
const std::vector< std::vector< RealGradient > > * _dphi_curr_elem
Definition: InteractionIntegral.h:64
InteractionIntegral::SifMethod::T
InteractionIntegral::_kappa
Real _kappa
Definition: InteractionIntegral.h:65
InteractionIntegral::_theta
Real _theta
Definition: InteractionIntegral.h:68
InteractionIntegral::_sif_mode
const SifMethod _sif_mode
Definition: InteractionIntegral.h:87