34 lines
1.2 KiB
C++
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_
|