Go to the documentation of this file.
34 #ifndef IOPX_DECOMPOSITONDATA_H
35 #define IOPX_DECOMPOSITONDATA_H
39 #if !defined(NO_PARMETIS_SUPPORT)
44 #if !defined(NO_ZOLTAN_SUPPORT)
45 #include <zoltan_cpp.h>
77 virtual std::vector<double> &
centroids() = 0;
84 std::vector<Ioss::BlockDecompositionData>
el_blocks;
106 const Ioss::Field &field,
double *ioss_data)
const;
112 virtual int get_one_attr(
int exoid, ex_entity_type obj_type, ex_entity_id obj_id,
113 int attrib_index,
double *attrib)
const = 0;
114 virtual int get_attr(
int exoid, ex_entity_type obj_type, ex_entity_id obj_id,
size_t attr_count,
115 double *attrib)
const = 0;
116 virtual int get_var(
int filePtr,
int step, ex_entity_type type,
int var_index, ex_entity_id
id,
117 int64_t num_entity, std::vector<double> &
data)
const = 0;
145 template <
typename T>
148 m_decomposition.communicate_element_data(file_data, ioss_data, comp_count);
151 template <
typename T>
153 size_t comp_count)
const
155 m_decomposition.communicate_set_data(file_data, ioss_data, set, comp_count);
158 template <
typename T>
161 m_decomposition.communicate_node_data(file_data, ioss_data, comp_count);
168 int get_attr(
int filePtr, ex_entity_type obj_type, ex_entity_id
id,
size_t attr_count,
169 double *attrib)
const;
170 int get_one_attr(
int filePtr, ex_entity_type obj_type, ex_entity_id
id,
int attrib_index,
171 double *attrib)
const;
173 int get_var(
int filePtr,
int step, ex_entity_type type,
int var_index, ex_entity_id
id,
174 int64_t num_entity, std::vector<double> &
data)
const;
176 template <
typename T>
180 size_t get_block_seq(ex_entity_type type, ex_entity_id
id)
const;
185 std::vector<int64_t> &global_implicit_map,
Ioss::Map &node_map,
186 int64_t *locally_owned_count, int64_t *processor_offset);
189 #if !defined(NO_ZOLTAN_SUPPORT)
193 #if !defined(NO_PARMETIS_SUPPORT)
194 void metis_decompose(
const std::string &method,
const std::vector<INT> &element_dist);
197 idx_t *adjacency, idx_t *elem_partition);
207 template <
typename T>
210 int get_one_set_attr(
int filePtr, ex_entity_type type, ex_entity_id
id,
int attr_index,
211 double *ioss_data)
const;
212 int get_one_node_attr(
int filePtr, ex_entity_id
id,
int attr_index,
double *ioss_data)
const;
213 int get_one_elem_attr(
int filePtr, ex_entity_id
id,
int attr_index,
double *ioss_data)
const;
215 int get_set_attr(
int filePtr, ex_entity_type type, ex_entity_id
id,
size_t comp_count,
216 double *ioss_data)
const;
217 int get_node_attr(
int filePtr, ex_entity_id
id,
size_t comp_count,
double *ioss_data)
const;
218 int get_elem_attr(
int filePtr, ex_entity_id
id,
size_t comp_count,
double *ioss_data)
const;
220 int get_node_var(
int filePtr,
int step,
int var_index, ex_entity_id
id, int64_t num_entity,
221 std::vector<double> &ioss_data)
const;
223 int get_elem_var(
int filePtr,
int step,
int var_index, ex_entity_id
id, int64_t num_entity,
224 std::vector<double> &ioss_data)
const;
226 int get_set_var(
int filePtr,
int step,
int var_index, ex_entity_type type, ex_entity_id
id,
227 int64_t num_entity, std::vector<double> &ioss_data)
const;
267 std::vector<Ioss::SetDecompositionData> &sets,
268 const std::string & set_type_name);
275 #if !defined(NO_ZOLTAN_SUPPORT)
std::vector< double > & centroids()
Definition: Iopx_DecompositionData.h:143
size_t global_elem_count() const
Definition: Iopx_DecompositionData.h:133
size_t get_commset_node_size() const
Definition: Iopx_DecompositionData.h:166
int handle_sset_df(int filePtr, ex_entity_id id, const Ioss::Field &field, T *ioss_data) const
Definition: Iopx_DecompositionData.C:1496
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
void communicate_node_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iopx_DecompositionData.h:159
int get_set_mesh_var(int filePtr, ex_entity_type type, ex_entity_id id, const Ioss::Field &field, void *ioss_data) const
Definition: Iopx_DecompositionData.C:995
virtual std::vector< double > & centroids()=0
virtual size_t decomp_elem_offset() const =0
int get_one_elem_attr(int filePtr, ex_entity_id id, int attr_index, double *ioss_data) const
Definition: Iopx_DecompositionData.C:1262
size_t decomp_node_offset() const
Definition: Iopx_DecompositionData.h:138
void simple_decompose(const std::string &method, const std::vector< INT > &element_dist)
Definition: Iopx_DecompositionData.h:200
~DecompositionData()
Definition: Iopx_DecompositionData.h:124
void get_local_node_list()
Definition: Iopx_DecompositionData.h:283
virtual size_t decomp_elem_count() const =0
int get_one_set_attr(int filePtr, ex_entity_type type, ex_entity_id id, int attr_index, double *ioss_data) const
Definition: Iopx_DecompositionData.C:1147
void internal_metis_decompose(const std::string &method, idx_t *element_dist, idx_t *pointer, idx_t *adjacency, idx_t *elem_partition)
void calculate_element_centroids(int filePtr, const std::vector< INT > &node_dist)
int get_elem_var(int filePtr, int step, int var_index, ex_entity_id id, int64_t num_entity, std::vector< double > &ioss_data) const
Definition: Iopx_DecompositionData.C:1217
int get_attr(int filePtr, ex_entity_type obj_type, ex_entity_id id, size_t attr_count, double *attrib) const
Definition: Iopx_DecompositionData.C:863
int get_node_coordinates(int filePtr, double *ioss_data, const Ioss::Field &field) const
Definition: Iopx_DecompositionData.C:737
virtual int get_var(int filePtr, int step, ex_entity_type type, int var_index, ex_entity_id id, int64_t num_entity, std::vector< double > &data) const =0
int get_set_var(int filePtr, int step, int var_index, ex_entity_type type, ex_entity_id id, int64_t num_entity, std::vector< double > &ioss_data) const
Definition: Iopx_DecompositionData.C:1099
void communicate_node_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iopx_DecompositionData.C:916
void get_element_block_communication()
Definition: Iopx_DecompositionData.h:259
Definition: Iopx_DecompositionData.h:57
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
void get_shared_node_list()
Definition: Iopx_DecompositionData.h:279
void generate_adjacency_list(int filePtr, Ioss::Decomposition< INT > &decomposition)
Definition: Iopx_DecompositionData.C:249
void get_node_entity_proc_data(void *entity_proc, const Ioss::MapContainer &node_map, bool do_map) const
Definition: Iopx_DecompositionData.C:960
int int_size() const
Definition: Iopx_DecompositionData.h:126
void zoltan_decompose(const std::string &method)
bool i_own_node(size_t node) const
Definition: Iopx_DecompositionData.h:229
int get_node_attr(int filePtr, ex_entity_id id, size_t comp_count, double *ioss_data) const
Definition: Iopx_DecompositionData.C:1187
Ioss::Decomposition< INT > m_decomposition
Definition: Iopx_DecompositionData.h:286
A namespace for the decompose-on-the-fly version of the parallel exodus database format.
Definition: Iopx_DatabaseIO.C:233
MPI_Comm comm_
Definition: Iopx_DecompositionData.h:79
std::vector< Ioss::BlockDecompositionData > el_blocks
Definition: Iopx_DecompositionData.h:84
int INT
Definition: Ioss_StructuredBlock.h:53
size_t ioss_node_count() const
Definition: Iopx_DecompositionData.h:135
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
void build_global_to_local_elem_map()
Definition: Iopx_DecompositionData.h:254
virtual size_t global_node_count() const =0
DecompositionDataBase(MPI_Comm comm)
Definition: Iopx_DecompositionData.h:60
virtual size_t decomp_node_count() const =0
virtual size_t global_elem_count() const =0
size_t decomp_elem_offset() const
Definition: Iopx_DecompositionData.h:140
void communicate_element_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iopx_DecompositionData.h:146
std::vector< Ioss::SetDecompositionData > node_sets
Definition: Iopx_DecompositionData.h:85
int get_set_attr(int filePtr, ex_entity_type type, ex_entity_id id, size_t comp_count, double *ioss_data) const
Definition: Iopx_DecompositionData.C:1124
virtual void decompose_model(int filePtr)=0
bool i_own_elem(size_t elem) const
Definition: Iopx_DecompositionData.h:235
const Ioss::SetDecompositionData & get_decomp_set(ex_entity_type type, ex_entity_id id) const
Definition: Iopx_DecompositionData.C:1027
virtual size_t ioss_node_count() const =0
void decompose_model(int filePtr)
Definition: Iopx_DecompositionData.C:152
size_t get_block_element_offset(size_t blk_seq) const
Definition: Iopx_DecompositionData.C:1088
size_t node_global_to_local(size_t global_index) const
Definition: Iopx_DecompositionData.h:244
virtual size_t ioss_elem_count() const =0
Definition: Iopx_DatabaseIO.h:57
void get_local_element_list(const ZOLTAN_ID_PTR &export_global_ids, size_t export_count)
int get_elem_attr(int filePtr, ex_entity_id id, size_t comp_count, double *ioss_data) const
Definition: Iopx_DecompositionData.C:1241
virtual size_t get_commset_node_size() const =0
size_t get_block_element_count(size_t blk_seq) const
Definition: Iopx_DecompositionData.C:1073
int get_one_node_attr(int filePtr, ex_entity_id id, int attr_index, double *ioss_data) const
Definition: Iopx_DecompositionData.C:1202
void get_sideset_data(int filePtr, size_t set_count)
Definition: Iopx_DecompositionData.C:608
std::vector< Ioss::SetDecompositionData > side_sets
Definition: Iopx_DecompositionData.h:86
Definition: Ioss_Decomposition.h:104
int get_set_mesh_double(int filePtr, ex_entity_type type, ex_entity_id id, const Ioss::Field &field, double *ioss_data) const
Definition: Iopx_DecompositionData.C:979
int get_var(int filePtr, int step, ex_entity_type type, int var_index, ex_entity_id id, int64_t num_entity, std::vector< double > &data) const
Definition: Iopx_DecompositionData.C:842
virtual size_t decomp_node_offset() const =0
virtual int int_size() const =0
void get_block_connectivity(int filePtr, void *data, int64_t id, size_t blk_seq, size_t nnpe) const
Definition: Iopx_DecompositionData.C:1011
void get_block_connectivity(int filePtr, INT *data, int64_t id, size_t blk_seq, size_t nnpe) const
relates DecompositionData::get_block_connectivity
Definition: Iopx_DecompositionData.C:820
void create_implicit_global_map(const std::vector< int > &owning_proc, std::vector< int64_t > &global_implicit_map, Ioss::Map &node_map, int64_t *locally_owned_count, int64_t *processor_offset)
Definition: Iopx_DecompositionData.C:1688
void get_common_set_data(int filePtr, ex_entity_type set_type, std::vector< Ioss::SetDecompositionData > &sets, const std::string &set_type_name)
Definition: Iopx_DecompositionData.C:372
virtual ~DecompositionDataBase()
Definition: Iopx_DecompositionData.h:62
DecompositionData(const Ioss::PropertyManager &props, MPI_Comm communicator)
Definition: Iopx_DecompositionData.C:144
void communicate_element_data(T *file_data, T *ioss_data, size_t comp_count) const
Definition: Iopx_DecompositionData.C:944
size_t get_block_seq(ex_entity_type type, ex_entity_id id) const
Definition: Iopx_DecompositionData.C:1059
virtual int spatial_dimension() const =0
Definition: Ioss_Map.h:52
size_t ioss_elem_count() const
Definition: Iopx_DecompositionData.h:136
int get_one_attr(int filePtr, ex_entity_type obj_type, ex_entity_id id, int attrib_index, double *attrib) const
Definition: Iopx_DecompositionData.C:887
Definition: Iocgns_DecompositionData.h:75
std::vector< char > data
Definition: cth_pressure_map.C:74
void metis_decompose(const std::string &method, const std::vector< INT > &element_dist)
void communicate_set_data(T *file_data, T *ioss_data, const Ioss::SetDecompositionData &set, size_t comp_count) const
Definition: Iopx_DecompositionData.h:152
void simple_node_decompose(const std::string &method, const std::vector< INT > &node_dist)
int m_processorCount
Definition: Iopx_DecompositionData.h:82
virtual int get_node_coordinates(int filePtr, double *ioss_data, const Ioss::Field &field) const =0
size_t decomp_node_count() const
Definition: Iopx_DecompositionData.h:139
virtual int get_one_attr(int exoid, ex_entity_type obj_type, ex_entity_id obj_id, int attrib_index, double *attrib) const =0
size_t global_node_count() const
Definition: Iopx_DecompositionData.h:132
virtual int get_attr(int exoid, ex_entity_type obj_type, ex_entity_id obj_id, size_t attr_count, double *attrib) const =0
size_t decomp_elem_count() const
Definition: Iopx_DecompositionData.h:141
int get_set_mesh_var(int filePtr, ex_entity_type type, ex_entity_id id, const Ioss::Field &field, T *ioss_data) const
Definition: Iopx_DecompositionData.C:1299
std::vector< int64_t > MapContainer
Definition: Ioss_Map.h:48
int spatial_dimension() const
Definition: Iopx_DecompositionData.h:130
int MPI_Comm
Definition: Ioss_CodeTypes.h:96
int get_node_var(int filePtr, int step, int var_index, ex_entity_id id, int64_t num_entity, std::vector< double > &ioss_data) const
Definition: Iopx_DecompositionData.C:1170
void get_nodeset_data(int filePtr, size_t set_count)
Definition: Iopx_DecompositionData.C:528
int m_processor
Definition: Iopx_DecompositionData.h:81
size_t elem_global_to_local(size_t global_index) const
Definition: Iopx_DecompositionData.h:249