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 35 of file PenetrationInfo.h.

Member Enumeration Documentation

Enumerator
MS_NO_CONTACT 
MS_STICKING 
MS_SLIPPING 
MS_SLIPPING_FRICTION 
MS_CONTACT 

Definition at line 62 of file PenetrationInfo.h.

63  {
64  MS_NO_CONTACT = 0, // out of contact
65  MS_STICKING, // sticking (glued or frictional)
66  MS_SLIPPING, // slipping with zero frictional resistance
67  MS_SLIPPING_FRICTION, // slipping with nonzero frictional resistance
68  MS_CONTACT // In contact, but unknown yet whether slipping or sticking.
69  };

Constructor & Destructor Documentation

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 26 of file PenetrationInfo.C.

42  : _node(node),
43  _elem(elem),
44  _side(side),
45  _side_num(side_num),
46  _normal(norm),
47  _distance(norm_distance),
48  _tangential_distance(tangential_distance),
49  _closest_point(closest_point),
50  _closest_point_ref(closest_point_ref),
51  _closest_point_on_face_ref(closest_point_on_face_ref),
52  _off_edge_nodes(off_edge_nodes),
53  _side_phi(side_phi),
54  _side_grad_phi(side_grad_phi),
55  _dxyzdxi(dxyzdxi),
56  _dxyzdeta(dxyzdeta),
57  _d2xyzdxideta(d2xyzdxideta),
58  _starting_elem(NULL),
59  _starting_side_num(libMesh::invalid_uint),
62  _accumulated_slip(0.0),
64  _frictional_energy(0.0),
66  _contact_force(0),
74  _slip_reversed(false),
75  _slip_tol(0)
76 {
77 }
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 ( )

Definition at line 121 of file PenetrationInfo.C.

Referenced by dataLoad().

122  : _node(NULL),
123  _elem(NULL),
124  _side(NULL),
125  _side_num(0),
126  _normal(0),
127  _distance(0),
129  _closest_point(0),
132  _off_edge_nodes(0),
133  _side_phi(0),
134  _side_grad_phi(0),
135  _dxyzdxi(0),
136  _dxyzdeta(0),
137  _d2xyzdxideta(0),
138  _starting_elem(NULL),
139  _starting_side_num(libMesh::invalid_uint),
142  _accumulated_slip(0.0),
144  _frictional_energy(0.0),
146  _contact_force(0),
154  _slip_reversed(false),
155  _slip_tol(0)
156 {
157 }
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 ( )

Definition at line 159 of file PenetrationInfo.C.

159 { delete _side; }
const Elem * _side

Member Function Documentation

void PenetrationInfo::capture ( )
inline
bool PenetrationInfo::isCaptured ( ) const
inline
void PenetrationInfo::release ( )
inline

Definition at line 77 of file PenetrationInfo.h.

Member Data Documentation

Real PenetrationInfo::_accumulated_slip
Real PenetrationInfo::_accumulated_slip_old
Point PenetrationInfo::_closest_point
Point PenetrationInfo::_closest_point_on_face_ref

Definition at line 88 of file PenetrationInfo.h.

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

Point PenetrationInfo::_closest_point_ref
RealVectorValue PenetrationInfo::_contact_force
RealVectorValue PenetrationInfo::_contact_force_old

Definition at line 104 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

std::vector<RealGradient> PenetrationInfo::_d2xyzdxideta

Definition at line 94 of file PenetrationInfo.h.

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

Real PenetrationInfo::_distance
std::vector<RealGradient> PenetrationInfo::_dxyzdeta

Definition at line 93 of file PenetrationInfo.h.

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

std::vector<RealGradient> PenetrationInfo::_dxyzdxi

Definition at line 92 of file PenetrationInfo.h.

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

const Elem* PenetrationInfo::_elem
Real PenetrationInfo::_frictional_energy
Real PenetrationInfo::_frictional_energy_old
Point PenetrationInfo::_incremental_slip
Point PenetrationInfo::_incremental_slip_prev_iter

Definition at line 113 of file PenetrationInfo.h.

Real PenetrationInfo::_lagrange_multiplier
RealVectorValue PenetrationInfo::_lagrange_multiplier_slip

Definition at line 107 of file PenetrationInfo.h.

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

unsigned int PenetrationInfo::_locked_this_step

Definition at line 109 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

MECH_STATUS_ENUM PenetrationInfo::_mech_status
MECH_STATUS_ENUM PenetrationInfo::_mech_status_old

Definition at line 112 of file PenetrationInfo.h.

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

const Node* PenetrationInfo::_node
RealVectorValue PenetrationInfo::_normal
std::vector<const Node *> PenetrationInfo::_off_edge_nodes
const Elem* PenetrationInfo::_side
std::vector<std::vector<RealGradient> > PenetrationInfo::_side_grad_phi
unsigned int PenetrationInfo::_side_num
std::vector<std::vector<Real> > PenetrationInfo::_side_phi
bool PenetrationInfo::_slip_reversed

Definition at line 114 of file PenetrationInfo.h.

Real PenetrationInfo::_slip_tol

Definition at line 115 of file PenetrationInfo.h.

Point PenetrationInfo::_starting_closest_point_ref
const Elem* PenetrationInfo::_starting_elem
unsigned int PenetrationInfo::_starting_side_num
unsigned int PenetrationInfo::_stick_locked_this_step

Definition at line 110 of file PenetrationInfo.h.

Referenced by PenetrationThread::switchInfo().

Real PenetrationInfo::_tangential_distance

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