www.mooseframework.org
Public Types | Public Member Functions | Public Attributes | List of all members
PenetrationInfo Class Reference

Data structure used to hold penetration information. More...

#include <PenetrationInfo.h>

Public Types

enum  MECH_STATUS_ENUM {
  MS_NO_CONTACT = 0, MS_STICKING, MS_SLIPPING, MS_SLIPPING_FRICTION,
  MS_CONTACT
}
 

Public Member Functions

 PenetrationInfo (const Node *node, const Elem *elem, const Elem *side, unsigned int side_num, RealVectorValue norm, Real norm_distance, Real tangential_distance, const Point &closest_point, const Point &closest_point_ref, const Point &closest_point_on_face_ref, std::vector< const Node *> off_edge_nodes, const std::vector< std::vector< Real >> &side_phi, const std::vector< std::vector< RealGradient >> &side_grad_phi, const std::vector< RealGradient > &dxyzdxi, const std::vector< RealGradient > &dxyzdeta, const std::vector< RealGradient > &d2xyzdxideta)
 
 PenetrationInfo ()
 
 ~PenetrationInfo ()
 
bool isCaptured () const
 
void capture ()
 
void release ()
 

Public Attributes

const Node * _node
 
const Elem * _elem
 
const Elem * _side
 
unsigned int _side_num
 
RealVectorValue _normal
 
Real _distance
 
Real _tangential_distance
 
Point _closest_point
 
Point _closest_point_ref
 
Point _closest_point_on_face_ref
 
std::vector< const Node * > _off_edge_nodes
 
std::vector< std::vector< Real > > _side_phi
 
std::vector< std::vector< RealGradient > > _side_grad_phi
 
std::vector< RealGradient > _dxyzdxi
 
std::vector< RealGradient > _dxyzdeta
 
std::vector< RealGradient > _d2xyzdxideta
 
const Elem * _starting_elem
 
unsigned int _starting_side_num
 
Point _starting_closest_point_ref
 
Point _incremental_slip
 
Real _accumulated_slip
 
Real _accumulated_slip_old
 
Real _frictional_energy
 
Real _frictional_energy_old
 
RealVectorValue _contact_force
 
RealVectorValue _contact_force_old
 
Real _lagrange_multiplier
 
RealVectorValue _lagrange_multiplier_slip
 
unsigned int _locked_this_step
 
unsigned int _stick_locked_this_step
 
MECH_STATUS_ENUM _mech_status
 
MECH_STATUS_ENUM _mech_status_old
 
Point _incremental_slip_prev_iter
 
bool _slip_reversed
 
Real _slip_tol
 

Detailed Description

Data structure used to hold penetration information.

Definition at line 30 of file PenetrationInfo.h.

Member Enumeration Documentation

◆ MECH_STATUS_ENUM

Enumerator
MS_NO_CONTACT 
MS_STICKING 
MS_SLIPPING 
MS_SLIPPING_FRICTION 
MS_CONTACT 

Definition at line 57 of file PenetrationInfo.h.

58  {
59  MS_NO_CONTACT = 0, // out of contact
60  MS_STICKING, // sticking (glued or frictional)
61  MS_SLIPPING, // slipping with zero frictional resistance
62  MS_SLIPPING_FRICTION, // slipping with nonzero frictional resistance
63  MS_CONTACT // In contact, but unknown yet whether slipping or sticking.
64  };

Constructor & Destructor Documentation

◆ PenetrationInfo() [1/2]

PenetrationInfo::PenetrationInfo ( const Node *  node,
const Elem *  elem,
const Elem *  side,
unsigned int  side_num,
RealVectorValue  norm,
Real  norm_distance,
Real  tangential_distance,
const Point &  closest_point,
const Point &  closest_point_ref,
const Point &  closest_point_on_face_ref,
std::vector< const Node *>  off_edge_nodes,
const std::vector< std::vector< Real >> &  side_phi,
const std::vector< std::vector< RealGradient >> &  side_grad_phi,
const std::vector< RealGradient > &  dxyzdxi,
const std::vector< RealGradient > &  dxyzdeta,
const std::vector< RealGradient > &  d2xyzdxideta 
)

