34 #ifndef IOSS_Iopx_DatabaseIO_h 35 #define IOSS_Iopx_DatabaseIO_h 54 class DecompositionDataBase;
62 class ElementTopology;
75 class PropertyManager;
79 class StructuredBlock;
98 void compute_node_status()
const;
100 void release_memory__()
override;
107 bool ok__(
bool write_message =
false, std::string *
error_message =
nullptr,
108 int *bad_count =
nullptr)
const override;
110 void get_step_times__()
override;
112 bool open_input_file(
bool write_message, std::string *error_msg,
int *bad_count,
113 bool abort_if_error)
const;
114 bool handle_output_file(
bool write_message, std::string *error_msg,
int *bad_count,
115 bool overwrite,
bool abort_if_error)
const;
116 bool check_valid_file_ptr(
bool write_message, std::string *error_msg,
int *bad_count,
117 bool abort_if_error)
const;
120 size_t data_size)
const override;
122 size_t data_size)
const override;
124 size_t data_size)
const override;
126 size_t data_size)
const override;
128 size_t data_size)
const override;
130 void *data,
size_t data_size)
const override 135 size_t data_size)
const override;
137 size_t data_size)
const override;
139 size_t data_size)
const override;
141 size_t data_size)
const override;
143 size_t data_size)
const override;
145 size_t data_size)
const override;
147 size_t data_size)
const override;
150 size_t data_size)
const override;
152 size_t data_size)
const override;
154 size_t data_size)
const override;
156 size_t data_size)
const override;
158 size_t data_size)
const override;
160 size_t data_size)
const override;
162 size_t data_size)
const override;
164 size_t data_size)
const override;
166 size_t data_size)
const override;
168 size_t data_size)
const override;
170 size_t data_size)
const override;
172 size_t data_size)
const override;
174 void *data,
size_t data_size)
const override 179 int64_t put_Xset_field_internal(ex_entity_type type,
const Ioss::EntitySet *ns,
180 const Ioss::Field &field,
void *data,
size_t data_size)
const;
181 int64_t get_Xset_field_internal(ex_entity_type type,
const Ioss::EntitySet *ns,
182 const Ioss::Field &field,
void *data,
size_t data_size)
const;
185 int free_file_pointer()
const override;
187 int64_t read_nodal_coordinates();
190 void create_implicit_global_map()
const;
191 void output_node_map()
const;
194 void read_meta_data__()
override;
200 int64_t read_attribute_field(ex_entity_type type,
const Ioss::Field &field,
203 int64_t write_attribute_field(ex_entity_type type,
const Ioss::Field &field,
207 int64_t read_ss_transient_field(
const Ioss::Field &field, int64_t
id,
void *variables,
208 std::vector<int> &is_valid_side)
const;
211 void write_nodal_transient_field(ex_entity_type type,
const Ioss::Field &field,
213 void *variables)
const;
215 void write_entity_transient_field(ex_entity_type type,
const Ioss::Field &field,
217 void *variables)
const;
218 void write_meta_data()
override;
222 void get_edgeblocks();
223 void get_faceblocks();
224 void get_elemblocks();
225 void get_blocks(ex_entity_type
entity_type,
int rank_offset,
const std::string &basename);
229 template <
typename T>
230 void get_sets(ex_entity_type type, int64_t count,
const std::string &base,
const T *);
239 const Ioss::Map &get_map(ex_entity_type type)
const;
240 const Ioss::Map &get_map(
Ioss::Map &entity_map, int64_t entityCount, int64_t file_offset,
241 int64_t file_count, ex_entity_type entity_type,
242 ex_inquiry inquiry_type)
const;
245 int64_t handle_node_ids(
void *ids, int64_t num_to_get,
size_t offset,
size_t count)
const;
246 int64_t handle_element_ids(
const Ioss::ElementBlock *eb,
void *ids,
size_t num_to_get,
247 size_t offset,
size_t count)
const;
248 int64_t handle_face_ids(
const Ioss::FaceBlock *eb,
void *ids,
size_t num_to_get)
const;
249 int64_t handle_edge_ids(
const Ioss::EdgeBlock *eb,
void *ids,
size_t num_to_get)
const;
251 int64_t get_side_connectivity(
const Ioss::SideBlock *fb, int64_t
id, int64_t side_count,
252 void *fconnect,
bool map_ids)
const;
253 int64_t get_side_distributions(
const Ioss::SideBlock *fb, int64_t
id, int64_t my_side_count,
254 double *dist_fact,
size_t data_size)
const;
257 size_t data_size)
const;
259 size_t data_size)
const;
262 mutable std::unique_ptr<DecompositionDataBase>
decomp;
276 mutable bool metaDataWritten{
false};
int64_t put_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Iopx_DatabaseIO.h:173
The main namespace for the Ioss library.
Definition: Iocgns_DatabaseIO.h:50
Ioss::Int64Vector nodeGlobalImplicitMap
Definition: Iopx_DatabaseIO.h:266
Base class for all 'set'-type grouping entities, which means that members of the set are not necessar...
Definition: Ioss_EntitySet.h:61
A collection of nodes.
Definition: Ioss_NodeSet.h:53
A collection of element faces with the same topology.
Definition: Ioss_FaceBlock.h:53
A collection of element faces.
Definition: Ioss_FaceSet.h:54
Base class for all 'grouping' entities. The following derived classes are typical: ...
Definition: Ioss_GroupingEntity.h:93
std::map< const Ioss::GroupingEntity *, Ioss::Int64Vector > nodesetOwnedNodes
Definition: Iopx_DatabaseIO.h:274
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
Ioss::Int64Vector elemGlobalImplicitMap
Definition: Iopx_DatabaseIO.h:268
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:61
std::vector< int > IntVector
Definition: Ioss_CodeTypes.h:42
Definition: Iopx_DatabaseIO.h:86
A collection of elements having the same topology.
Definition: Ioss_ElementBlock.h:48
std::map< std::string, int, std::less< std::string > > VariableNameMap
Definition: Ioex_DatabaseIO.h:80
int64_t get_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Iopx_DatabaseIO.h:129
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:98
A collection of elements.
Definition: Ioss_ElementSet.h:54
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition: Ioss_DBUsage.h:40
Definition: Iopx_DatabaseIO.h:57
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
bool needs_shared_node_information() const override
Determine whether the database needs information about process ownership of nodes.
Definition: Iopx_DatabaseIO.h:95
std::vector< int64_t > Int64Vector
Definition: Ioss_CodeTypes.h:43
std::unique_ptr< DecompositionDataBase > decomp
Definition: Iopx_DatabaseIO.h:262
Definition: Ioss_Map.h:52
Ioss::IntVector nodeOwningProcessor
Definition: Iopx_DatabaseIO.h:264
Definition: Ioss_CommSet.h:51
A namespace for the decompose-on-the-fly version of the parallel exodus database format.
Definition: Iopx_DatabaseIO.C:249
int get_file_pointer()
Definition: Iodw_DatabaseIO.C:64
A grouping entity that contains other grouping entities.
Definition: Ioss_Region.h:98
A collection of element sides.
Definition: Ioss_SideSet.h:59
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
int MPI_Comm
Definition: Ioss_CodeTypes.h:79
Definition: Ioex_DatabaseIO.h:96
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
entity_type
Definition: Iovs_DatabaseIO.C:81
std::vector< char > data
Definition: Ioss_Utils.C:78
A collection of element edges with the same topology.
Definition: Ioss_EdgeBlock.h:53
void error_message(const Ioss::Field &field, Ioss::Field::BasicType requested_type)
Definition: Ioss_Field.C:63