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 27 of file InteractionIntegralBenchmarkBC.h.

Constructor & Destructor Documentation

InteractionIntegralBenchmarkBC::InteractionIntegralBenchmarkBC ( const InputParameters &  parameters)

Definition at line 34 of file InteractionIntegralBenchmarkBC.C.

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

Member Function Documentation

Real InteractionIntegralBenchmarkBC::computeQpValue ( )
protectedvirtual

Evaluate the function at the current quadrature point and timestep.

Definition at line 50 of file InteractionIntegralBenchmarkBC.C.

51 {
52  const Real ki_val = _ki_function.value(_t, *_current_node);
53  const Real kii_val = _kii_function.value(_t, *_current_node);
54  const Real kiii_val = _kiii_function.value(_t, *_current_node);
55 
56  const Point p(*_current_node);
58 
59  if (_r == 0)
60  _theta = 0;
61 
62  const Real st2 = std::sin(_theta / 2.0);
63  const Real ct2 = std::cos(_theta / 2.0);
64 
65  Real disp(0.0);
66 
67  if (_component == 0)
68  disp = 1 / (2 * _mu) * std::sqrt(_r / (2 * libMesh::pi)) *
69  (ki_val * ct2 * (_kappa - 1 + 2 * st2 * st2) +
70  kii_val * st2 * (_kappa + 1 + 2 * ct2 * ct2));
71  else if (_component == 1)
72  disp = 1 / (2 * _mu) * std::sqrt(_r / (2 * libMesh::pi)) *
73  (ki_val * st2 * (_kappa + 1 - 2 * ct2 * ct2) -
74  kii_val * ct2 * (_kappa - 1 - 2 * st2 * st2));
75  else if (_component == 2)
76  disp = 1 / _mu * std::sqrt(2 * _r / libMesh::pi) * kiii_val * st2;
77 
78  return disp;
79 }
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

const int InteractionIntegralBenchmarkBC::_component
protected

Definition at line 38 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

const CrackFrontDefinition* InteractionIntegralBenchmarkBC::_crack_front_definition
protected

Definition at line 39 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

const unsigned int InteractionIntegralBenchmarkBC::_crack_front_point_index
protected

Definition at line 40 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

Real InteractionIntegralBenchmarkBC::_kappa
protected
Function& InteractionIntegralBenchmarkBC::_ki_function
protected

Definition at line 48 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

Function& InteractionIntegralBenchmarkBC::_kii_function
protected

Definition at line 49 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

Function& InteractionIntegralBenchmarkBC::_kiii_function
protected

Definition at line 50 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

Real InteractionIntegralBenchmarkBC::_mu
protected
const Real InteractionIntegralBenchmarkBC::_poissons_ratio
protected

Definition at line 44 of file InteractionIntegralBenchmarkBC.h.

Referenced by InteractionIntegralBenchmarkBC().

Real InteractionIntegralBenchmarkBC::_r
protected

Definition at line 42 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

Real InteractionIntegralBenchmarkBC::_theta
protected

Definition at line 43 of file InteractionIntegralBenchmarkBC.h.

Referenced by computeQpValue().

const Real InteractionIntegralBenchmarkBC::_youngs_modulus
protected

Definition at line 45 of file InteractionIntegralBenchmarkBC.h.

Referenced by InteractionIntegralBenchmarkBC().


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