Definition at line 21 of file PenetrationInfo.C.

37  : _node(node),
38  _elem(elem),
39  _side(side),
40  _side_num(side_num),
41  _normal(norm),
42  _distance(norm_distance),
43  _tangential_distance(tangential_distance),
44  _closest_point(closest_point),
45  _closest_point_ref(closest_point_ref),
46  _closest_point_on_face_ref(closest_point_on_face_ref),
47  _off_edge_nodes(off_edge_nodes),
48  _side_phi(side_phi),
49  _side_grad_phi(side_grad_phi),
50  _dxyzdxi(dxyzdxi),
51  _dxyzdeta(dxyzdeta),
52  _d2xyzdxideta(d2xyzdxideta),
53  _starting_elem(NULL),
54  _starting_side_num(libMesh::invalid_uint),
57  _accumulated_slip(0.0),
59  _frictional_energy(0.0),
61  _contact_force(0),
69  _slip_reversed(false),
70  _slip_tol(0)
71 {
72 }
std::vector< RealGradient > _d2xyzdxideta
RealVectorValue _normal
const Elem * _starting_elem
Point _closest_point_on_face_ref
std::vector< std::vector< RealGradient > > _side_grad_phi
std::vector< std::vector< Real > > _side_phi
RealVectorValue _contact_force_old
Point _incremental_slip_prev_iter
unsigned int _locked_this_step
const Elem * _elem
unsigned int _starting_side_num
unsigned int _side_num
std::vector< RealGradient > _dxyzdxi
const Elem * _side
RealVectorValue _contact_force
MECH_STATUS_ENUM _mech_status
std::vector< const Node * > _off_edge_nodes
Point _starting_closest_point_ref
std::vector< RealGradient > _dxyzdeta
MECH_STATUS_ENUM _mech_status_old
RealVectorValue _lagrange_multiplier_slip
const Node * _node

◆ PenetrationInfo() [2/2]

PenetrationInfo::PenetrationInfo ( )

Definition at line 116 of file PenetrationInfo.C.

117  : _node(NULL),
118  _elem(NULL),
119  _side(NULL),
120  _side_num(0),
121  _normal(0),
122  _distance(0),
124  _closest_point(0),
127  _off_edge_nodes(0),
128  _side_phi(0),
129  _side_grad_phi(0),
130  _dxyzdxi(0),
131  _dxyzdeta(0),
132  _d2xyzdxideta(0),
133  _starting_elem(NULL),
134  _starting_side_num(libMesh::invalid_uint),
137  _accumulated_slip(0.0),
139  _frictional_energy(0.0),
141  _contact_force(0),
149  _slip_reversed(false),
150  _slip_tol(0)
151 {
152 }
std::vector< RealGradient > _d2xyzdxideta
RealVectorValue _normal
const Elem * _starting_elem
Point _closest_point_on_face_ref
std::vector< std::vector< RealGradient > > _side_grad_phi
std::vector< std::vector< Real > > _side_phi
RealVectorValue _contact_force_old
Point _incremental_slip_prev_iter
unsigned int _locked_this_step
const Elem * _elem
unsigned int _starting_side_num
unsigned int _side_num
std::vector< RealGradient > _dxyzdxi
const Elem * _side
RealVectorValue _contact_force
MECH_STATUS_ENUM _mech_status
std::vector< const Node * > _off_edge_nodes
Point _starting_closest_point_ref
std::vector< RealGradient > _dxyzdeta
MECH_STATUS_ENUM _mech_status_old
RealVectorValue _lagrange_multiplier_slip
const Node * _node

◆ ~PenetrationInfo()

PenetrationInfo::~PenetrationInfo ( )

Definition at line 154 of file PenetrationInfo.C.

154 { delete _side; }
const Elem * _side

Member Function Documentation

◆ capture()

void PenetrationInfo::capture ( )
inline

◆ isCaptured()

bool PenetrationInfo::isCaptured ( ) const
inline

◆ release()

void PenetrationInfo::release ( )
inline

Definition at line 72 of file PenetrationInfo.h.

