26#include "iocgns_export.h"
36 class ElementTopology;
47 class StructuredBlock;
49 class PropertyManager;
81 void write_meta_data();
82 void write_results_meta_data();
87 IOSS_NODISCARD int64_t node_global_to_local_nl(int64_t global,
bool must_exist)
const override;
88 IOSS_NODISCARD int64_t element_global_to_local_nl(int64_t global)
const override;
90 void read_meta_data_nl()
override;
92 void open_state_file(
int state);
93 void free_state_pointer();
95 void openDatabase_nl()
const override;
96 void closeDatabase_nl()
const override;
101 IOSS_NODISCARD bool begin_state_nl(
int state,
double time)
override;
102 IOSS_NODISCARD bool end_state_nl(
int state,
double time)
override;
103 void flush_database_nl()
const override;
105 bool check_valid_file_open(
int status)
const;
106 void create_structured_block(
int base,
int zone,
size_t &num_node);
107 void create_structured_block_fpp(
int base,
int num_zones,
size_t &num_node);
108 size_t finalize_structured_blocks();
109 void finalize_database()
const override;
110 void get_step_times_nl()
override;
111 std::vector<double> get_db_step_times_nl()
override;
113 void create_unstructured_block(
int base,
int zone,
size_t &num_node);
114 void write_adjacency_data();
117 size_t data_size)
const override;
119 size_t data_size)
const override;
121 size_t data_size)
const override;
123 size_t data_size)
const override;
125 size_t data_size)
const override;
127 void *data,
size_t data_size)
const override;
129 size_t data_size)
const override;
131 size_t data_size)
const override;
133 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 void * ,
size_t )
const override
149 void * ,
size_t )
const override
155 void *data,
size_t data_size)
const;
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 size_t data_size)
const override;
176 size_t data_size)
const override;
178 size_t data_size)
const override;
180 size_t data_size)
const override;
182 void *data,
size_t data_size)
const override;
184 void * ,
size_t )
const override
190 void * ,
size_t )
const override
196 void *data,
size_t data_size)
const;
201 int64_t file_offset, int64_t file_count,
204 mutable int m_cgnsFilePtr{-1};
205 mutable int m_cgnsBasePtr{
208 int m_flushInterval{0};
209 int m_currentVertexSolutionIndex{0};
210 int m_currentCellCenterSolutionIndex{0};
211 mutable bool m_dbFinalized{
false};
214 mutable std::vector<size_t>
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:55
int Ioss_MPI_Comm
Definition Ioss_CodeTypes.h:64
Definition Iocgns_DatabaseIO.h:57
IOSS_NODISCARD int int_byte_size_db() const override
Definition Iocgns_DatabaseIO.h:76
int64_t put_field_internal(const Ioss::Blob *, const Ioss::Field &, void *, size_t) const override
Definition Iocgns_DatabaseIO.h:189
int64_t get_field_internal(const Ioss::Assembly *, const Ioss::Field &, void *, size_t) const override
Definition Iocgns_DatabaseIO.h:142
IOSS_NODISCARD const Ioss::Map & get_map(entity_type type) const
IOSS_NODISCARD bool node_major() const override
Definition Iocgns_DatabaseIO.h:78
entity_type
Definition Iocgns_DatabaseIO.h:59
std::vector< size_t > m_zoneOffset
Definition Iocgns_DatabaseIO.h:213
IOSS_NODISCARD const Ioss::Map & get_map(Ioss::Map &entity_map, int64_t entityCount, int64_t file_offset, int64_t file_count, entity_type type) const
std::vector< CGNSIntVector > m_blockLocalNodeMap
Definition Iocgns_DatabaseIO.h:217
std::map< std::string, int > m_zoneNameMap
Definition Iocgns_DatabaseIO.h:218
IOSS_NODISCARD std::string get_format() const override
Definition Iocgns_DatabaseIO.h:72
std::vector< double > m_timesteps
Definition Iocgns_DatabaseIO.h:216
std::map< int, Ioss::Map * > m_globalToBlockLocalNodeMap
Definition Iocgns_DatabaseIO.h:219
std::map< std::string, Ioss::FaceUnorderedSet > m_boundaryFaces
Definition Iocgns_DatabaseIO.h:220
int64_t get_field_internal(const Ioss::Blob *, const Ioss::Field &, void *, size_t) const override
Definition Iocgns_DatabaseIO.h:148
std::vector< size_t > m_bcOffset
Definition Iocgns_DatabaseIO.h:215
int64_t put_field_internal(const Ioss::Assembly *, const Ioss::Field &, void *, size_t) const override
Definition Iocgns_DatabaseIO.h:183
A homogeneous collection of other GroupingEntities.
Definition Ioss_Assembly.h:31
A homogeneous collection of other GroupingEntities.
Definition Ioss_Blob.h:31
Definition Ioss_CommSet.h:27
An input or output Database.
Definition Ioss_DatabaseIO.h:63
A collection of element edges with the same topology.
Definition Ioss_EdgeBlock.h:29
A collection of element edges.
Definition Ioss_EdgeSet.h:30
A collection of elements having the same topology.
Definition Ioss_ElementBlock.h:29
A collection of elements.
Definition Ioss_ElementSet.h:30
A collection of element faces with the same topology.
Definition Ioss_FaceBlock.h:29
A collection of element faces.
Definition Ioss_FaceSet.h:30
Holds metadata for bulk data associated with a GroupingEntity.
Definition Ioss_Field.h:25
A collection of all nodes in the region.
Definition Ioss_NodeBlock.h:33
A collection of nodes.
Definition Ioss_NodeSet.h:29
A collection of Ioss::Property objects.
Definition Ioss_PropertyManager.h:36
A grouping entity that contains other grouping entities.
Definition Ioss_Region.h:93
A collection of element sides having the same topology.
Definition Ioss_SideBlock.h:37
A collection of element sides.
Definition Ioss_SideSet.h:29
A structured zone – i,j,k.
Definition Ioss_StructuredBlock.h:91
A namespace for the CGNS database format.
Definition Iocgns_DatabaseIO.C:555
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40
State
Access states for a database.
Definition Ioss_State.h:15
DatabaseUsage
Specifies how an Ioss::DatabaseIO object will be used.
Definition Ioss_DBUsage.h:13