11#if defined PARALLEL_AWARE_EXODUS
17#include "ioexnl_export.h"
24 class PropertyManager;
28 class IOEXNL_EXPORT DecompositionDataBase
32 DecompositionDataBase(
const DecompositionDataBase &) =
delete;
33 DecompositionDataBase &operator=(
const DecompositionDataBase &) =
delete;
35 virtual ~DecompositionDataBase() =
default;
52 int m_processorCount{0};
54 std::vector<Ioss::BlockDecompositionData> el_blocks;
55 std::vector<Ioss::SetDecompositionData> node_sets;
56 std::vector<Ioss::SetDecompositionData> side_sets;
59 template <
typename INT>
class DecompositionData :
public DecompositionDataBase
63 ~DecompositionData() =
default;
67 IOSS_NODISCARD int spatial_dimension()
const {
return m_decomposition.m_spatialDimension; }
69 IOSS_NODISCARD size_t global_node_count()
const {
return m_decomposition.global_node_count(); }
70 IOSS_NODISCARD size_t global_elem_count()
const {
return m_decomposition.global_elem_count(); }
72 IOSS_NODISCARD size_t ioss_node_count()
const {
return m_decomposition.ioss_node_count(); }
73 IOSS_NODISCARD size_t ioss_elem_count()
const {
return m_decomposition.ioss_elem_count(); }
75 IOSS_NODISCARD size_t decomp_node_offset()
const {
return m_decomposition.file_node_offset(); }
76 IOSS_NODISCARD size_t decomp_node_count()
const {
return m_decomposition.file_node_count(); }
77 IOSS_NODISCARD size_t decomp_elem_offset()
const {
return m_decomposition.file_elem_offset(); }
78 IOSS_NODISCARD size_t decomp_elem_count()
const {
return m_decomposition.file_elem_count(); }
80 void create_implicit_global_map(
const std::vector<int> &owning_proc,
81 std::vector<int64_t> &global_implicit_map,
Ioss::Map &node_map,
82 int64_t *locally_owned_count, int64_t *processor_offset);
85 void simple_decompose(
const std::string &method,
const std::vector<INT> &element_dist)
87 m_decomposition.simple_decompose(method, element_dist);
90 void simple_node_decompose(
const std::string &method,
const std::vector<INT> &node_dist);
93 int handle_sset_df(
int filePtr, ex_entity_id
id,
const Ioss::Field &field, T *ioss_data)
const;
98 return m_decomposition.i_own_node(node);
104 return m_decomposition.i_own_elem(elem);
110 IOSS_NODISCARD size_t node_global_to_local(
size_t global_index)
const
112 return m_decomposition.node_global_to_local(global_index);
115 IOSS_NODISCARD size_t elem_global_to_local(
size_t global_index)
const
117 return m_decomposition.elem_global_to_local(global_index);
120 void build_global_to_local_elem_map()
122 return m_decomposition.build_global_to_local_elem_map();
125 void get_shared_node_list() { m_decomposition.get_shared_node_list(); }
127 void get_local_node_list() { m_decomposition.get_local_node_list(); }
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:55
int Ioss_MPI_Comm
Definition Ioss_CodeTypes.h:64
Definition Ioss_Decomposition.h:180
Holds metadata for bulk data associated with a GroupingEntity.
Definition Ioss_Field.h:25
A collection of Ioss::Property objects.
Definition Ioss_PropertyManager.h:36
A namespace for the exodus database format.
Definition Ioexnl_BaseDatabaseIO.C:93
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40