NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
|
#include <nimble_contact_entity.h>
Classes | |
class | vertex |
Public Types | |
enum | ContactEntityType { NONE = 0 , NODE = 1 , TRIANGLE = 3 } |
typedef enum nimble::ContactEntity::ContactEntityType | CONTACT_ENTITY_TYPE |
Public Member Functions | |
NIMBLE_INLINE_FUNCTION | ContactEntity ()=default |
NIMBLE_INLINE_FUNCTION | ContactEntity (CONTACT_ENTITY_TYPE entity_type, int contact_entity_global_id, double const coord[], double characteristic_length, int node_id_for_node_1, int node_id_for_node_2=0, const int node_ids_for_fictitious_node[4]=0) |
NIMBLE_INLINE_FUNCTION | ContactEntity (CONTACT_ENTITY_TYPE entity_type, int contact_entity_global_id, int contact_entity_local_id, double const coord[], double characteristic_length, int node_id_for_node_1, int node_id_for_node_2=0, const int node_ids_for_fictitious_node[4]=0) |
NIMBLE_INLINE_FUNCTION | ~ContactEntity ()=default |
template<typename ArgT> | |
NIMBLE_INLINE_FUNCTION void | SetCoordinates (ArgT coord) |
template<typename ArgT> | |
NIMBLE_INLINE_FUNCTION void | ScatterForceToContactManagerForceVector (ArgT &force) const |
NIMBLE_INLINE_FUNCTION double | get_x_min () const |
NIMBLE_INLINE_FUNCTION double | get_x_max () const |
NIMBLE_INLINE_FUNCTION double | get_y_min () const |
NIMBLE_INLINE_FUNCTION double | get_y_max () const |
NIMBLE_INLINE_FUNCTION double | get_z_min () const |
NIMBLE_INLINE_FUNCTION double | get_z_max () const |
NIMBLE_INLINE_FUNCTION int | contact_entity_global_id () const |
NIMBLE_INLINE_FUNCTION int | local_id () const noexcept |
NIMBLE_INLINE_FUNCTION vertex | centroid () const |
void | ExportGeometryInto (ContactEntity &xerox) const |
NIMBLE_INLINE_FUNCTION bool | contact_status () const noexcept |
NIMBLE_INLINE_FUNCTION void | set_contact_status (bool status) noexcept |
NIMBLE_INLINE_FUNCTION void | SetNodalContactForces (const double *const contact_force, const double *const N=nullptr) |
Distribute input force among node(s) of the entity. | |
NIMBLE_INLINE_FUNCTION void | ComputeNodalContactForces (const double *const contact_force, const double *const closest_point_projection) |
void | ResetContactData () |
Protected Member Functions | |
void | SetBoundingBox () |
Create a bounding box centered around the entity. | |
Friends | |
template<typename ArgT> | |
void | SerializeContactFaces (int num_entities, ArgT contact_entities, std::vector< char > &buffer) |
template<typename ArgT> | |
void | UnserializeContactFaces (int num_entities, ArgT contact_entities, std::vector< char > &buffer) |
Enumerator | |
---|---|
NONE | |
NODE | |
TRIANGLE |
|
default |
|
inline |
|
inline |
|
default |
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
void nimble::ContactEntity::ExportGeometryInto | ( | ContactEntity & | xerox | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
|
inline |
|
inline |
|
inlinenoexcept |
|
protected |
Create a bounding box centered around the entity.
|
inline |
|
inline |
Distribute input force among node(s) of the entity.
contact_force | Input force to distribute |
N | Array of barycentric coordinates when entity is triangular face |
|
friend |
|
friend |
double nimble::ContactEntity::bounding_box_x_max_ = DBL_MAX |
double nimble::ContactEntity::bounding_box_x_min_ = -DBL_MAX |
double nimble::ContactEntity::bounding_box_y_max_ = DBL_MAX |
double nimble::ContactEntity::bounding_box_y_min_ = -DBL_MAX |
double nimble::ContactEntity::bounding_box_z_max_ = DBL_MAX |
double nimble::ContactEntity::bounding_box_z_min_ = -DBL_MAX |
vertex nimble::ContactEntity::centroid_ |
double nimble::ContactEntity::char_len_ = 0.0 |
int nimble::ContactEntity::contact_entity_global_id_ = -1 |
bool nimble::ContactEntity::contact_status_ = false |
double nimble::ContactEntity::coord_1_x_ = 0.0 |
double nimble::ContactEntity::coord_1_y_ = 0.0 |
double nimble::ContactEntity::coord_1_z_ = 0.0 |
double nimble::ContactEntity::coord_2_x_ = 0.0 |
double nimble::ContactEntity::coord_2_y_ = 0.0 |
double nimble::ContactEntity::coord_2_z_ = 0.0 |
double nimble::ContactEntity::coord_3_x_ = 0.0 |
double nimble::ContactEntity::coord_3_y_ = 0.0 |
double nimble::ContactEntity::coord_3_z_ = 0.0 |
CONTACT_ENTITY_TYPE nimble::ContactEntity::entity_type_ = NONE |
double nimble::ContactEntity::force_1_x_ = 0.0 |
double nimble::ContactEntity::force_1_y_ = 0.0 |
double nimble::ContactEntity::force_1_z_ = 0.0 |
double nimble::ContactEntity::force_2_x_ = 0.0 |
double nimble::ContactEntity::force_2_y_ = 0.0 |
double nimble::ContactEntity::force_2_z_ = 0.0 |
double nimble::ContactEntity::force_3_x_ = 0.0 |
double nimble::ContactEntity::force_3_y_ = 0.0 |
double nimble::ContactEntity::force_3_z_ = 0.0 |
double nimble::ContactEntity::inflation_factor = 0.15 |
Factor multiplying characteristic length to inflate bounding box.
int nimble::ContactEntity::local_id_ = -1 |
int nimble::ContactEntity::node_id_1_for_fictitious_node_ = -1 |
int nimble::ContactEntity::node_id_2_for_fictitious_node_ = -1 |
int nimble::ContactEntity::node_id_3_for_fictitious_node_ = -1 |
int nimble::ContactEntity::node_id_4_for_fictitious_node_ = -1 |
int nimble::ContactEntity::node_id_for_node_1_ = -1 |
int nimble::ContactEntity::node_id_for_node_2_ = -1 |
int nimble::ContactEntity::num_nodes_ = 0 |