Go to the documentation of this file.
34 #ifndef IOCGNS_DECOMPOSITONDATA_H
35 #define IOCGNS_DECOMPOSITONDATA_H
38 #include <unordered_map>
43 #include <unordered_map>
44 #elif defined USE_HOPSCOTCH
46 #elif defined USE_ROBIN
64 #if !defined(NO_PARMETIS_SUPPORT)
70 #if !defined(NO_ZOLTAN_SUPPORT)
71 #include <zoltan_cpp.h>
109 virtual std::vector<double> &
centroids() = 0;
118 void get_element_field(
int filePtr,
int solution_index,
int blk_seq,
int field_index,
121 void get_node_field(
int filePtr,
int solution_index,
int field_index,
double *
data)
const;
126 template <
typename T>
129 template <
typename T>
143 using ZoneSharedMap = std::unordered_map<cgsize_t, cgsize_t>;
144 #elif defined USE_HOPSCOTCH
147 #elif defined USE_ROBIN
178 template <
typename T>
181 m_decomposition.communicate_element_data(file_data, ioss_data, comp_count);
185 size_t comp_count)
const
187 m_decomposition.communicate_set_data(file_data, ioss_data, set, comp_count);
190 template <
typename T>
193 m_decomposition.communicate_node_data(file_data, ioss_data, comp_count);
196 template <
typename U,
typename T>
200 m_decomposition.communicate_block_data(file_data, ioss_data, block, comp_count);
205 void get_element_field(
int filePtr,
int solution_index,
int blk_seq,
int field_index,
208 void get_node_field(
int filePtr,
int solution_index,
int field_index,
double *
data)
const;
std::vector< Iocgns::StructuredZoneData * > m_structuredZones
Definition: Iocgns_DecompositionData.h:138
ZoneSharedMap m_zoneSharedMap
Definition: Iocgns_DecompositionData.h:150
std::vector< Ioss::BlockDecompositionData > m_elementBlocks
Definition: Iocgns_DecompositionData.h:136
MeshType
The mesh type – structured, unstructured, hybrid (future), or unknown.
Definition: Ioss_MeshType.h:39
void generate_adjacency_list(int fileId, Ioss::Decomposition< INT > &decomposition)
Definition: Iocgns_DecompositionData.C:606
size_t decomp_elem_offset() const
Definition: Iocgns_DecompositionData.h:173
virtual size_t ioss_node_count() const =0
std::string m_lineDecomposition
Definition: Iocgns_DecompositionData.h:269
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
void get_sideset_element_side(int filePtr, const Ioss::SetDecompositionData &sset, INT *data) const
Definition: Iocgns_DecompositionData.C:1022
size_t global_elem_count() const
Definition: Iocgns_DecompositionData.h:166
size_t decomp_elem_count() const
Definition: Iocgns_DecompositionData.h:174
void decompose_unstructured(int filePtr)
Definition: Iocgns_DecompositionData.C:367
virtual size_t global_elem_count() const =0
void communicate_node_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iocgns_DecompositionData.C:1134
std::vector< ZoneData > m_zones
Definition: Iocgns_DecompositionData.h:135
Definition: Iocgns_DecompositionData.h:80
void get_element_field(int filePtr, int solution_index, int blk_seq, int field_index, double *data) const
Definition: Iocgns_DecompositionData.C:1102
void get_node_field(int filePtr, int solution_index, int field_index, double *data) const
Definition: Iocgns_DecompositionData.C:978
size_t decomp_node_offset() const
Definition: Iocgns_DecompositionData.h:171
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
DecompositionData(const Ioss::PropertyManager &props, MPI_Comm communicator)
Definition: Iocgns_DecompositionData.C:215
bool i_own_node(size_t node) const
Definition: Iocgns_DecompositionData.h:222
Definition: Iocgns_DecompositionData.h:153
void get_block_connectivity(int filePtr, void *data, int blk_seq) const
Definition: Iocgns_DecompositionData.C:1195
void get_node_entity_proc_data(void *entity_proc, const Ioss::MapContainer &node_map, bool do_map) const
Definition: Iocgns_DecompositionData.C:1178
virtual ~DecompositionDataBase()
Definition: Iocgns_DecompositionData.C:1117
void decompose_structured(int filePtr)
Definition: Iocgns_DecompositionData.C:260
int INT
Definition: Ioss_StructuredBlock.h:53
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
void build_global_to_local_elem_map()
Definition: Iocgns_DecompositionData.h:247
size_t global_node_count() const
Definition: Iocgns_DecompositionData.h:165
double m_loadBalanceThreshold
Definition: Iocgns_DecompositionData.h:268
Definition: Ioss_Decomposition.h:57
virtual size_t decomp_node_offset() const =0
void get_node_coordinates(int filePtr, double *ioss_data, const Ioss::Field &field) const
Definition: Iocgns_DecompositionData.C:928
std::vector< Ioss::SetDecompositionData > m_sideSets
Definition: Iocgns_DecompositionData.h:137
size_t get_commset_node_size() const
Definition: Iocgns_DecompositionData.h:210
bool i_own_elem(size_t elem) const
Definition: Iocgns_DecompositionData.h:228
void get_element_field(int filePtr, int solution_index, int blk_seq, int field_index, double *data) const
Definition: Iocgns_DecompositionData.C:1210
virtual size_t decomp_elem_offset() const =0
int int_size() const
Definition: Iocgns_DecompositionData.h:159
void communicate_element_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iocgns_DecompositionData.h:179
int spatial_dimension() const
Definition: Iocgns_DecompositionData.h:163
void get_file_node_coordinates(int filePtr, int direction, double *ioss_data) const
Definition: Iocgns_DecompositionData.C:884
void decompose_model(int filePtr, Ioss::MeshType mesh_type)
Definition: Iocgns_DecompositionData.C:236
size_t decomp_node_count() const
Definition: Iocgns_DecompositionData.h:172
void get_sideset_element_side(int filePtr, const Ioss::SetDecompositionData &sset, void *data) const
Definition: Iocgns_DecompositionData.C:1242
size_t m_elementOffset
Definition: Iocgns_DecompositionData.h:86
size_t ioss_node_count() const
Definition: Iocgns_DecompositionData.h:168
DecompositionDataBase()
Definition: Iocgns_DecompositionData.h:92
Definition: Ioss_Decomposition.h:104
Definition: Iocgns_DecompositionData.h:89
virtual size_t decomp_elem_count() const =0
virtual void decompose_model(int filePtr, Ioss::MeshType mesh_type)=0
void communicate_set_data(INT *file_data, INT *ioss_data, const Ioss::SetDecompositionData &set, size_t comp_count) const
Definition: Iocgns_DecompositionData.h:184
size_t ioss_elem_count() const
Definition: Iocgns_DecompositionData.h:169
void get_sideset_data(int filePtr)
Definition: Iocgns_DecompositionData.C:773
void communicate_element_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iocgns_DecompositionData.C:1162
std::vector< double > & centroids()
Definition: Iocgns_DecompositionData.h:176
virtual int int_size() const =0
void communicate_block_data(U *file_data, T *ioss_data, const Ioss::BlockDecompositionData &block, size_t comp_count) const
Definition: Iocgns_DecompositionData.h:197
Definition: bhopscotch_map.h:58
virtual size_t ioss_elem_count() const =0
size_t m_nodeOffset
Definition: Iocgns_DecompositionData.h:84
Ioss::Decomposition< INT > m_decomposition
Definition: Iocgns_DecompositionData.h:272
Definition: Iocgns_DecompositionData.h:75
void get_shared_node_list()
Definition: Iocgns_DecompositionData.h:261
std::vector< char > data
Definition: cth_pressure_map.C:74
virtual size_t decomp_node_count() const =0
void get_element_block_communication()
Definition: Iocgns_DecompositionData.h:252
size_t elem_global_to_local(size_t global_index) const
Definition: Iocgns_DecompositionData.h:242
void get_local_node_list()
Definition: Iocgns_DecompositionData.h:263
size_t node_global_to_local(size_t global_index) const
Definition: Iocgns_DecompositionData.h:237
void get_node_field(int filePtr, int solution_index, int field_index, double *data) const
Definition: Iocgns_DecompositionData.C:1226
void communicate_node_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iocgns_DecompositionData.h:191
void get_block_connectivity(int filePtr, INT *data, int blk_seq) const
Definition: Iocgns_DecompositionData.C:1066
virtual std::vector< double > & centroids()=0
std::vector< int64_t > MapContainer
Definition: Ioss_Map.h:48
virtual size_t global_node_count() const =0
int MPI_Comm
Definition: Ioss_CodeTypes.h:96
virtual size_t get_commset_node_size() const =0
void calculate_element_centroids(int filePtr, std::vector< double > ¢roids)
virtual void get_node_coordinates(int filePtr, double *ioss_data, const Ioss::Field &field) const =0
~DecompositionData()
Definition: Iocgns_DecompositionData.h:157
A namespace for the CGNS database format.
Definition: Iocgns_DatabaseIO.C:444
size_t m_nodeCount
Definition: Iocgns_DecompositionData.h:85
std::string m_name
Definition: Iocgns_DecompositionData.h:83
void generate_zone_shared_nodes(int filePtr, INT min_node, INT max_node)
Definition: Iocgns_DecompositionData.C:494
virtual int spatial_dimension() const =0