BioCMAMC-ST
main_exporter.hpp
1#ifndef __CORE_MAIN_EXPORTER_HPP__
2#define __CORE_MAIN_EXPORTER_HPP__
3
4#include "mc/events.hpp"
5#include "simulation/simulation.hpp"
6#include <common/execinfo.hpp>
7#include <core/simulation_parameters.hpp>
8#include <cstddef>
9#include <cstdint>
10#include <dataexporter/data_exporter.hpp>
11#include <optional>
12#include <span>
13#include <string>
14#include <string_view>
15#include <vector>
16namespace Core
17{
27 {
28 public:
32 MainExporter() = default;
33
41 MainExporter(const ExecInfo& info,
42 std::string_view _filename,
43 std::optional<export_metadata_t> user_description = std::nullopt);
44
52 void write_initial(double weight,
53 const Core::SimulationParameters& params);
54
61 void write_final(Simulation::SimulationUnit& simulation,std::size_t number_particles);
62
71 void init_fields(uint64_t n_iter,
72 uint64_t n_compartments,
73 uint64_t n_species,
74 bool is_two_phase_flow);
75
85 void update_fields(double t,
86 std::span<double> concentration_liquid,
87 std::span<const double> liquid_volume,
88 std::optional<std::span<const double>> concentration_gas,
89 std::optional<std::span<const double>> volume_gas,
90 std::optional<std::span<const double>> mtr,std::optional<std::span<std::size_t>> events);
91
92 private:
93 static const std::string
95 uint64_t n_expected_export{};
96 };
97
98} // namespace Core
99
100#endif
A class responsible for exporting various types of data such as matrices, arrays, and metadata in a s...
Definition data_exporter.hpp:42
Exporter for host-only data related to general-purpose simulation data (e.g., concentration,...
Definition main_exporter.hpp:27
void update_fields(double t, std::span< double > concentration_liquid, std::span< const double > liquid_volume, std::optional< std::span< const double > > concentration_gas, std::optional< std::span< const double > > volume_gas, std::optional< std::span< const double > > mtr, std::optional< std::span< std::size_t > > events)
Updates fields with the current simulation state.
Definition main_exporter.cpp:114
static const std::string base_group_name
Definition main_exporter.hpp:94
void init_fields(uint64_t n_iter, uint64_t n_compartments, uint64_t n_species, bool is_two_phase_flow)
Initializes fields required for simulation export.
Definition main_exporter.cpp:45
MainExporter()=default
Default constructor for MainExporter.
void write_initial(double weight, const Core::SimulationParameters &params)
Writes initial simulation data to the output.
Definition main_exporter.cpp:28
void write_final(Simulation::SimulationUnit &simulation, std::size_t number_particles)
Writes final simulation data to the output.
Definition main_exporter.cpp:148
uint64_t n_expected_export
Definition main_exporter.hpp:95
Definition simulation.hpp:66
Core component to perform simulation.
Definition data_exporter.hpp:18
Definition simulation_parameters.hpp:54
Definition execinfo.hpp:12