19#include <unordered_map>
37 using ErrorHandler = std::function<void(
const std::ostringstream &)>;
39 template <
typename EntityId,
typename Topology>
68 const std::set<int> &procsForNode =
m_textMeshData->procs_for_node(nodeId);
69 if (procsForNode.count(proc) > 0) {
111 std::vector<std::pair<EntityId, int>> &elemSidePairs)
121 size_t elemIndex = iter->first;
122 const auto &faceConnections = iter->second;
124 std::vector<bool> hasConnection(faceConnections.numSides,
false);
125 for (
const auto &connection : faceConnections.connections) {
126 hasConnection[connection.thisSide - 1] =
true;
129 for (
unsigned i = 0; i < faceConnections.numSides; i++) {
130 if (!hasConnection[i]) {
133 elemSidePairs.push_back(std::make_pair(elemId, side));
143 bool skinAll =
false;
145 if (0 == strcasecmp(
"all", block.c_str())) {
Definition Iotm_TextMeshTopologyMapping.h:33
Definition Iotm_TextMeshDataTypes.h:59
const std::vector< std::string > & get_part_names() const
Definition Iotm_TextMeshDataTypes.h:116
Definition Iotm_TextMeshAdjacencyGraph.h:86
void create_graph(int proc=ANY_PROC)
Definition Iotm_TextMeshAdjacencyGraph.h:209
std::unordered_map< size_t, FaceConnections >::const_iterator end() const
Definition Iotm_TextMeshAdjacencyGraph.h:273
std::unordered_map< size_t, FaceConnections >::const_iterator begin() const
Definition Iotm_TextMeshAdjacencyGraph.h:269
Definition Iotm_TextMeshSidesetSkinner.h:41
~SidesetSkinner()
Definition Iotm_TextMeshSidesetSkinner.h:47
int get_element_proc(const size_t elemIndex) const override
Definition Iotm_TextMeshSidesetSkinner.h:55
void reset_text_mesh_data()
Definition Iotm_TextMeshSidesetSkinner.h:161
const TextMeshData< EntityId, Topology > * m_textMeshData
Definition Iotm_TextMeshSidesetSkinner.h:163
std::vector< std::string > m_skinBlocks
Definition Iotm_TextMeshSidesetSkinner.h:164
void populate_skin_blocks(const PartIdMapping &partIds)
Definition Iotm_TextMeshSidesetSkinner.h:141
const std::vector< EntityId > & get_element_node_ids(const size_t elemIndex) const override
Definition Iotm_TextMeshSidesetSkinner.h:84
EntityId get_element_id(const size_t elemIndex) const override
Definition Iotm_TextMeshSidesetSkinner.h:98
const Topology & get_element_topology(const size_t elemIndex) const override
Definition Iotm_TextMeshSidesetSkinner.h:91
size_t get_num_elements() const override
Definition Iotm_TextMeshSidesetSkinner.h:49
void skin_blocks(const TextMeshData< EntityId, Topology > &textMeshData, std::vector< std::pair< EntityId, int > > &elemSidePairs)
Definition Iotm_TextMeshSidesetSkinner.h:110
void set_skin_blocks(const std::vector< std::string > &skinBlocks)
Definition Iotm_TextMeshSidesetSkinner.h:105
void set_text_mesh_data(const TextMeshData< EntityId, Topology > &textMeshData)
Definition Iotm_TextMeshSidesetSkinner.h:156
const std::string & get_element_block_name(const size_t elemIndex) const override
Definition Iotm_TextMeshSidesetSkinner.h:77
bool element_has_any_node_on_proc(const size_t elemIndex, int proc) const override
Definition Iotm_TextMeshSidesetSkinner.h:62
std::function< void(const std::ostringstream &)> ErrorHandler
Definition Iotm_TextMeshAdjacencyGraph.h:35
A namespace for the textmesh database format.
Definition Iotm_DatabaseIO.C:95
int64_t EntityId
Definition Iotm_TextMesh.h:33
Definition Iotm_TextMeshDataTypes.h:277
Topology topology
Definition Iotm_TextMeshDataTypes.h:280
std::string partName
Definition Iotm_TextMeshDataTypes.h:282
int proc
Definition Iotm_TextMeshDataTypes.h:278
EntityId identifier
Definition Iotm_TextMeshDataTypes.h:279
std::vector< EntityId > nodeIds
Definition Iotm_TextMeshDataTypes.h:281
Definition Iotm_TextMeshDataTypes.h:315
std::vector< ElementData< EntityId, Topology > > elementDataVec
Definition Iotm_TextMeshDataTypes.h:317
PartIdMapping partIds
Definition Iotm_TextMeshDataTypes.h:318