68 explicit TextMesh(
int proc_count = 1,
int my_proc = 0);
78 virtual int64_t node_count()
const;
83 virtual int64_t node_count_proc()
const;
88 virtual int64_t block_count()
const;
93 virtual int64_t nodeset_count()
const;
98 int64_t nodeset_node_count(
EntityId id)
const;
103 virtual int64_t nodeset_node_count_proc(
EntityId id)
const;
108 virtual int64_t sideset_count()
const;
113 int64_t sideset_side_count(
EntityId id)
const;
119 virtual int64_t sideset_side_count_proc(
EntityId id)
const;
124 int64_t sideblock_side_count(
EntityId id,
const std::string &sideBlockName)
const;
130 virtual int64_t sideblock_side_count_proc(
EntityId id,
const std::string &sideBlockName)
const;
135 virtual int64_t element_count()
const;
140 int64_t element_count_proc()
const;
147 virtual int64_t element_count(
EntityId block_number)
const;
153 int64_t element_count_proc(
EntityId block_number)
const;
158 int64_t assembly_count()
const;
165 virtual std::pair<std::string, int> topology_type(
EntityId block_number)
const;
167 virtual int64_t communication_node_count_proc()
const;
168 virtual void node_communication_map(
Ioss::Int64Vector &map, std::vector<int> &proc);
169 virtual void owning_processor(
int *owner,
EntityId num_node);
207 virtual void connectivity(
EntityId block_number,
int *connect)
const;
216 virtual void coordinates(std::vector<double> &coord)
const;
217 virtual void coordinates(
double *coord)
const;
225 virtual void coordinates(std::vector<double> &x, std::vector<double> &y,
226 std::vector<double> &z)
const;
237 virtual void coordinates(
int component, std::vector<double> &xyz)
const;
238 virtual void coordinates(
int component,
double *xyz)
const;
257 virtual void sideblock_elem_sides(
EntityId sidesetId,
const std::string &sideBlockName,
260 virtual std::vector<std::string> sideset_touching_blocks(
EntityId set_id)
const;
264 return m_variableCount.find(type) != m_variableCount.end()
265 ? m_variableCount.find(type)->second
270 std::vector<std::string> get_part_names()
const;
271 EntityId get_part_id(
const std::string &name)
const;
274 std::vector<std::string> get_nodeset_names()
const;
275 std::string get_nodeset_name(
EntityId id)
const;
276 EntityId get_nodeset_id(
const std::string &name)
const;
279 std::vector<std::string> get_sideset_names()
const;
280 std::string get_sideset_name(
EntityId id)
const;
281 EntityId get_sideset_id(
const std::string &name)
const;
284 std::vector<std::string> get_assembly_names()
const;
285 std::string get_assembly_name(
EntityId id)
const;
286 EntityId get_assembly_id(
const std::string &name)
const;
288 std::vector<std::string> get_assembly_members(
const std::string &name)
const;
292 void update_block_omissions_from_assemblies(
Ioss::Region *region,
293 std::vector<std::string> &assemblyOmissions,
294 std::vector<std::string> &assemblyInclusions,
295 std::vector<std::string> &blockOmissions,
296 std::vector<std::string> &blockInclusions)
const;
298 unsigned spatial_dimension()
const;
300 std::vector<SideBlockInfo> get_side_block_info_for_sideset(
const std::string &name)
const;
301 std::vector<size_t> get_local_side_block_indices(
const std::string &name,
303 SplitType get_sideset_split_type(
const std::string &name)
const;
305 void compute_block_membership(
const std::string &sideSetName,
const std::string &sideBlockName,
306 std::vector<std::string> &block_membership)
const;
309 template <
typename INT>
310 void raw_element_map(
EntityId block_number, std::vector<INT> &map)
const;
311 template <
typename INT>
void raw_element_map(std::vector<INT> &map)
const;
312 template <
typename INT>
void raw_connectivity(
EntityId block_number, INT *connect)
const;
313 template <
typename INT>
void raw_node_map(std::vector<INT> &map)
const;
315 void set_variable_count(
const std::string &type,
size_t count);
319 void build_part_to_topology_map();
320 void build_block_partition_map();
321 void build_element_connectivity_map();
323 std::vector<EntityId> get_part_ids(
const std::vector<std::string> &partNames);
324 std::vector<size_t> get_part_offsets(
const std::vector<EntityId> &partIds);
328 std::set<EntityId> get_local_element_ids_for_block(
EntityId id)
const;
330 std::set<std::string> get_blocks_touched_by_sideset(
const SidesetData *sideset)
const;
332 void compute_block_membership_impl(
const SidesetData &sidesetData,
334 std::vector<std::string> &sideBlockTouchingBlockParts)
const;
336 size_t m_myProcessor{0};
338 size_t m_timestepCount{0};
Definition Iotm_TextMesh.h:64
virtual ~TextMesh()=default
ErrorHandler m_errorHandler
Definition Iotm_TextMesh.h:343
std::unordered_map< EntityId, std::vector< EntityId > > m_elementConnectivity
Definition Iotm_TextMesh.h:349
TextMeshData m_data
Definition Iotm_TextMesh.h:341
std::unordered_map< EntityId, BlockPartition > m_blockPartition
Definition Iotm_TextMesh.h:347
TextMesh(const TextMesh &)=delete
std::unordered_map< std::string, Topology > m_partToTopology
Definition Iotm_TextMesh.h:345
std::map< Ioss::EntityType, size_t > m_variableCount
Definition Iotm_TextMesh.h:339
int64_t timestep_count() const
Definition Iotm_TextMesh.h:142
size_t get_variable_count(Ioss::EntityType type) const
Definition Iotm_TextMesh.h:262
TextMesh & operator=(const TextMesh &)=delete
Definition Iotm_TextMeshTopologyMapping.h:33
Definition Iotm_TextMeshDataTypes.h:312
Definition Iotm_TextMeshDataTypes.h:214
Definition Iotm_TextMeshUtils.h:566
std::function< void(const std::ostringstream &)> ErrorHandler
Definition Iotm_TextMeshAdjacencyGraph.h:35
AssemblyType
Definition Iotm_TextMeshAssembly.h:39
SplitType
Definition Iotm_TextMeshSidesetSplitter.h:49
Definition Iotm_TextMeshAssembly.h:56
Definition Iotm_TextMeshDataTypes.h:288
Definition Iotm_TextMeshDataTypes.h:277
Definition Iotm_TextMeshNodeset.h:41
Definition Iotm_TextMeshSidesetSplitter.h:39
Definition Iotm_TextMeshSidesetSplitter.h:64
Definition Iotm_TextMeshDataTypes.h:315