18#include <unordered_map>
34static const std::unordered_map<std::string, DataFormat> FORMAT_TYPES = {
40static const std::unordered_map<DataFormat, std::string> FORMAT_NAMES = {
60 std::vector<uint64_t>
keys;
72 std::vector<std::vector<rtype>>
fields;
77 const std::vector<rtype> *
find(
const std::string & name)
const;
80 const double *
attribute(
const std::string & name)
const;
110 void init(
const toml::value & input,
111 std::vector<Data> & data,
112 std::shared_ptr<Mesh>
mesh,
113 const std::vector<std::string> & restart_variables = {});
142 std::pair<std::string, std::string>
summary()
const;
163 std::string
xdmf_grid(
const std::string &
stem,
double t,
const std::string &
indent)
const;
188 std::vector<std::pair<rtype, std::string>>
history;
Writes snapshots either every interval steps or every time_interval units of simulation time....
Definition data_writer.h:103
DataFormat get_format() const
Definition data_writer.h:144
void write_pvtu(const std::string &filename, const std::string &stem) const
Definition data_writer.cpp:611
std::string geometry
Definition data_writer.h:190
bool due(uint64_t step, rtype t) const
Whether a snapshot is due at this step/time.
Definition data_writer.cpp:190
void write_hdf5_mesh()
HDF5 output: the mesh once (<prefix>_mesh.h5), then per snapshot a file of cell fields,...
Definition data_writer_hdf5.cpp:252
void resume_xdmf(rtype t)
Definition data_writer_hdf5.cpp:83
GlobalOrder cell_order
Definition data_writer.h:197
std::shared_ptr< Mesh > mesh
Definition data_writer.h:187
void write_vtu(const std::string &filename, rtype t) const
Definition data_writer.cpp:713
void write_xdmf(const std::string &stem) const
Definition data_writer_hdf5.cpp:72
std::string xdmf_grid(const std::string &stem, double t, const std::string &indent) const
Definition data_writer_hdf5.cpp:43
bool surface
Definition data_writer.h:189
std::vector< Field > fields
Definition data_writer.h:186
rtype t_last
Definition data_writer.h:183
uint64_t n_files
Definition data_writer.h:191
const std::string & get_prefix() const
Definition data_writer.h:145
uint64_t hdf5_topology_size
Definition data_writer.h:199
void resume(uint64_t step, rtype t)
Continue numbering and the .pvd (.xmf) series of a previous run that stopped at (step,...
Definition data_writer.cpp:252
std::pair< std::string, std::string > summary() const
Format and the output key-value line for the run log.
Definition data_writer.cpp:176
uint64_t n_written
Definition data_writer.h:182
void write_restart_distributed(const std::string &filename, uint64_t step, rtype t, const RestartAttributes &attributes, const RestartFaces &faces) const
Definition data_writer.cpp:433
uint64_t step_last
Definition data_writer.h:184
std::string prefix
Definition data_writer.h:179
bool hdf5_mesh_written
Definition data_writer.h:198
uint64_t hdf5_n_nodes
Definition data_writer.h:199
void init(const toml::value &input, std::vector< Data > &data, std::shared_ptr< Mesh > mesh, const std::vector< std::string > &restart_variables={})
Set up from a [[write_data]] entry.
Definition data_writer.cpp:51
uint64_t interval
Definition data_writer.h:180
void write(uint64_t step, rtype t, bool force=false, const RestartAttributes &attributes={}, const RestartFaces &faces={})
Write a snapshot if due (or forced); restart files also store the attributes and the faces (of the ow...
Definition data_writer.cpp:205
rtype next_time() const
Next simulation time at which a snapshot is due (infinity for step-based writers).
Definition data_writer.cpp:198
void write_pvd() const
Definition data_writer.cpp:632
void write_hdf5(const std::string &stem, uint64_t step, rtype t) const
Definition data_writer_hdf5.cpp:254
uint64_t files_written() const
Definition data_writer.h:146
rtype time_interval
Definition data_writer.h:181
void write_restart(const std::string &filename, uint64_t step, rtype t, const RestartAttributes &attributes, const RestartFaces &faces) const
Definition data_writer.cpp:406
void write_vtu_faces(const std::string &filename, rtype t) const
Definition data_writer.cpp:645
std::vector< std::pair< rtype, std::string > > history
Definition data_writer.h:188
DataFormat format
Definition data_writer.h:185
std::vector< uint32_t > geometry_faces
Definition data_writer.h:195
Items (cells, nodes) spread over the ranks, each with a global id in [0, n_global),...
Definition global_order.h:30
KOKKOS_INLINE_FUNCTION rtype dot(const rtype *a, const rtype *b)
Compute the dot product of two arrays.
Definition common_math.h:32
float rtype
Definition common_typedef.h:39
std::vector< std::pair< std::string, double > > RestartAttributes
Named scalars of a restart file (version 3), e.g. the statistics' weight.
Definition data_writer.h:47
constexpr uint64_t RESTART_FACES_PER_CELL
Upper bound on the faces of a cell, for the keys of RestartFaces.
Definition data_writer.h:50
DataFormat
Definition data_writer.h:28
RestartData read_restart(const std::string &filename, const std::vector< uint64_t > *cells=nullptr)
Read a restart file written by a DataWriter with format = "restart": every cell, or with cells,...
Definition data_writer.cpp:489
Moving per-item values from their owner ranks to contiguous blocks in global-id order,...
An output array: one scalar, or the N_DIM components of a vector (written as 3 components,...
Definition data_writer.h:170
std::string name
Definition data_writer.h:171
rtype value(uint32_t i_cell, uint32_t i_comp) const
Definition data_writer.h:174
std::vector< const Data * > components
Definition data_writer.h:172
uint32_t n_vtk_components() const
Definition data_writer.h:173
Contents of a restart file.
Definition data_writer.h:67
const rtype * face(uint64_t key) const
The RestartFaces::WIDTH values of the face with this key, or nullptr if the file has none.
Definition data_writer.cpp:400
RestartAttributes attributes
Definition data_writer.h:73
double t
Definition data_writer.h:69
const std::vector< rtype > * find(const std::string &name) const
Values of the named variable, or nullptr if the file has none.
Definition data_writer.cpp:386
uint64_t n_cells
Definition data_writer.h:70
RestartFaces faces
Definition data_writer.h:74
const double * attribute(const std::string &name) const
Value of the named attribute, or nullptr if the file has none.
Definition data_writer.cpp:393
std::vector< std::string > names
Definition data_writer.h:71
uint64_t step
Definition data_writer.h:68
std::vector< std::vector< rtype > > fields
Definition data_writer.h:72
Face records of a restart file (version 4): the [p, u_n] of the characteristic boundary faces (docs/d...
Definition data_writer.h:58
static constexpr uint32_t WIDTH
Definition data_writer.h:59
std::vector< rtype > values
Definition data_writer.h:61
std::vector< uint64_t > keys
Definition data_writer.h:60
Kokkos::View< uint32_t *, Space > cells
Definition teno_setup.cpp:682