Files
FESADev/src/fesa/io/hdf5/hdf5_result_writer.h
T

34 lines
1.2 KiB
C++

#ifndef FESA_IO_HDF5_HDF5_RESULT_WRITER_H_
#define FESA_IO_HDF5_HDF5_RESULT_WRITER_H_
#include <hdf5.h>
#include <filesystem>
#include <vector>
#include "fesa/analysis/analysis_state.h"
#include "fesa/core/diagnostic.h"
#include "fesa/core/status.h"
#include "fesa/model/domain.h"
#include "io/hdf5/hdf5_primitives.h"
namespace fesa::hdf5_internal {
/// @brief Builds the complete backend-neutral result dataset inventory.
Result<WriterPlan> BuildWriterPlan(const std::filesystem::path& output_path,
const Domain& domain,
const AnalysisState& state,
const std::vector<Diagnostic>& diagnostics);
/// @brief Rejects malformed, duplicate, shape-mismatched, or nonfinite plans.
Status ValidateFiniteInventory(const std::vector<DoubleDatasetPlan>& datasets);
/// @brief Writes mandatory beam/shell/global results and diagnostics.
void WriteResults(hid_t file, const Domain& domain, const AnalysisState& state,
const std::vector<Diagnostic>& diagnostics,
const WriterPlan& plan);
} // namespace fesa::hdf5_internal
#endif // FESA_IO_HDF5_HDF5_RESULT_WRITER_H_