IOSS 2.0

Ioad_DatabaseIO.h
Go to the documentation of this file.
1 // Copyright(C) 1999-2010 National Technology & Engineering Solutions
2 // of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
3 // NTESS, the U.S. Government retains certain rights in this software.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 //
12 // * Redistributions in binary form must reproduce the above
13 // copyright notice, this list of conditions and the following
14 // disclaimer in the documentation and/or other materials provided
15 // with the distribution.
16 //
17 // * Neither the name of NTESS nor the names of its
18 // contributors may be used to endorse or promote products derived
19 // from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
33 #ifndef IOSS_Ioad_DatabaseIO_h
34 #define IOSS_Ioad_DatabaseIO_h
35
36 #include "Ioss_EntitySet.h"
37 #include "Ioss_Region.h" // for Region, SideSetContainer, etc
38 #include "Ioss_SideSet.h" // for SideBlockContainer, SideSet
39 #include <Ioss_DBUsage.h>
40 #include <Ioss_DatabaseIO.h>
41
42 #include "Ioss_Field.h" // for Field, etc
43 #include <AdiosWrapper.h>
44
45 namespace Ioss {
46 class GroupingEntity;
47 class Region;
48 class EntityBlock;
49 class NodeBlock;
50 class SideBlock;
51 class ElementBlock;
52 class NodeSet;
53 class SideSet;
54 class CommSet;
55 } // namespace Ioss
56
57 /** \brief A namespace for the adios database format.
58 */
59 namespace Ioad {
60
61 class DatabaseIO : public Ioss::DatabaseIO
62 {
63 public:
64 DatabaseIO(Ioss::Region *region, const std::string &filename, Ioss::DatabaseUsage db_usage,
65 MPI_Comm communicator, const Ioss::PropertyManager &props);
66 ~DatabaseIO();
67 DatabaseIO(const DatabaseIO &from) = delete;
68 DatabaseIO &operator=(const DatabaseIO &from) = delete;
69
70 const std::string get_format() const override {return "ADIOS2";}
71
72 bool begin__(Ioss::State state) override;
73 bool end__(Ioss::State state) override;
74
75 unsigned entity_field_support() const override;
76 int int_byte_size_db() const override;
77
78 private:
79 int64_t get_field_internal(const Ioss::Region *reg, const Ioss::Field &field, void *data,
80 size_t data_size) const override;
81 int64_t get_field_internal(const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data,
82 size_t data_size) const override;
83 int64_t get_field_internal(const Ioss::EdgeBlock *eb, const Ioss::Field &field, void *data,
84 size_t data_size) const override;
85 int64_t get_field_internal(const Ioss::FaceBlock *fb, const Ioss::Field &field, void *data,
86 size_t data_size) const override;
87 int64_t get_field_internal(const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data,
88 size_t data_size) const override;
89 int64_t get_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field,
90 void *data, size_t data_size) const override
91 {
92 return -1;
93 }
94 int64_t get_field_internal(const Ioss::SideBlock *sb, const Ioss::Field &field, void *data,
95 size_t data_size) const override;
96 int64_t get_field_internal(const Ioss::NodeSet *ns, const Ioss::Field &field, void *data,
97 size_t data_size) const override;
98 int64_t get_field_internal(const Ioss::EdgeSet *es, const Ioss::Field &field, void *data,
99 size_t data_size) const override;
100 int64_t get_field_internal(const Ioss::FaceSet *fs, const Ioss::Field &field, void *data,
101 size_t data_size) const override;
102 int64_t get_field_internal(const Ioss::ElementSet *es, const Ioss::Field &field, void *data,
103 size_t data_size) const override;
104 int64_t get_field_internal(const Ioss::SideSet *ss, const Ioss::Field &field, void *data,
105 size_t data_size) const override;
106 int64_t get_field_internal(const Ioss::CommSet *cs, const Ioss::Field &field, void *data,
107 size_t data_size) const override;
108
109 int64_t get_field_internal_t(const Ioss::GroupingEntity *entity, const Ioss::Field &field,
110 void *data, size_t data_size) const;
111 template <typename T>
112 void get_data(void *data, const std::string &encoded_name,
113 bool use_step_selection = false) const;
114
115 int64_t put_field_internal(const Ioss::Region *reg, const Ioss::Field &field, void *data,
116 size_t data_size) const override;
117 int64_t put_field_internal(const Ioss::NodeBlock *nb, const Ioss::Field &field, void *data,
118 size_t data_size) const override;
119 int64_t put_field_internal(const Ioss::EdgeBlock *eb, const Ioss::Field &field, void *data,
120 size_t data_size) const override;
121 int64_t put_field_internal(const Ioss::FaceBlock *fb, const Ioss::Field &field, void *data,
122 size_t data_size) const override;
123 int64_t put_field_internal(const Ioss::ElementBlock *eb, const Ioss::Field &field, void *data,
124 size_t data_size) const override;
125 int64_t put_field_internal(const Ioss::SideBlock *sb, const Ioss::Field &field, void *data,
126 size_t data_size) const override;
127 int64_t put_field_internal(const Ioss::NodeSet *ns, const Ioss::Field &field, void *data,
128 size_t data_size) const override;
129 int64_t put_field_internal(const Ioss::EdgeSet *es, const Ioss::Field &field, void *data,
130 size_t data_size) const override;
131 int64_t put_field_internal(const Ioss::FaceSet *fs, const Ioss::Field &field, void *data,
132 size_t data_size) const override;
133 int64_t put_field_internal(const Ioss::ElementSet *es, const Ioss::Field &field, void *data,
134 size_t data_size) const override;
135 int64_t put_field_internal(const Ioss::SideSet *ss, const Ioss::Field &field, void *data,
136 size_t data_size) const override;
137 int64_t put_field_internal(const Ioss::CommSet *cs, const Ioss::Field &field, void *data,
138 size_t data_size) const override;
139 int64_t put_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field,
140 void *data, size_t data_size) const override
141 {
142 return -1;
143 }
144 template <typename T>
145 int64_t put_field_internal_t(T entity, const Ioss::Field &field, void *data,
146 size_t data_size) const;
147 void define_model(Ioss::Field::RoleType *role = nullptr);
148 // Model definition that should not be re-defined when defining transient variables.
149 void define_global_variables();
150 template <typename T> T get_attribute(const std::string &attribute_name);
151
152 template <typename T> void put_data(void *data, const std::string &encoded_name) const;
153 template <typename T, typename = typename std::enable_if<
154 !std::is_base_of<Ioss::EntitySet, T>::value, T>::type>
155 void put_var_type(const Ioss::Field &field, const std::string &encoded_name,
156 bool transformed_field) const;
157 template <typename T>
158 void define_model_internal(const Ioss::Field &field, const std::string &encoded_name,
159 const std::string &entity_type, const std::string &field_name);
160 template <typename T>
161 void define_entity_internal(const T &entity_blocks, Ioss::Field::RoleType *role);
162
163 int get_current_state() const;
164
165 struct BlockInfoType
166 {
167 std::vector<size_t> steps;
168 adios2::Dims Count;
169 size_t global_size{0};
170 };
171
172 struct FieldInfoType
173 {
174 // Information contained in block infos.
175 std::vector<size_t> steps;
176 size_t node_boundaries_size = 0;
177 size_t component_count = 0;
178 // Contained in metavariables
179 Ioss::Field::RoleType role;
180 std::string variable_type;
181 Ioss::Field::BasicType basic_type;
182 std::string topology;
183 std::string parent_topology;
184 };
185
186 template <typename T> BlockInfoType get_block_infos(const adios2::Variable<T> &var) const;
187
188 template <typename T> FieldInfoType get_variable_infos(const std::string &var_name) const;
189 using GlobalMapType = std::map<std::string, std::pair<std::string, std::string>>;
190 using EntityMapType = std::map<std::string, GlobalMapType>;
191 using FieldsMapType = std::map<std::string, EntityMapType>;
192
193 template <typename T>
194 std::string get_property_value(const FieldsMapType &properties_map,
195 const std::string &entity_type, const std::string &entity_name,
196 const std::string &property_name) const;
197
198 template <typename T>
199 FieldInfoType get_expected_variable_infos_from_map(const EntityMapType &fields_map,
200 const std::string & entity_type,
201 const std::string & entity_name,
202 const std::string & var_name) const;
203 FieldInfoType get_variable_infos_from_map(const EntityMapType &fields_map,
204 const std::string & entity_type,
205 const std::string & entity_name,
206 const std::string & var_name) const;
207
208 template <typename T>
209 using IsIossEntityBlock =
210 typename std::enable_if<std::is_base_of<Ioss::EntityBlock, T>::value>::type;
211 template <typename T>
212 using IsNotIossEntityBlock =
213 typename std::enable_if<!std::is_base_of<Ioss::EntityBlock, T>::value>::type;
214
215 template <typename T, typename = IsIossEntityBlock<T>>
216 void define_entity_meta_variables(const std::string &encoded_name);
217
218 template <typename T, typename = IsNotIossEntityBlock<T>, typename = void>
219 void define_entity_meta_variables(const std::string &encoded_name);
220
221 void define_field_meta_variables(const std::string &);
222 void define_coordinate_frames_internal(const Ioss::CoordinateFrameContainer &coordinate_frames);
223 std::string encoded_coordinate_frame_name(Ioss::CoordinateFrame coordinate_frame);
224
225 void put_meta_variables(const std::string &encoded_name, const Ioss::Field &field,
226 const std::string &entity_type, const std::string &field_name) const;
227 void write_meta_data();
228
229 template <typename T>
230 void add_entity_property(Ioss::GroupingEntity *ge, const std::string &encoded_name,
231 const std::string &var_name);
232 void add_entity_properties(Ioss::GroupingEntity *ge, const FieldsMapType &properties_map,
233 std::string name = "");
234
235 void write_properties(const Ioss::GroupingEntity *const entity,
236 const std::string & encoded_name);
237
238 template <typename T> int64_t write_meta_data_container(const T &entity_blocks);
239 std::pair<int64_t, int64_t>
240 write_meta_data_sideblockcontainer(const Ioss::SideBlockContainer &entity_blocks);
241
242 template <typename T>
243 int64_t get_entities(const FieldsMapType &fields_map, const FieldsMapType &properties_map);
244 std::string get_optional_string_variable(const std::string &field_name,
245 const std::string &string_variable) const;
246
247 void get_globals(const GlobalMapType &globals_map, const FieldsMapType &properties_map);
248 void compute_block_membership__(Ioss::SideBlock * efblock,
249 std::vector<std::string> &block_membership) const override;
250 void define_properties(const Ioss::GroupingEntity *entity_block,
251 const std::string & encoded_entity_name);
252
253 void read_meta_data__() override;
254 void read_communication_metadata();
255 void read_region(const FieldsMapType &fields_map);
256 void check_processor_info();
257 void check_model();
258
259 int RankInit();
260 bool begin_state__(int state, double time) override;
261 bool end_state__(int state, double time) override;
262 unsigned long rank; // rank needs to be declared first to be initialized before adios_wrapper.
263 mutable AdiosWrapper adios_wrapper; // adios_wrapper needs to be declared before bpio
264 // and bp_engine to be initialized first.
265 int spatialDimension{0};
266 int64_t edgeCount{0};
267 int64_t faceCount{0};
268 unsigned long number_proc;
269 bool is_streaming;
270 double previous_time_streaming;
271 };
272 } // namespace Ioad
273 #endif
Ioad::DatabaseIO::spatialDimension
int spatialDimension
Definition: Ioad_DatabaseIO.h:265
Ioad::DatabaseIO::read_meta_data__
void read_meta_data__() override
Definition: Ioad_DatabaseIO.C:1254
Ioad::DatabaseIO::add_entity_properties
void add_entity_properties(Ioss::GroupingEntity *ge, const FieldsMapType &properties_map, std::string name="")
Definition: Ioad_DatabaseIO.C:830
Ioss_DBUsage.h
Ioad::DatabaseIO::IsIossEntityBlock
typename std::enable_if< std::is_base_of< Ioss::EntityBlock, T >::value >::type IsIossEntityBlock
Definition: Ioad_DatabaseIO.h:210
AdiosWrapper.h
Ioss::SideBlockContainer
std::vector< SideBlock * > SideBlockContainer
Definition: Ioss_SideSet.h:49
Ioss::Field
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
Ioad::DatabaseIO::write_meta_data_sideblockcontainer
std::pair< int64_t, int64_t > write_meta_data_sideblockcontainer(const Ioss::SideBlockContainer &entity_blocks)
Definition: Ioad_DatabaseIO.C:172
Ioad::DatabaseIO::GlobalMapType
std::map< std::string, std::pair< std::string, std::string > > GlobalMapType
Definition: Ioad_DatabaseIO.h:189
Ioad::DatabaseIO::write_properties
void write_properties(const Ioss::GroupingEntity *const entity, const std::string &encoded_name)
Definition: Ioad_DatabaseIO.C:113
Ioad::DatabaseIO::put_meta_variables
void put_meta_variables(const std::string &encoded_name, const Ioss::Field &field, const std::string &entity_type, const std::string &field_name) const
Definition: Ioad_DatabaseIO.C:611
Ioad::DatabaseIO::read_communication_metadata
void read_communication_metadata()
Definition: Ioad_DatabaseIO.C:1371
Ioad::DatabaseIO::is_streaming
bool is_streaming
Definition: Ioad_DatabaseIO.h:269
Ioad::DatabaseIO::rank
unsigned long rank
Definition: Ioad_DatabaseIO.h:262
Ioad::DatabaseIO::get_entities
int64_t get_entities(const FieldsMapType &fields_map, const FieldsMapType &properties_map)
Definition: Ioad_DatabaseIO.C:1013
Ioad::DatabaseIO::define_model_internal
void define_model_internal(const Ioss::Field &field, const std::string &encoded_name, const std::string &entity_type, const std::string &field_name)
Definition: Ioad_DatabaseIO.C:393
Ioad::DatabaseIO::check_model
void check_model()
Definition: Ioad_DatabaseIO.C:277
Ioad::DatabaseIO::IsNotIossEntityBlock
typename std::enable_if<!std::is_base_of< Ioss::EntityBlock, T >::value >::type IsNotIossEntityBlock
Definition: Ioad_DatabaseIO.h:213
Ioad::DatabaseIO::write_meta_data
void write_meta_data()
Definition: Ioad_DatabaseIO.C:243
Ioad
A namespace for the adios database format.
Definition: AdiosWrapper.C:37
Ioad::DatabaseIO::get_field_internal
int64_t get_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Ioad_DatabaseIO.h:89
Ioss::EdgeBlock
A collection of element edges with the same topology.
Definition: Ioss_EdgeBlock.h:53
Ioss::DatabaseUsage
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition: Ioss_DBUsage.h:40
Ioss
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
Ioad::DatabaseIO::get_variable_infos_from_map
FieldInfoType get_variable_infos_from_map(const EntityMapType &fields_map, const std::string &entity_type, const std::string &entity_name, const std::string &var_name) const
Definition: Ioad_DatabaseIO.C:744
Ioad::DatabaseIO::FieldInfoType::parent_topology
std::string parent_topology
Definition: Ioad_DatabaseIO.h:183
Ioad::DatabaseIO::get_expected_variable_infos_from_map
FieldInfoType get_expected_variable_infos_from_map(const EntityMapType &fields_map, const std::string &entity_type, const std::string &entity_name, const std::string &var_name) const
Definition: Ioad_DatabaseIO.C:719
Ioss::State
State
Access states for a database.
Definition: Ioss_State.h:42
anonymous_namespace{Iovs_DatabaseIO.C}::entity_type
entity_type
Definition: Iovs_DatabaseIO.C:81
Ioad::DatabaseIO::get_attribute
T get_attribute(const std::string &attribute_name)
Ioss::Region
A grouping entity that contains other grouping entities.
Definition: Ioss_Region.h:98
Ioad::DatabaseIO::define_entity_meta_variables
void define_entity_meta_variables(const std::string &encoded_name)
Definition: Ioad_DatabaseIO.C:374
Ioad::DatabaseIO::get_current_state
int get_current_state() const
Definition: Ioad_DatabaseIO.C:1674
Ioss::NodeSet
A collection of nodes.
Definition: Ioss_NodeSet.h:53
Ioad::DatabaseIO::FieldInfoType::topology
std::string topology
Definition: Ioad_DatabaseIO.h:182
Ioss::FaceSet
A collection of element faces.
Definition: Ioss_FaceSet.h:54
Ioss::StructuredBlock
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:103
Ioad::DatabaseIO::get_property_value
std::string get_property_value(const FieldsMapType &properties_map, const std::string &entity_type, const std::string &entity_name, const std::string &property_name) const
Definition: Ioad_DatabaseIO.C:879
Ioad::DatabaseIO::number_proc
unsigned long number_proc
Definition: Ioad_DatabaseIO.h:268
Ioad::DatabaseIO::FieldInfoType::steps
std::vector< size_t > steps
Definition: Ioad_DatabaseIO.h:175
Ioad::DatabaseIO::get_variable_infos
FieldInfoType get_variable_infos(const std::string &var_name) const
Definition: Ioad_DatabaseIO.C:1169
Ioss::PropertyManager
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
Ioad::DatabaseIO::BlockInfoType::global_size
size_t global_size
Definition: Ioad_DatabaseIO.h:169
Ioad::DatabaseIO
Definition: Ioad_DatabaseIO.h:61
Ioss::EdgeSet
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
Ioss::ElementSet
A collection of elements.
Definition: Ioss_ElementSet.h:54
Ioad::DatabaseIO::BlockInfoType::steps
std::vector< size_t > steps
Definition: Ioad_DatabaseIO.h:167
Ioss_SideSet.h
Ioss::CommSet
Definition: Ioss_CommSet.h:51
Ioss::CoordinateFrame
Definition: Ioss_CoordinateFrame.h:42
Ioad::DatabaseIO::define_properties
void define_properties(const Ioss::GroupingEntity *entity_block, const std::string &encoded_entity_name)
Definition: Ioad_DatabaseIO.C:412
Ioad::DatabaseIO::read_region
void read_region(const FieldsMapType &fields_map)
Definition: Ioad_DatabaseIO.C:1325
Ioad::DatabaseIO::RankInit
int RankInit()
Definition: Ioad_DatabaseIO.C:87
Ioss::FaceBlock
A collection of element faces with the same topology.
Definition: Ioss_FaceBlock.h:53
Ioad::DatabaseIO::put_var_type
void put_var_type(const Ioss::Field &field, const std::string &encoded_name, bool transformed_field) const
Ioad::DatabaseIO::put_field_internal
int64_t put_field_internal(const Ioss::Region *reg, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Ioad_DatabaseIO.C:583
Ioad::DatabaseIO::FieldInfoType::variable_type
std::string variable_type
Definition: Ioad_DatabaseIO.h:180
Ioss::DatabaseIO
An input or output Database.
Definition: Ioss_DatabaseIO.h:82
Ioss::DatabaseIO::DatabaseIO
DatabaseIO()=delete
Ioad::DatabaseIO::begin__
bool begin__(Ioss::State state) override
Definition: Ioad_DatabaseIO.C:96
Ioss::CoordinateFrameContainer
std::vector< CoordinateFrame > CoordinateFrameContainer
Definition: Ioex_Utils.h:52
Ioad::DatabaseIO::write_meta_data_container
int64_t write_meta_data_container(const T &entity_blocks)
Definition: Ioad_DatabaseIO.C:143
Ioad::DatabaseIO::encoded_coordinate_frame_name
std::string encoded_coordinate_frame_name(Ioss::CoordinateFrame coordinate_frame)
Definition: Ioad_DatabaseIO.C:221
Ioad::DatabaseIO::add_entity_property
void add_entity_property(Ioss::GroupingEntity *ge, const std::string &encoded_name, const std::string &var_name)
Definition: Ioad_DatabaseIO.C:818
Ioad::DatabaseIO::compute_block_membership__
void compute_block_membership__(Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const override
Definition: Ioad_DatabaseIO.C:1629
Ioss::SideBlock
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:59
Ioad::DatabaseIO::define_coordinate_frames_internal
void define_coordinate_frames_internal(const Ioss::CoordinateFrameContainer &coordinate_frames)
Definition: Ioad_DatabaseIO.C:506
Ioss_Field.h
Ioad::DatabaseIO::edgeCount
int64_t edgeCount
Definition: Ioad_DatabaseIO.h:266
Ioad::DatabaseIO::FieldInfoType
Definition: Ioad_DatabaseIO.h:172
Ioad::DatabaseIO::previous_time_streaming
double previous_time_streaming
Definition: Ioad_DatabaseIO.h:270
Ioad::DatabaseIO::get_field_internal_t
int64_t get_field_internal_t(const Ioss::GroupingEntity *entity, const Ioss::Field &field, void *data, size_t data_size) const
Definition: Ioad_DatabaseIO.C:1538
Ioad::DatabaseIO::entity_field_support
unsigned entity_field_support() const override
Definition: Ioad_DatabaseIO.C:592
Ioad::DatabaseIO::begin_state__
bool begin_state__(int state, double time) override
Definition: Ioad_DatabaseIO.C:323
Ioad::DatabaseIO::BlockInfoType
Definition: Ioad_DatabaseIO.h:165
Ioad::DatabaseIO::get_block_infos
BlockInfoType get_block_infos(const adios2::Variable< T > &var) const
Definition: Ioad_DatabaseIO.C:1125
Ioad::DatabaseIO::define_global_variables
void define_global_variables()
Definition: Ioad_DatabaseIO.C:575
Ioss::ElementBlock
A collection of elements having the same topology.
Definition: Ioss_ElementBlock.h:48
Ioad::DatabaseIO::~DatabaseIO
~DatabaseIO()
Definition: Ioad_DatabaseIO.C:94
Ioad::DatabaseIO::end__
bool end__(Ioss::State state) override
Definition: Ioad_DatabaseIO.C:288
Ioad::DatabaseIO::FieldInfoType::role
Ioss::Field::RoleType role
Definition: Ioad_DatabaseIO.h:179
Ioad::DatabaseIO::faceCount
int64_t faceCount
Definition: Ioad_DatabaseIO.h:267
Ioad::DatabaseIO::get_field_internal
int64_t get_field_internal(const Ioss::Region *reg, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Ioad_DatabaseIO.C:1447
Ioad::DatabaseIO::get_globals
void get_globals(const GlobalMapType &globals_map, const FieldsMapType &properties_map)
Definition: Ioad_DatabaseIO.C:1214
Ioad::DatabaseIO::define_entity_internal
void define_entity_internal(const T &entity_blocks, Ioss::Field::RoleType *role)
Definition: Ioad_DatabaseIO.C:439
Ioad::DatabaseIO::get_data
void get_data(void *data, const std::string &encoded_name, bool use_step_selection=false) const
Definition: Ioad_DatabaseIO.C:1593
Ioad::DatabaseIO::EntityMapType
std::map< std::string, GlobalMapType > EntityMapType
Definition: Ioad_DatabaseIO.h:190
anonymous_namespace{cth_pressure_map.C}::data
std::vector< char > data
Definition: cth_pressure_map.C:74
Ioad::DatabaseIO::operator=
DatabaseIO & operator=(const DatabaseIO &from)=delete
Ioad::DatabaseIO::get_optional_string_variable
std::string get_optional_string_variable(const std::string &field_name, const std::string &string_variable) const
Definition: Ioad_DatabaseIO.C:1109
Ioad::DatabaseIO::put_field_internal_t
int64_t put_field_internal_t(T entity, const Ioss::Field &field, void *data, size_t data_size) const
Definition: Ioad_DatabaseIO.C:623
Ioad::DatabaseIO::define_field_meta_variables
void define_field_meta_variables(const std::string &)
Definition: Ioad_DatabaseIO.C:367
Ioad::DatabaseIO::get_format
const std::string get_format() const override
Definition: Ioad_DatabaseIO.h:70
Ioad::DatabaseIO::put_field_internal
int64_t put_field_internal(const Ioss::StructuredBlock *sb, const Ioss::Field &field, void *data, size_t data_size) const override
Definition: Ioad_DatabaseIO.h:139
Ioss::NodeBlock
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
Ioad::DatabaseIO::check_processor_info
void check_processor_info()
Definition: Ioad_DatabaseIO.C:1416
Ioss::Field::BasicType
BasicType
The basic data type held in the field.
Definition: Ioss_Field.h:52
Ioad::DatabaseIO::FieldInfoType::basic_type
Ioss::Field::BasicType basic_type
Definition: Ioad_DatabaseIO.h:181
Ioad::DatabaseIO::FieldInfoType::component_count
size_t component_count
Definition: Ioad_DatabaseIO.h:177
Ioad::DatabaseIO::end_state__
bool end_state__(int state, double time) override
Definition: Ioad_DatabaseIO.C:350
Ioss::Field::RoleType
RoleType
Definition: Ioss_Field.h:75
Ioss_Region.h
anonymous_namespace{io_info.C}::name
std::string name(const Ioss::GroupingEntity *entity)
Definition: io_info.C:89
Ioss_EntitySet.h
MPI_Comm
int MPI_Comm
Definition: Ioss_CodeTypes.h:96
Ioad::DatabaseIO::FieldsMapType
std::map< std::string, EntityMapType > FieldsMapType
Definition: Ioad_DatabaseIO.h:191
Ioad::AdiosWrapper
Definition: AdiosWrapper.h:42
Ioad::DatabaseIO::adios_wrapper
AdiosWrapper adios_wrapper
Definition: Ioad_DatabaseIO.h:263
Ioss::SideSet
A collection of element sides.
Definition: Ioss_SideSet.h:53
Ioss::GroupingEntity
Base class for all 'grouping' entities. The following derived classes are typical:
Definition: Ioss_GroupingEntity.h:93
Ioad::DatabaseIO::define_model
void define_model(Ioss::Field::RoleType *role=nullptr)
Definition: Ioad_DatabaseIO.C:518
Ioad::DatabaseIO::FieldInfoType::node_boundaries_size
size_t node_boundaries_size
Definition: Ioad_DatabaseIO.h:176
Ioad::DatabaseIO::BlockInfoType::Count
adios2::Dims Count
Definition: Ioad_DatabaseIO.h:168
Ioss_DatabaseIO.h
Ioad::DatabaseIO::put_data
void put_data(void *data, const std::string &encoded_name) const
Definition: Ioad_DatabaseIO.C:605
Ioad::DatabaseIO::int_byte_size_db
int int_byte_size_db() const override
Definition: Ioad_DatabaseIO.C:590