Go to the documentation of this file.
33 #ifndef IOSS_Ioad_DatabaseIO_h
34 #define IOSS_Ioad_DatabaseIO_h
70 const std::string
get_format()
const override {
return "ADIOS2";}
80 size_t data_size)
const override;
82 size_t data_size)
const override;
84 size_t data_size)
const override;
86 size_t data_size)
const override;
88 size_t data_size)
const override;
90 void *
data,
size_t data_size)
const override
95 size_t data_size)
const override;
97 size_t data_size)
const override;
99 size_t data_size)
const override;
101 size_t data_size)
const override;
103 size_t data_size)
const override;
105 size_t data_size)
const override;
107 size_t data_size)
const override;
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;
116 size_t data_size)
const override;
118 size_t data_size)
const override;
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 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;
140 void *
data,
size_t data_size)
const override
144 template <
typename T>
146 size_t data_size)
const;
150 template <
typename T> T
get_attribute(
const std::string &attribute_name);
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>
156 bool transformed_field)
const;
157 template <
typename T>
159 const std::string &
entity_type,
const std::string &field_name);
160 template <
typename T>
189 using GlobalMapType = std::map<std::string, std::pair<std::string, std::string>>;
193 template <
typename T>
195 const std::string &
entity_type,
const std::string &entity_name,
196 const std::string &property_name)
const;
198 template <
typename T>
201 const std::string & entity_name,
202 const std::string & var_name)
const;
205 const std::string & entity_name,
206 const std::string & var_name)
const;
208 template <
typename T>
210 typename std::enable_if<std::is_base_of<Ioss::EntityBlock, T>::value>::type;
211 template <
typename T>
213 typename std::enable_if<!std::is_base_of<Ioss::EntityBlock, T>::value>::type;
215 template <
typename T,
typename = IsIossEntityBlock<T>>
218 template <
typename T,
typename = IsNotIossEntityBlock<T>,
typename =
void>
226 const std::string &
entity_type,
const std::string &field_name)
const;
229 template <
typename T>
231 const std::string &var_name);
233 std::string
name =
"");
236 const std::string & encoded_name);
239 std::pair<int64_t, int64_t>
242 template <
typename T>
245 const std::string &string_variable)
const;
249 std::vector<std::string> &block_membership)
const override;
251 const std::string & encoded_entity_name);
int spatialDimension
Definition: Ioad_DatabaseIO.h:265
void read_meta_data__() override
Definition: Ioad_DatabaseIO.C:1254
void add_entity_properties(Ioss::GroupingEntity *ge, const FieldsMapType &properties_map, std::string name="")
Definition: Ioad_DatabaseIO.C:830
typename std::enable_if< std::is_base_of< Ioss::EntityBlock, T >::value >::type IsIossEntityBlock
Definition: Ioad_DatabaseIO.h:210
std::vector< SideBlock * > SideBlockContainer
Definition: Ioss_SideSet.h:49
Holds metadata for bulk data associated with a GroupingEntity.
Definition: Ioss_Field.h:47
std::pair< int64_t, int64_t > write_meta_data_sideblockcontainer(const Ioss::SideBlockContainer &entity_blocks)
Definition: Ioad_DatabaseIO.C:172
std::map< std::string, std::pair< std::string, std::string > > GlobalMapType
Definition: Ioad_DatabaseIO.h:189
void write_properties(const Ioss::GroupingEntity *const entity, const std::string &encoded_name)
Definition: Ioad_DatabaseIO.C:113
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
void read_communication_metadata()
Definition: Ioad_DatabaseIO.C:1371
bool is_streaming
Definition: Ioad_DatabaseIO.h:269
unsigned long rank
Definition: Ioad_DatabaseIO.h:262
int64_t get_entities(const FieldsMapType &fields_map, const FieldsMapType &properties_map)
Definition: Ioad_DatabaseIO.C:1013
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
void check_model()
Definition: Ioad_DatabaseIO.C:277
typename std::enable_if<!std::is_base_of< Ioss::EntityBlock, T >::value >::type IsNotIossEntityBlock
Definition: Ioad_DatabaseIO.h:213
void write_meta_data()
Definition: Ioad_DatabaseIO.C:243
A namespace for the adios database format.
Definition: AdiosWrapper.C:37
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
A collection of element edges with the same topology.
Definition: Ioss_EdgeBlock.h:53
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition: Ioss_DBUsage.h:40
The main namespace for the Ioss library.
Definition: Ioad_DatabaseIO.C:66
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
std::string parent_topology
Definition: Ioad_DatabaseIO.h:183
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
State
Access states for a database.
Definition: Ioss_State.h:42
entity_type
Definition: Iovs_DatabaseIO.C:81
T get_attribute(const std::string &attribute_name)
A grouping entity that contains other grouping entities.
Definition: Ioss_Region.h:98
void define_entity_meta_variables(const std::string &encoded_name)
Definition: Ioad_DatabaseIO.C:374
int get_current_state() const
Definition: Ioad_DatabaseIO.C:1674
A collection of nodes.
Definition: Ioss_NodeSet.h:53
std::string topology
Definition: Ioad_DatabaseIO.h:182
A collection of element faces.
Definition: Ioss_FaceSet.h:54
A structured zone – i,j,k.
Definition: Ioss_StructuredBlock.h:103
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
unsigned long number_proc
Definition: Ioad_DatabaseIO.h:268
std::vector< size_t > steps
Definition: Ioad_DatabaseIO.h:175
FieldInfoType get_variable_infos(const std::string &var_name) const
Definition: Ioad_DatabaseIO.C:1169
A collection of Ioss::Property objects.
Definition: Ioss_PropertyManager.h:49
size_t global_size
Definition: Ioad_DatabaseIO.h:169
Definition: Ioad_DatabaseIO.h:61
A collection of element edges.
Definition: Ioss_EdgeSet.h:54
A collection of elements.
Definition: Ioss_ElementSet.h:54
std::vector< size_t > steps
Definition: Ioad_DatabaseIO.h:167
Definition: Ioss_CommSet.h:51
Definition: Ioss_CoordinateFrame.h:42
void define_properties(const Ioss::GroupingEntity *entity_block, const std::string &encoded_entity_name)
Definition: Ioad_DatabaseIO.C:412
void read_region(const FieldsMapType &fields_map)
Definition: Ioad_DatabaseIO.C:1325
int RankInit()
Definition: Ioad_DatabaseIO.C:87
A collection of element faces with the same topology.
Definition: Ioss_FaceBlock.h:53
void put_var_type(const Ioss::Field &field, const std::string &encoded_name, bool transformed_field) const
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
std::string variable_type
Definition: Ioad_DatabaseIO.h:180
An input or output Database.
Definition: Ioss_DatabaseIO.h:82
bool begin__(Ioss::State state) override
Definition: Ioad_DatabaseIO.C:96
std::vector< CoordinateFrame > CoordinateFrameContainer
Definition: Ioex_Utils.h:52
int64_t write_meta_data_container(const T &entity_blocks)
Definition: Ioad_DatabaseIO.C:143
std::string encoded_coordinate_frame_name(Ioss::CoordinateFrame coordinate_frame)
Definition: Ioad_DatabaseIO.C:221
void add_entity_property(Ioss::GroupingEntity *ge, const std::string &encoded_name, const std::string &var_name)
Definition: Ioad_DatabaseIO.C:818
void compute_block_membership__(Ioss::SideBlock *efblock, std::vector< std::string > &block_membership) const override
Definition: Ioad_DatabaseIO.C:1629
A collection of element sides having the same topology.
Definition: Ioss_SideBlock.h:59
void define_coordinate_frames_internal(const Ioss::CoordinateFrameContainer &coordinate_frames)
Definition: Ioad_DatabaseIO.C:506
int64_t edgeCount
Definition: Ioad_DatabaseIO.h:266
Definition: Ioad_DatabaseIO.h:172
double previous_time_streaming
Definition: Ioad_DatabaseIO.h:270
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
unsigned entity_field_support() const override
Definition: Ioad_DatabaseIO.C:592
bool begin_state__(int state, double time) override
Definition: Ioad_DatabaseIO.C:323
Definition: Ioad_DatabaseIO.h:165
BlockInfoType get_block_infos(const adios2::Variable< T > &var) const
Definition: Ioad_DatabaseIO.C:1125
void define_global_variables()
Definition: Ioad_DatabaseIO.C:575
A collection of elements having the same topology.
Definition: Ioss_ElementBlock.h:48
~DatabaseIO()
Definition: Ioad_DatabaseIO.C:94
bool end__(Ioss::State state) override
Definition: Ioad_DatabaseIO.C:288
Ioss::Field::RoleType role
Definition: Ioad_DatabaseIO.h:179
int64_t faceCount
Definition: Ioad_DatabaseIO.h:267
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
void get_globals(const GlobalMapType &globals_map, const FieldsMapType &properties_map)
Definition: Ioad_DatabaseIO.C:1214
void define_entity_internal(const T &entity_blocks, Ioss::Field::RoleType *role)
Definition: Ioad_DatabaseIO.C:439
void get_data(void *data, const std::string &encoded_name, bool use_step_selection=false) const
Definition: Ioad_DatabaseIO.C:1593
std::map< std::string, GlobalMapType > EntityMapType
Definition: Ioad_DatabaseIO.h:190
std::vector< char > data
Definition: cth_pressure_map.C:74
DatabaseIO & operator=(const DatabaseIO &from)=delete
std::string get_optional_string_variable(const std::string &field_name, const std::string &string_variable) const
Definition: Ioad_DatabaseIO.C:1109
int64_t put_field_internal_t(T entity, const Ioss::Field &field, void *data, size_t data_size) const
Definition: Ioad_DatabaseIO.C:623
void define_field_meta_variables(const std::string &)
Definition: Ioad_DatabaseIO.C:367
const std::string get_format() const override
Definition: Ioad_DatabaseIO.h:70
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
A collection of all nodes in the region.
Definition: Ioss_NodeBlock.h:53
void check_processor_info()
Definition: Ioad_DatabaseIO.C:1416
BasicType
The basic data type held in the field.
Definition: Ioss_Field.h:52
Ioss::Field::BasicType basic_type
Definition: Ioad_DatabaseIO.h:181
size_t component_count
Definition: Ioad_DatabaseIO.h:177
bool end_state__(int state, double time) override
Definition: Ioad_DatabaseIO.C:350
RoleType
Definition: Ioss_Field.h:75
std::string name(const Ioss::GroupingEntity *entity)
Definition: io_info.C:89
int MPI_Comm
Definition: Ioss_CodeTypes.h:96
std::map< std::string, EntityMapType > FieldsMapType
Definition: Ioad_DatabaseIO.h:191
Definition: AdiosWrapper.h:42
AdiosWrapper adios_wrapper
Definition: Ioad_DatabaseIO.h:263
A collection of element sides.
Definition: Ioss_SideSet.h:53
Base class for all 'grouping' entities. The following derived classes are typical:
Definition: Ioss_GroupingEntity.h:93
void define_model(Ioss::Field::RoleType *role=nullptr)
Definition: Ioad_DatabaseIO.C:518
size_t node_boundaries_size
Definition: Ioad_DatabaseIO.h:176
adios2::Dims Count
Definition: Ioad_DatabaseIO.h:168
void put_data(void *data, const std::string &encoded_name) const
Definition: Ioad_DatabaseIO.C:605
int int_byte_size_db() const override
Definition: Ioad_DatabaseIO.C:590