Digital Image Correlation Engine  Version 1.0
A modular, high-performance, image correlation tool used to compute full-field displacements and strains from digital images
Public Member Functions | Private Attributes | List of all members
DICe::mesh::Bond Class Reference

Represents a connection between two mesh objects (used mostly for peridynamics) More...

#include <DICe_Mesh.h>

Inheritance diagram for DICe::mesh::Bond:
DICe::mesh::Mesh_Object

Public Member Functions

 Bond (const int_t local_id, Teuchos::RCP< DICe::mesh::Element > left_element, const bool left_is_on_processor, Teuchos::RCP< DICe::mesh::Element > right_element, const bool right_is_on_processor)
 
 ~Bond ()
 Destructor.
 
bool left_is_on_processor () const
 Returns true if the left element is on processor.
 
bool right_is_on_processor () const
 Returns true if the right element is on processor.
 
int_t get_right_global_id () const
 Returns the right element's global id.
 
int_t get_left_global_id () const
 Returns the left element's global id.
 
int_t get_right_local_id () const
 Returns the right element's local id.
 
int_t get_left_local_id () const
 Returns the left element's local id.
 
int_t get_right_overlap_local_id () const
 Returns the right element's overlap local id.
 
int_t get_left_overlap_local_id () const
 Returns the left element's overlap local id.
 
Teuchos::RCP< Elementget_left_element ()
 Returns a pointer to the left element.
 
Teuchos::RCP< Elementget_right_element ()
 Returns a pointer to the right element.
 
std::vector< int_t > * get_left_neighbor_bond_local_ids ()
 Returns a pointer to the vector of neighbor bond local ids (these are all the bonds attached to the left element)
 
std::vector< int_t > * get_right_neighbor_bond_local_ids ()
 Returns a pointer to the vector of neighbor bond local ids (these are all the bonds attached to the right element)
 
void set_left_neighbor_bond_local_ids (std::vector< int_t > left_neighbor_bond_local_ids)
 
void set_right_neighbor_bond_local_ids (std::vector< int_t > right_neighbor_bond_local_ids)
 
- Public Member Functions inherited from DICe::mesh::Mesh_Object
 Mesh_Object (const int_t global_id, const int_t local_id)
 Basic and only constructor. More...
 
virtual ~Mesh_Object ()
 destructor
 
int_t global_id () const
 Returns the global id of the mesh object.
 
int_t local_id () const
 Returns the local id of the mesh object.
 
int_t overlap_local_id () const
 Returns the local overlap id of mesh objects that are shared accross processors.
 
int_t overlap_neighbor_local_id () const
 
bool operator< (const Mesh_Object &right) const
 
const std::set< int_t > * shallow_relations (const field_enums::Entity_Rank entity_rank) const
 
const std::vector< Teuchos::RCP< Mesh_Object > > * deep_relations (const field_enums::Entity_Rank entity_rank) const
 
shallow_relations_mapget_shallow_relations_map ()
 Returns a pointer to the map of shallow relations for this mesh object.
 
deep_relations_mapget_deep_relations_map ()
 Returns a pointer to the map of deep relations for this mesh object.
 
std::vector< int_t > * get_shallow_elem_relations ()
 Returns a pointer to the shallow elem relations vector.
 
std::vector< Teuchos::RCP< Bond > > * get_deep_bond_relations ()
 Returns a pointer to the bond deep relations.
 
void add_shallow_relation (const field_enums::Entity_Rank entity_rank, const int_t global_id) const
 Add a shallow relation to this mesh object. More...
 
void add_deep_relation (const Teuchos::RCP< Element > element) const
 Add a deep relation for the given mesh object. More...
 
void add_deep_relation (const Teuchos::RCP< Node > node) const
 Add a deep relation for the given mesh object. More...
 
void add_deep_relation (const Teuchos::RCP< Internal_Face_Edge > internal_face_edge) const
 Add a deep relation for the given mesh object. More...
 
void add_deep_relation (const Teuchos::RCP< Internal_Cell > internal_cell) const
 Add a deep relation for the given mesh object. More...
 
void add_deep_relation (const Teuchos::RCP< Bond > bond) const
 Add a deep relation for the given mesh object. More...
 
int_t is_elem_relation (const int_t gid, scalar_t &sign)
 
size_t num_shallow_relations (const field_enums::Entity_Rank entity_rank) const
 
size_t num_deep_relations (const field_enums::Entity_Rank entity_rank) const
 
int_t num_initial_relations (const field_enums::Entity_Rank entity_rank) const
 
void update_local_id (const int_t local_id)
 
void update_overlap_local_id (const int_t overlap_local_id)
 
void update_overlap_neighbor_local_id (const int_t overlap_neighbor_local_id)
 
void set_initial_num_relations (const int_t num_relations, const field_enums::Entity_Rank relation_rank) const
 

Private Attributes

Teuchos::RCP< DICe::mesh::Elementleft_element_
 Pointer to the left element on the bond.
 
Teuchos::RCP< DICe::mesh::Elementright_element_
 Pointer to the right element on the bond.
 
std::vector< int_tleft_neighbor_bond_local_ids_
 Vector of all the left neighbor's bonds.
 
std::vector< int_tright_neighbor_bond_local_ids_
 Vector of all the right neighbor's bonds.
 
const bool left_is_on_processor_
 True if left element is on processor.
 
const bool right_is_on_processor_
 True if right element is on processor.
 

Additional Inherited Members

- Protected Attributes inherited from DICe::mesh::Mesh_Object
int_t global_id_
 global id
 
int_t local_id_
 local id
 
int_t overlap_local_id_
 overlap local id
 
int_t overlap_neighbor_local_id_
 overlap neighbor local id (this is the index in the list that includes neighbor's neighbors shared accross processors)
 
shallow_relations_map shallow_relations_map_
 Map of shallow relations (ids only not pointers to the objects)
 
std::vector< int_tshallow_elem_relations_
 Vector of shallow elem relations.
 
deep_relations_map deep_relations_map_
 Map of deep relations (not just ids, but actual pointers to the objects)
 
std::vector< Teuchos::RCP< Bond > > deep_bond_relations_
 Vector of pointers to bond relations.
 
int_t initial_num_node_relations_
 Number of initial node relations.
 
int_t initial_num_elem_relations_
 Number of initial element relations.
 

Detailed Description

Represents a connection between two mesh objects (used mostly for peridynamics)

Constructor & Destructor Documentation

◆ Bond()

DICe::mesh::Bond::Bond ( const int_t  local_id,
Teuchos::RCP< DICe::mesh::Element left_element,
const bool  left_is_on_processor,
Teuchos::RCP< DICe::mesh::Element right_element,
const bool  right_is_on_processor 
)
inline

Basic constructor

Parameters
local_idThe local id of this bond
left_elementThe left side of the bond is connected to this element
left_is_on_processorTrue if the left element is local to this processor
right_elementThe right side of the bond is connected to this element
right_is_on_processorTrue if the right element is local to this processor

Member Function Documentation

◆ set_left_neighbor_bond_local_ids()

void DICe::mesh::Bond::set_left_neighbor_bond_local_ids ( std::vector< int_t left_neighbor_bond_local_ids)
inline

Sets the list of bond ids

Parameters
left_neighbor_bond_local_idsThe vector to assign

◆ set_right_neighbor_bond_local_ids()

void DICe::mesh::Bond::set_right_neighbor_bond_local_ids ( std::vector< int_t right_neighbor_bond_local_ids)
inline

Sets the list of bond ids

Parameters
right_neighbor_bond_local_idsThe vector to assign