Member Data Documentation

◆ _accumulated_slip

Real PenetrationInfo::_accumulated_slip

◆ _accumulated_slip_old

Real PenetrationInfo::_accumulated_slip_old

◆ _closest_point

Point PenetrationInfo::_closest_point

◆ _closest_point_on_face_ref

Point PenetrationInfo::_closest_point_on_face_ref

Definition at line 83 of file PenetrationInfo.h.

Referenced by dataLoad(), dataStore(), and Moose::findContactPoint().

◆ _closest_point_ref

Point PenetrationInfo::_closest_point_ref

◆ _contact_force

RealVectorValue PenetrationInfo::_contact_force

◆ _contact_force_old

RealVectorValue PenetrationInfo::_contact_force_old

Definition at line 99 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

◆ _d2xyzdxideta

std::vector<RealGradient> PenetrationInfo::_d2xyzdxideta

Definition at line 89 of file PenetrationInfo.h.

Referenced by dataLoad(), dataStore(), and Moose::findContactPoint().

◆ _distance

Real PenetrationInfo::_distance

◆ _dxyzdeta

std::vector<RealGradient> PenetrationInfo::_dxyzdeta

Definition at line 88 of file PenetrationInfo.h.

Referenced by dataLoad(), dataStore(), and Moose::findContactPoint().

◆ _dxyzdxi

std::vector<RealGradient> PenetrationInfo::_dxyzdxi

Definition at line 87 of file PenetrationInfo.h.

Referenced by dataLoad(), dataStore(), and Moose::findContactPoint().

◆ _elem

const Elem* PenetrationInfo::_elem

◆ _frictional_energy

Real PenetrationInfo::_frictional_energy

◆ _frictional_energy_old

Real PenetrationInfo::_frictional_energy_old

◆ _incremental_slip

Point PenetrationInfo::_incremental_slip

◆ _incremental_slip_prev_iter

Point PenetrationInfo::_incremental_slip_prev_iter

Definition at line 108 of file PenetrationInfo.h.

◆ _lagrange_multiplier

Real PenetrationInfo::_lagrange_multiplier

◆ _lagrange_multiplier_slip

RealVectorValue PenetrationInfo::_lagrange_multiplier_slip

Definition at line 102 of file PenetrationInfo.h.

Referenced by dataLoad(), dataStore(), and PenetrationThread::switchInfo().

◆ _locked_this_step

unsigned int PenetrationInfo::_locked_this_step

Definition at line 104 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

◆ _mech_status

MECH_STATUS_ENUM PenetrationInfo::_mech_status

◆ _mech_status_old

MECH_STATUS_ENUM PenetrationInfo::_mech_status_old

Definition at line 107 of file PenetrationInfo.h.

Referenced by dataLoad(), dataStore(), and PenetrationThread::switchInfo().

◆ _node

const Node* PenetrationInfo::_node

◆ _normal

RealVectorValue PenetrationInfo::_normal

◆ _off_edge_nodes

std::vector<const Node *> PenetrationInfo::_off_edge_nodes

◆ _side

const Elem* PenetrationInfo::_side

◆ _side_grad_phi

std::vector<std::vector<RealGradient> > PenetrationInfo::_side_grad_phi

◆ _side_num

unsigned int PenetrationInfo::_side_num

◆ _side_phi

std::vector<std::vector<Real> > PenetrationInfo::_side_phi

◆ _slip_reversed

bool PenetrationInfo::_slip_reversed

Definition at line 109 of file PenetrationInfo.h.

◆ _slip_tol

Real PenetrationInfo::_slip_tol

Definition at line 110 of file PenetrationInfo.h.

◆ _starting_closest_point_ref

Point PenetrationInfo::_starting_closest_point_ref

◆ _starting_elem

const Elem* PenetrationInfo::_starting_elem

◆ _starting_side_num

unsigned int PenetrationInfo::_starting_side_num

◆ _stick_locked_this_step

unsigned int PenetrationInfo::_stick_locked_this_step

Definition at line 105 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

◆ _tangential_distance

Real PenetrationInfo::_tangential_distance

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