www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
InteractionIntegralBenchmarkBC Class Reference

Implements a boundary condition that enforces a displacement field around a crack tip based on applied stress intensity factors KI, KII, and KIII. More...

#include <InteractionIntegralBenchmarkBC.h>

Inheritance diagram for InteractionIntegralBenchmarkBC:
[legend]

Public Member Functions

 InteractionIntegralBenchmarkBC (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeQpValue ()
 Evaluate the function at the current quadrature point and timestep. More...
 

Protected Attributes

const int _component
 
const CrackFrontDefinition_crack_front_definition
 
const unsigned int _crack_front_point_index
 
Real _r
 
Real _theta
 
const Real _poissons_ratio
 
const Real _youngs_modulus
 
Real _kappa
 
Real _mu
 
Function & _ki_function
 
Function & _kii_function
 
Function & _kiii_function
 

Detailed Description

Implements a boundary condition that enforces a displacement field around a crack tip based on applied stress intensity factors KI, KII, and KIII.

This is used to test the interaction integral capability.

Definition at line 29 of file InteractionIntegralBenchmarkBC.h.

Constructor & Destructor Documentation

◆ InteractionIntegralBenchmarkBC()

InteractionIntegralBenchmarkBC::InteractionIntegralBenchmarkBC ( const InputParameters &  parameters)

Definition at line 38 of file InteractionIntegralBenchmarkBC.C.

39  : PresetNodalBC(parameters),
40  _component(getParam<MooseEnum>("component")),
41  _crack_front_definition(&getUserObject<CrackFrontDefinition>("crack_front_definition")),
42  _crack_front_point_index(getParam<unsigned int>("crack_front_point_index")),
43  _poissons_ratio(getParam<Real>("poissons_ratio")),
44  _youngs_modulus(getParam<Real>("youngs_modulus")),
45  _ki_function(getFunction("KI_function")),
46  _kii_function(getFunction("KII_function")),
47  _kiii_function(getFunction("KIII_function"))
48 {
49  _kappa = 3 - 4 * _poissons_ratio;
50  _mu = _youngs_modulus / (2 * (1 + _poissons_ratio));
51 }
const CrackFrontDefinition * _crack_front_definition

Member Function Documentation

◆ computeQpValue()

Real InteractionIntegralBenchmarkBC::computeQpValue ( )
protectedvirtual

Evaluate the function at the current quadrature point and timestep.

Definition at line 54 of file InteractionIntegralBenchmarkBC.C.

55 {
56  const Real ki_val = _ki_function.value(_t, *_current_node);
57  const Real kii_val = _kii_function.value(_t, *_current_node);
58  const Real kiii_val = _kiii_function.value(_t, *_current_node);
59 
60  const Point p(*_current_node);
62 
63  if (_r == 0)
64  _theta = 0;
65 
66  const Real st2 = std::sin(_theta / 2.0);
67  const Real ct2 = std::cos(_theta / 2.0);
68 
69  Real disp(0.0);
70 
71  if (_component == 0)
72  disp = 1 / (2 * _mu) * std::sqrt(_r / (2 * libMesh::pi)) *
73  (ki_val * ct2 * (_kappa - 1 + 2 * st2 * st2) +
74  kii_val * st2 * (_kappa + 1 + 2 * ct2 * ct2));
75  else if (_component == 1)
76  disp = 1 / (2 * _mu) * std::sqrt(_r / (2 * libMesh::pi)) *
77  (ki_val * st2 * (_kappa + 1 - 2 * ct2 * ct2) -
78  kii_val * ct2 * (_kappa - 1 - 2 * st2 * st2));
79  else if (_component == 2)
80  disp = 1 / _mu * std::sqrt(2 * _r / libMesh::pi) * kiii_val * st2;
81 
82  return disp;
83 }
const CrackFrontDefinition * _crack_front_definition
void calculateRThetaToCrackFront(const Point qp, const unsigned int point_index, Real &r, Real &theta) const
calculate r and theta in the crack front polar cooridnate

Member Data Documentation

◆ _component

const int InteractionIntegralBenchmarkBC::_component
protected

Definition at line 40 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _crack_front_definition

const CrackFrontDefinition* InteractionIntegralBenchmarkBC::_crack_front_definition
protected

Definition at line 41 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _crack_front_point_index

const unsigned int InteractionIntegralBenchmarkBC::_crack_front_point_index
protected

Definition at line 42 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _kappa

Real InteractionIntegralBenchmarkBC::_kappa
protected

◆ _ki_function

Function& InteractionIntegralBenchmarkBC::_ki_function
protected

Definition at line 50 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _kii_function

Function& InteractionIntegralBenchmarkBC::_kii_function
protected

Definition at line 51 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _kiii_function

Function& InteractionIntegralBenchmarkBC::_kiii_function
protected

Definition at line 52 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _mu

Real InteractionIntegralBenchmarkBC::_mu
protected

◆ _poissons_ratio

const Real InteractionIntegralBenchmarkBC::_poissons_ratio
protected

Definition at line 46 of file InteractionIntegralBenchmarkBC.h.

Referenced by InteractionIntegralBenchmarkBC().

◆ _r

Real InteractionIntegralBenchmarkBC::_r
protected

Definition at line 44 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _theta

Real InteractionIntegralBenchmarkBC::_theta
protected

Definition at line 45 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

◆ _youngs_modulus

const Real InteractionIntegralBenchmarkBC::_youngs_modulus
protected

Definition at line 47 of file InteractionIntegralBenchmarkBC.h.

Referenced by InteractionIntegralBenchmarkBC().


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