|
| Jali_Mesh_Wrapper (Jali::Mesh const &mesh, bool request_sides=true, bool request_wedges=true, bool request_corners=true) |
|
| Jali_Mesh_Wrapper (Jali_Mesh_Wrapper const &inmesh)=delete |
| Copy constructor (Deleted) More...
|
|
Jali_Mesh_Wrapper & | operator= (Jali_Mesh_Wrapper const &inmesh)=delete |
| Assignment operator (Deleted) More...
|
|
| ~Jali_Mesh_Wrapper () |
| Empty destructor. More...
|
|
int | space_dimension () const |
| Dimension of space or mesh points. More...
|
|
int | num_owned_cells () const |
| Number of owned cells in the mesh. More...
|
|
int | num_owned_faces () const |
| Number of owned faces in the mesh. More...
|
|
int | num_owned_nodes () const |
| Number of owned nodes in the mesh. More...
|
|
int | num_ghost_cells () const |
| Number of ghost cells in the mesh. More...
|
|
int | num_ghost_faces () const |
| Number of ghost faces in the mesh. More...
|
|
int | num_ghost_nodes () const |
| Number of ghost nodes in the mesh. More...
|
|
Wonton::Entity_type | cell_get_type (int const cellid) const |
|
Wonton::Entity_type | node_get_type (int const nodeid) const |
|
Wonton::Element_type | cell_get_element_type (int const cellid) const |
|
void | cell_get_faces_and_dirs (int const cellid, std::vector< int > *cfaces, std::vector< int > *cfdirs) const |
| Get cell faces and the directions in which they are used. More...
|
|
void | cell_get_nodes (int cellid, std::vector< int > *nodes) const |
| Get list of nodes for a cell. More...
|
|
void | cell_get_node_adj_cells (int const cellid, Entity_type const ptype, std::vector< int > *adjcells) const |
| Get node connected neighbors of cell. More...
|
|
void | face_get_nodes (int const faceid, std::vector< int > *fnodes) const |
| Get nodes of a face. More...
|
|
void | node_get_cells (int const nodeid, Entity_type const ptype, std::vector< int > *nodecells) const |
| Get cells of a node. More...
|
|
GID_t | get_global_id (int const id, Entity_kind const kind) const |
| Get global id. More...
|
|
template<int D> |
void | node_get_coordinates (int const nodeid, Point< D > *pp) const |
| coords of a node More...
|
|
| AuxMeshTopology (bool request_sides=true, bool request_wedges=true, bool request_corners=true) |
| Constructor indicating which entities are wanted. More...
|
|
int | num_owned_sides () const |
| Number of owned sides in the mesh. More...
|
|
int | num_owned_wedges () const |
| Number of owned wedges in the mesh. More...
|
|
int | num_owned_corners () const |
| Number of owned corners in the mesh. More...
|
|
int | num_ghost_sides () const |
| Number of ghost sides in the mesh. More...
|
|
int | num_ghost_wedges () const |
| Number of ghost wedges in the mesh. More...
|
|
int | num_ghost_corners () const |
| Number of ghost corners in the mesh. More...
|
|
int | num_entities (Entity_kind const entity, Entity_type const etype=Entity_type::ALL) const |
| Number of items of given entity. More...
|
|
counting_iterator | begin (Entity_kind const entity, Entity_type const etype=Entity_type::ALL) const |
| Iterators on mesh entity - begin. More...
|
|
counting_iterator | end (Entity_kind const entity, Entity_type const etype=Entity_type::ALL) const |
| Iterator on mesh entity - end. More...
|
|
void | cell_get_node_adj_cells (int const cellid, Entity_type const ptype, std::vector< int > *adjcells) const |
| Get the list of cell IDs for all cells attached to a specific cell through its nodes. More...
|
|
void | face_get_cells (int const faceid, Entity_type const etype, std::vector< int > *cells) const |
| Get cells of given Entity_type connected to face (in no particular order) More...
|
|
int | cell_get_face_adj_cell (int cell, int face) const |
| Retrieve the cell incident to a given face of a given cell. More...
|
|
void | cell_get_face_adj_cells (int const cellid, Entity_type const ptype, std::vector< int > *adjcells) const |
| Get the list of cell IDs for all cells attached to a specific cell through its faces. More...
|
|
void | node_get_cell_adj_nodes (int const nodeid, Entity_type const ptype, std::vector< int > *adjnodes) const |
| Get the list of node IDs for all nodes attached to all cells attached to a specific node. More...
|
|
bool | on_exterior_boundary (Entity_kind const entity, int const entity_id) const |
| if entity is on exterior boundary More...
|
|
void | cell_get_coordinates (int const cellid, std::vector< Point< D >> *pplist) const |
| Coordinates of nodes of cell. More...
|
|
void | cell_centroid (int const cellid, Point< D > *ccen) const |
| Centroid of a cell. More...
|
|
double | cell_volume (int const cellid) const |
| Volume of a cell. More...
|
|
void | face_centroid (int const faceid, Point< D > *fcen) const |
| Centroid of a face. More...
|
|
int | side_get_node (int const sideid, int const inode) const |
|
int | side_get_cell (int const sideid) const |
| Cell of side. More...
|
|
int | side_get_face (int const sideid) const |
| Face of side. More...
|
|
int | side_get_wedge (int const sideid, int iwedge) const |
|
int | side_get_opposite_side (int const sideid) const |
|
void | cell_get_sides (int const cellid, std::vector< int > *csides) const |
| Get all the sides of a cell. More...
|
|
void | side_get_coordinates (int const sideid, std::array< Point< 3 >, 4 > *scoords, bool posvol_order=false) const |
| side coordinates in 3D More...
|
|
void | side_get_coordinates (int const sideid, std::array< Point< 2 >, 3 > *scoords, bool posvol_order=false) const |
| side coordinates in 2D More...
|
|
void | side_get_coordinates (int const sideid, std::array< Point< 1 >, 2 > *scoords, bool posvol_order=false) const |
| side coordinates in 1D More...
|
|
double | side_volume (int const sideid) const |
| Volume of a side. More...
|
|
int | wedge_get_side (int const wedgeid) const |
| Side of wedge. More...
|
|
int | wedge_get_cell (int const wedgeid) const |
| Cell of wedge. More...
|
|
int | wedge_get_face (int const wedgeid) const |
| Face of wedge. More...
|
|
int | wedge_get_corner (int const wedgeid) const |
| Corner of a wedge. More...
|
|
int | wedge_get_node (int const wedgeid) const |
| node of a wedge More...
|
|
int | wedge_get_opposite_wedge (const int wedgeid) const |
|
int | wedge_get_adjacent_wedge (const int wedgeid) const |
|
double | wedge_volume (int const wedgeid) const |
| Volume of a wedge - half its side volume. More...
|
|
void | wedge_get_coordinates (int const wedgeid, std::array< Point< 3 >, 4 > *wcoords, bool posvol_order=false) const |
| Wedge coordinates in 3D. More...
|
|
void | wedge_get_coordinates (int const wedgeid, std::array< Point< 2 >, 3 > *wcoords, bool posvol_order=false) const |
| Wedge coordinates in 2D. More...
|
|
void | wedge_get_coordinates (int const wedgeid, std::array< Point< 1 >, 2 > *wcoords, bool posvol_order=false) const |
| Wedge coordinates in 1D. More...
|
|
void | cell_get_wedges (int const cellid, std::vector< int > *wedgeids) const |
| Get all the wedges in a cell. More...
|
|
void | node_get_wedges (int const nodeid, Entity_type const type, std::vector< int > *wedgeids) const |
| Get wedges at a node. More...
|
|
int | corner_get_node (const int cornerid) const |
| Get node of corner. More...
|
|
int | corner_get_cell (int const cornerid) const |
| Get cell of corner. More...
|
|
void | corner_get_wedges (int const cornerid, std::vector< int > *wedgeids) const |
| Get wedges of a corner. More...
|
|
void | node_get_corners (int const nodeid, Entity_type const type, std::vector< int > *cornerids) const |
| Get corners connected to a node. More...
|
|
void | cell_get_corners (int const cellid, std::vector< int > *cornerids) const |
| Get corners in a cell. More...
|
|
int | cell_get_corner_at_node (int const cellid, int const nodeid) const |
| Get a cell's corner at a particular node of the cell. More...
|
|
double | corner_volume (int const cornerid) const |
| Volume of a corner. More...
|
|
void | cell_get_facetization (int const cellid, std::vector< std::vector< int >> *facetpoints, std::vector< Point< 3 >> *points) const |
| Get a triangular facetization of polyhedral cell boundary. More...
|
|
void | dual_cell_get_facetization (int const nodeid, std::vector< std::vector< int >> *facetpoints, std::vector< Point< 3 >> *points) const |
|
void | decompose_cell_into_tets (int cellid, std::vector< std::array< Wonton::Point< 3 >, 4 >> *tcoords, const bool planar_hex) const |
| Get the simplest possible decomposition of a 3D cell into tets. More...
|
|
void | dual_cell_get_coordinates (int const nodeid, std::vector< Point< 2 >> *pplist) const |
| 2D version of coords of nodes of a dual cell More...
|
|
void | dual_cell_get_coordinates (int const nodeid, std::vector< Point< 3 >> *pplist) const |
| 3D version of coords of nodes of a dual cell More...
|
|
void | order_wedges_ccw (std::vector< int > *wedgeids) const |
| Order wedges around a node in ccw manner. More...
|
|
bool | ccw (Point< 2 > const &p1, Point< 2 > const &p2, Point< 2 > const &p3) const |
|
std::vector< Point< 2 > > | cellToXY (int cellID) const |
|
void | wedges_get_coordinates (int cellID, std::vector< std::array< Point< 3 >, 4 >> *wcoords) const |
| Get coordinates of wedge in 3D. More...
|
|
void | sides_get_coordinates (int cellID, std::vector< std::array< Point< 3 >, 4 >> *scoords) const |
| Get coordinates of side in 3D. More...
|
|
void | dual_cell_get_node_adj_cells (int const nodeid, Entity_type const ptype, std::vector< int > *adjnodes) const |
| Get adjacent "dual cells" of a given "dual cell". More...
|
|
void | dual_wedges_get_coordinates (int nodeid, std::vector< std::array< Point< 3 >, 4 >> *wcoords) const |
|
void | dual_cell_centroid (int nodeid, Point< D > *centroid) const |
| Centroid of a dual cell. More...
|
|
double | dual_cell_volume (int const nodeid) const |
| Get the volume of dual cell by finding the corners that attach to the node. More...
|
|
Jali_Mesh_Wrapper implements mesh methods for Jali.
Jali_Mesh_Wrapper implements methods required for Wonton mesh queries for the Jali mesh infrastructure. It is derived from a helper class, called AuxMeshTopology that provides the side/wedge/corner functionality. The helper class should be templated on this mesh wrapper itself because it relies on the mesh wrapper to answer some queries about the basic topology through a specific interface. This uses a template pattern called Curiously Recurring Template Pattern (CRTP) which allows this kind of mutual invocation. If the mesh wrapper has the auxiliary topology already, it can choose not to be derived from the helper class. See https://en.m.wikipedia.org/wiki/Curiously_recurring_template_pattern