https://mooseframework.inl.gov
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 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 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 29 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 55 of file PenetrationInfo.h.

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

Constructor & Destructor Documentation

◆ PenetrationInfo() [1/2]

PenetrationInfo::PenetrationInfo ( 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() [2/2]

PenetrationInfo::PenetrationInfo ( )

Definition at line 117 of file PenetrationInfo.C.

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),
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
const unsigned int invalid_uint
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

◆ ~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 70 of file PenetrationInfo.h.

Member Data Documentation

◆ _accumulated_slip

Real PenetrationInfo::_accumulated_slip

◆ _accumulated_slip_old

Real PenetrationInfo::_accumulated_slip_old

Definition at line 92 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

◆ _closest_point

Point PenetrationInfo::_closest_point

◆ _closest_point_on_face_ref

Point PenetrationInfo::_closest_point_on_face_ref

Definition at line 80 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 96 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

◆ _d2xyzdxideta

std::vector<RealGradient> PenetrationInfo::_d2xyzdxideta

Definition at line 86 of file PenetrationInfo.h.

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

◆ _distance

Real PenetrationInfo::_distance

◆ _dxyzdeta

std::vector<RealGradient> PenetrationInfo::_dxyzdeta

Definition at line 85 of file PenetrationInfo.h.

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

◆ _dxyzdxi

std::vector<RealGradient> PenetrationInfo::_dxyzdxi

Definition at line 84 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

Definition at line 94 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

◆ _incremental_slip

Point PenetrationInfo::_incremental_slip

◆ _incremental_slip_prev_iter

Point PenetrationInfo::_incremental_slip_prev_iter

Definition at line 105 of file PenetrationInfo.h.

◆ _lagrange_multiplier

Real PenetrationInfo::_lagrange_multiplier

◆ _lagrange_multiplier_slip

RealVectorValue PenetrationInfo::_lagrange_multiplier_slip

Definition at line 99 of file PenetrationInfo.h.

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

◆ _locked_this_step

unsigned int PenetrationInfo::_locked_this_step

Definition at line 101 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 104 of file PenetrationInfo.h.

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

◆ _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

Definition at line 83 of file PenetrationInfo.h.

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

◆ _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 106 of file PenetrationInfo.h.

◆ _slip_tol

Real PenetrationInfo::_slip_tol

Definition at line 107 of file PenetrationInfo.h.

◆ _starting_closest_point_ref

Point PenetrationInfo::_starting_closest_point_ref

Definition at line 89 of file PenetrationInfo.h.

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

◆ _starting_elem

const Elem* PenetrationInfo::_starting_elem

Definition at line 87 of file PenetrationInfo.h.

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

◆ _starting_side_num

unsigned int PenetrationInfo::_starting_side_num

Definition at line 88 of file PenetrationInfo.h.

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

◆ _stick_locked_this_step

unsigned int PenetrationInfo::_stick_locked_this_step

Definition at line 102 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: