BioCMAMC-ST
host_export_handler.hpp
1#ifndef __CORE_HOST_EXPORT_HANDLER_HPP__
2#define __CORE_HOST_EXPORT_HANDLER_HPP__
3
4#include <dataexporter/main_exporter.hpp>
5#include <dataexporter/partial_exporter.hpp>
6#include <optional>
7#include <progress_bar.hpp>
8#include <simulation/simulation.hpp>
9#include <span>
10#include <transitionner/transitionner.hpp>
12{
13
14public:
15 ExportHandler() = default;
16
17 ExportHandler(std::shared_ptr<Core::MainExporter> _main_exporter,
18 ExecInfo _exec,
19 std::size_t _dump_interval,
20 std::size_t _n_iter_simulation);
21
37 void operator()(double current_time,
38 size_t loop_counter,
40 Core::PartialExporter& partial_exporter);
41
55 void pre_post_export(
56 double current_time,
57 const Simulation::SimulationUnit& simulation,
58 const std::unique_ptr<CmaUtils::FlowMapTransitionner>& transitioner);
59
60private:
61 size_t dump_counter{};
62 size_t dump_interval{};
64 [[maybe_unused]] ExecInfo exec{};
65 std::shared_ptr<Core::MainExporter> main_exporter;
66
72 static std::optional<std::span<std::size_t>>
74
76};
77
78#endif
Exporter for each MPI worker (including host) that exports data relative to particle state.
Definition partial_exporter.hpp:27
IO::ProgressBar progressbar
Definition host_export_handler.hpp:75
size_t dump_interval
Definition host_export_handler.hpp:62
void operator()(double current_time, size_t loop_counter, Simulation::SimulationUnit &simulation, Core::PartialExporter &partial_exporter)
Handles periodic export of simulation data.
Definition host_export_handler.cpp:120
ExecInfo exec
Definition host_export_handler.hpp:64
std::shared_ptr< Core::MainExporter > main_exporter
Definition host_export_handler.hpp:65
void pre_post_export(double current_time, const Simulation::SimulationUnit &simulation, const std::unique_ptr< CmaUtils::FlowMapTransitionner > &transitioner)
Prepares and updates the exporter with the current simulation state before/after main loop.
Definition host_export_handler.cpp:19
size_t n_iter_simulation
Definition host_export_handler.hpp:63
size_t dump_counter
Definition host_export_handler.hpp:61
static std::optional< std::span< std::size_t > > prepareEventSpan(Simulation::SimulationUnit &simulation)
Prepares the event span if the event counter is enabled.
Definition host_export_handler.cpp:186
ExportHandler()=default
ExportHandler(std::shared_ptr< Core::MainExporter > _main_exporter, ExecInfo _exec, std::size_t _dump_interval, std::size_t _n_iter_simulation)
Definition progress_bar.hpp:8
Definition simulation.hpp:57
Definition execinfo.hpp:12