18#include "ioss_export.h"
22#include <unordered_set>
23#elif defined FG_USE_HOPSCOTCH
25#elif defined FG_USE_ROBIN
38 explicit Face(std::array<size_t, 4> conn);
42 assert(element_id != 0);
56 void add_element(
size_t element_id,
size_t face_ordinal)
const
61 void face_element_error(
size_t element_id)
const;
113#if defined FG_USE_STD
115#elif defined FG_USE_HOPSCOTCH
118#elif defined FG_USE_ROBIN
127 static size_t id_hash(
size_t global_id);
129 template <
typename INT>
130 void generate_faces(INT ,
bool block_by_block =
false,
bool local_ids =
false);
131 template <
typename INT>
133 bool local_ids =
false);
147 void progress(
const std::string &output)
const;
150 template <
typename INT>
void hash_node_ids(
const std::vector<INT> &node_ids);
151 void hash_local_node_ids(
size_t count);
152 template <
typename INT>
void generate_model_faces(INT ,
bool local_ids);
155 std::map<std::string, FaceUnorderedSet>
faces_;
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:56
A collection of elements having the same topology.
Definition Ioss_ElementBlock.h:29
Ioss::Region & region_
Definition Ioss_FaceGenerator.h:154
IOSS_NODISCARD FaceUnorderedSet & faces(const std::string &name="ALL")
Definition Ioss_FaceGenerator.h:135
std::map< std::string, FaceUnorderedSet > faces_
Definition Ioss_FaceGenerator.h:155
IOSS_NODISCARD size_t node_id_hash(size_t local_node_id) const
Given a local node id (0-based), return the hashed value.
Definition Ioss_FaceGenerator.h:142
void generate_faces(INT, bool block_by_block=false, bool local_ids=false)
Definition Ioss_FaceGenerator.C:344
FaceGenerator(Ioss::Region ®ion)
Definition Ioss_FaceGenerator.C:321
std::vector< size_t > hashIds_
Definition Ioss_FaceGenerator.h:156
void clear(const std::string &name)
Definition Ioss_FaceGenerator.h:138
void generate_block_faces(const ElementBlockContainer &ebs, INT, bool local_ids=false)
Definition Ioss_FaceGenerator.C:379
static size_t id_hash(size_t global_id)
Definition Ioss_FaceGenerator.C:308
Definition Ioss_FaceGenerator.h:34
std::array< size_t, 4 > connectivity_
Definition Ioss_FaceGenerator.h:79
Face(size_t id, std::array< size_t, 4 > conn)
Definition Ioss_FaceGenerator.h:37
size_t hashId_
Definition Ioss_FaceGenerator.h:63
std::array< size_t, 2 > element
Definition Ioss_FaceGenerator.h:78
void add_element(size_t element_id) const
Definition Ioss_FaceGenerator.h:40
void face_element_error(size_t element_id) const
Definition Ioss_FaceGenerator.C:295
int element_count() const
Definition Ioss_FaceGenerator.h:54
void add_element(size_t element_id, size_t face_ordinal) const
Definition Ioss_FaceGenerator.h:56
A grouping entity that contains other grouping entities.
Definition Ioss_Region.h:93
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40
std::vector< ElementBlock * > ElementBlockContainer
Definition Ioss_Region.h:69
tsl::robin_pg_set< Face, FaceHash, FaceEqual > FaceUnorderedSet
Definition Ioss_FaceGenerator.h:120
hopscotch_set< Key, Hash, KeyEqual, Allocator, NeighborhoodSize, StoreHash, tsl::hh::prime_growth_policy > hopscotch_pg_set
Definition hopscotch_set.h:595
robin_set< Key, Hash, KeyEqual, Allocator, StoreHash, tsl::rh::prime_growth_policy > robin_pg_set
Definition robin_set.h:663
Definition Ioss_FaceGenerator.h:88
bool operator()(const Face &left, const Face &right) const
Definition Ioss_FaceGenerator.h:89
Definition Ioss_FaceGenerator.h:83
size_t operator()(const Face &face) const
Definition Ioss_FaceGenerator.h:84