Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_ParticlesHDF5.H
Go to the documentation of this file.
1#ifndef AMREX_PARTICLES_HDF5_H_
2#define AMREX_PARTICLES_HDF5_H_
3
11public:
19 void WriteParticleRealDataHDF5 (void* data, size_t size, hid_t fid) const;
20
28 void ReadParticleRealDataHDF5 (void* data, size_t size, hid_t fid);
29
37 void CheckpointHDF5 (const std::string& dir, const std::string& name,
38 const std::string& compression = "None@0") const;
39
50 void CheckpointHDF5 (const std::string& dir, const std::string& name, bool is_checkpoint,
51 const Vector<std::string>& real_comp_names = Vector<std::string>(),
52 const Vector<std::string>& int_comp_names = Vector<std::string>(),
53 const std::string& compression = "None@0") const;
54
70 template <class F>
71 void WriteHDF5ParticleData (const std::string& dir,
72 const std::string& name,
73 const Vector<int>& write_real_comp,
74 const Vector<int>& write_int_comp,
75 const Vector<std::string>& real_comp_names,
76 const Vector<std::string>& int_comp_names,
77 const std::string& compression,
78 F&& f, bool is_checkpoint=false) const;
79
80
88
96
103 void RestartHDF5 (const std::string& dir, const std::string& file);
104
112 void RestartHDF5 (const std::string& dir, const std::string& file, bool is_checkpoint);
113
121 void WritePlotFileHDF5 (const std::string& dir, const std::string& name, const std::string& compression) const;
122
135 template <class F, std::enable_if_t<!std::is_same_v<F, Vector<std::string>>>* = nullptr>
136 void WritePlotFileHDF5 (const std::string& dir, const std::string& name, const std::string& compression, F&& f) const;
137
147 void WritePlotFileHDF5 (const std::string& dir, const std::string& name,
148 const Vector<std::string>& real_comp_names,
149 const Vector<std::string>& int_comp_names,
150 const std::string& compression) const;
151
166 template <class F>
167 void WritePlotFileHDF5 (const std::string& dir, const std::string& name,
168 const Vector<std::string>& real_comp_names,
169 const Vector<std::string>& int_comp_names,
170 const std::string& compression, F&& f) const;
171
181 void WritePlotFileHDF5 (const std::string& dir, const std::string& name,
182 const Vector<std::string>& real_comp_names,
183 const std::string& compression) const;
184
199 template <class F, std::enable_if_t<!std::is_same_v<F, Vector<std::string>>>* = nullptr>
200 void WritePlotFileHDF5 (const std::string& dir, const std::string& name,
201 const Vector<std::string>& real_comp_names,
202 const std::string& compression, F&& f) const;
203
214 void WritePlotFileHDF5 (const std::string& dir,
215 const std::string& name,
216 const Vector<int>& write_real_comp,
217 const Vector<int>& write_int_comp,
218 const std::string& compression) const;
219
235 template <class F>
236 void WritePlotFileHDF5 (const std::string& dir,
237 const std::string& name,
238 const Vector<int>& write_real_comp,
239 const Vector<int>& write_int_comp,
240 const std::string& compression, F&& f) const;
241
256 void WritePlotFileHDF5 (const std::string& dir,
257 const std::string& name,
258 const Vector<int>& write_real_comp,
259 const Vector<int>& write_int_comp,
260 const Vector<std::string>& real_comp_names,
261 const Vector<std::string>& int_comp_names,
262 const std::string& compression) const;
263
283 template <class F>
284 void WritePlotFileHDF5 (const std::string& dir,
285 const std::string& name,
286 const Vector<int>& write_real_comp,
287 const Vector<int>& write_int_comp,
288 const Vector<std::string>& real_comp_names,
289 const Vector<std::string>& int_comp_names,
290 const std::string& compression,
291 F&& f) const;
292
297
302
317 void
318 WriteParticlesHDF5 (int level, hid_t grp,
319 Vector<int>& which, Vector<int>& count, Vector<Long>& where,
320 const Vector<int>& write_real_comp, const Vector<int>& write_int_comp,
321 const std::string& compression,
322 const Vector<std::map<std::pair<int, int>,IntVector>>& particle_io_flags, bool is_checkpoint) const;
323
324protected:
325
339template <class RTYPE>
340void ReadParticlesHDF5 (hsize_t offset, hsize_t count, int grd, int lev, hid_t int_dset, hid_t real_dset, int finest_level_in_file, bool convert_ids);
341
342#endif
Array4< int const > offset
Definition AMReX_HypreMLABecLap.cpp:1139
void CheckpointHDF5(const std::string &dir, const std::string &name, const std::string &compression="None@0") const
Writes a particle checkpoint to file, suitable for restarting.
void WritePlotFilePreHDF5()
Plotfile-friendly alias for CheckpointPreHDF5().
void CheckpointPreHDF5()
Prepare metadata used by deferred HDF5 checkpoint writes.
void WritePlotFilePostHDF5()
Plotfile-friendly alias for CheckpointPostHDF5().
void ReadParticleRealDataHDF5(void *data, size_t size, hid_t fid)
Read a contiguous chunk of real particle data from HDF5 file.
void ReadParticlesHDF5(hsize_t offset, hsize_t count, int grd, int lev, hid_t int_dset, hid_t real_dset, int finest_level_in_file, bool convert_ids)
Read particle records from HDF5 datasets into a level/tile buffer.
void WriteParticlesHDF5(int level, hid_t grp, Vector< int > &which, Vector< int > &count, Vector< Long > &where, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const std::string &compression, const Vector< std::map< std::pair< int, int >, IntVector > > &particle_io_flags, bool is_checkpoint) const
Write all particles from one AMR level into the given HDF5 group.
void WritePlotFileHDF5(const std::string &dir, const std::string &name, const std::string &compression) const
This version of WritePlotFile writes all components and assigns component names.
void RestartHDF5(const std::string &dir, const std::string &file)
Restart from checkpoint.
void WriteHDF5ParticleData(const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names, const std::string &compression, F &&f, bool is_checkpoint=false) const
Writes particle data to disk in the HDF5 format.
void CheckpointPostHDF5()
Finalize a checkpoint header handed off by CheckpointPreHDF5().
void WriteParticleRealDataHDF5(void *data, size_t size, hid_t fid) const
Write a contiguous chunk of real particle data to an HDF5 file.