34 #ifndef IOSS_Iofx_DatabaseIO_h 35 #define IOSS_Iofx_DatabaseIO_h 69 class StructuredBlock;
71 class ElementTopology;
75 struct CommunicationMetaData;
97 bool ok__(
bool write_message =
false, std::string *error_msg =
nullptr,
98 int *bad_count =
nullptr)
const override;
100 void get_step_times__()
override;
102 bool open_input_file(
bool write_message, std::string *error_msg,
int *bad_count,
103 bool abort_if_error)
const;
104 bool handle_output_file(
bool write_message, std::string *error_msg,
int *bad_count,
105 bool overwrite,
bool abort_if_error)
const;
106 bool check_valid_file_ptr(
bool write_message, std::string *error_msg,
int *bad_count,
107 bool abort_if_error)
const;
110 size_t data_size)
const override;
112 size_t data_size)
const override;
114 size_t data_size)
const override;
116 size_t data_size)
const override;
118 size_t data_size)
const override;
120 void *data,
size_t data_size)
const override 126 size_t data_size)
const override;
128 size_t data_size)
const override;
130 size_t data_size)
const override;
132 size_t data_size)
const override;
134 size_t data_size)
const override;
136 size_t data_size)
const override;
138 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;
149 size_t data_size)
const override;
151 size_t data_size)
const override;
153 size_t data_size)
const override;
155 size_t data_size)
const override;
157 size_t data_size)
const override;
159 size_t data_size)
const override;
161 size_t data_size)
const override;
163 size_t data_size)
const override;
166 void *data,
size_t data_size)
const override 170 int64_t put_Xset_field_internal(ex_entity_type type,
const Ioss::EntitySet *ns,
171 const Ioss::Field &field,
void *data,
size_t data_size)
const;
172 int64_t get_Xset_field_internal(ex_entity_type type,
const Ioss::EntitySet *ns,
173 const Ioss::Field &field,
void *data,
size_t data_size)
const;
180 int64_t read_nodal_coordinates();
183 void compute_node_status()
const;
186 void read_meta_data__()
override;
187 void read_communication_metadata();
193 int64_t read_attribute_field(ex_entity_type type,
const Ioss::Field &field,
196 int64_t write_attribute_field(ex_entity_type type,
const Ioss::Field &field,
200 int64_t read_ss_transient_field(
const Ioss::Field &field, int64_t
id,
void *variables,
201 std::vector<int> &is_valid_side)
const;
204 void write_nodal_transient_field(ex_entity_type type,
const Ioss::Field &field,
206 void *variables)
const;
208 void write_entity_transient_field(ex_entity_type type,
const Ioss::Field &field,
210 void *variables)
const;
211 void write_meta_data()
override;
216 void get_edgeblocks();
217 void get_faceblocks();
218 void get_elemblocks();
219 void get_blocks(ex_entity_type
entity_type,
int rank_offset,
const std::string &basename);
223 template <
typename T>
224 void get_sets(ex_entity_type type, int64_t count,
const std::string &base,
234 const Ioss::Map &get_map(ex_entity_type type)
const;
235 const Ioss::Map &get_map(
Ioss::Map &entity_map, int64_t entityCount, ex_entity_type entity_type,
236 ex_inquiry inquiry_type)
const;
239 int64_t handle_node_ids(
void *ids, int64_t num_to_get)
const;
240 int64_t handle_element_ids(
const Ioss::ElementBlock *eb,
void *ids,
size_t num_to_get)
const;
241 int64_t handle_face_ids(
const Ioss::FaceBlock *eb,
void *ids,
size_t num_to_get)
const;
242 int64_t handle_edge_ids(
const Ioss::EdgeBlock *eb,
void *ids,
size_t num_to_get)
const;
244 int64_t get_side_connectivity(
const Ioss::SideBlock *fb, int64_t
id, int64_t my_side_count,
245 void *fconnect,
bool map_ids)
const;
246 template <
typename INT>
247 int64_t get_side_connectivity_internal(
const Ioss::SideBlock *fb, int64_t
id,
248 int64_t side_count,
INT *fconnect,
bool map_ids)
const;
249 int64_t get_side_distributions(
const Ioss::SideBlock *fb, int64_t
id, int64_t my_side_count,
250 double *dist_fact,
size_t data_size)
const;
253 size_t data_size)
const;
255 size_t data_size)
const;
257 mutable bool isSerialParallel{
The main namespace for the Ioss library.
Definition: Iocgns_DatabaseIO.h:50
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
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
int64_t put_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Iofx_DatabaseIO.h:165
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:61
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
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:98
A collection of elements.
Definition: Ioss_ElementSet.h:54
int64_t get_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Iofx_DatabaseIO.h:119
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition: Ioss_DBUsage.h:40
A namespace for the exodus database format.
Definition: Ioex_IOFactory.C:61
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
int INT
Definition: Ioss_StructuredBlock.h:53
Definition: Ioss_Map.h:52
Definition: Ioss_CommSet.h:51
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: Iofx_DatabaseIO.h:82
Definition: Ioex_DatabaseIO.h:96
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
~DatabaseIO() override
Definition: Iofx_DatabaseIO.h:89
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
A namespace for the file-per-process version of the parallel exodus database format.
Definition: Iofx_DatabaseIO.C:157