BioCMAMC-ST
case_data.hpp
1#ifndef __CASE_DATA__HPP__
2#define __CASE_DATA__HPP__
3
4#include "cma_utils/alias.hpp"
5#include "simulation/simulation_getter.hpp"
6#include <common/execinfo.hpp>
7#include <common/logger.hpp>
8#include <core/simulation_parameters.hpp>
9#include <memory>
10#include <optional>
11#include <simulation/feed_descriptor.hpp>
12#include <simulation/mass_transfer.hpp>
13
14namespace Simulation
15{
16 class SimulationUnit;
17} // namespace Simulation
18
19namespace CmaUtils
20{
21 class FlowMapTransitionner;
22} // namespace CmaUtils
23
27namespace Core
28{
29
39 struct CaseData
40 {
41
42 CaseData();
43
50 std::unique_ptr<Simulation::SimulationUnit> simulation;
51
59
67 // std::unique_ptr<CmaUtils::FlowMapTransitionner> transitioner;
68
70
79 };
80
84 void exec(std::shared_ptr<IO::Logger> logger, CaseData case_data);
85
86 std::optional<Core::CaseData>
87 load(std::shared_ptr<IO::Logger>& logger,
88 const ExecInfo& exec,
89 const UserControlParameters&& params,
90 std::optional<Simulation::Feed::SimulationFeed> feed = std::nullopt);
91
113 ExecInfo runtime_init(int argc,
114 char** argv,
115 std::optional<std::size_t> force_run_id = std::nullopt);
116} // namespace Core
117
118#endif
Definition simulation.hpp:45
Definition host_specific.hpp:17
rust::Box< TransitionerWrapper > TransitionnerPtrType
Opaque type for flowmap transitioner.
Definition alias.hpp:14
Core component to perform simulation.
Definition data_exporter.hpp:19
void exec(std::shared_ptr< IO::Logger > logger, CaseData case_data)
Start simulation.
Definition case_data.cpp:76
std::optional< Core::CaseData > load(std::shared_ptr< IO::Logger > &logger, const ExecInfo &exec, const UserControlParameters &&params, std::optional< Simulation::Feed::SimulationFeed > feed=std::nullopt)
Definition case_data.cpp:141
ExecInfo runtime_init(int argc, char **argv, std::optional< std::size_t > force_run_id=std::nullopt)
Initializes the runtime environment based on command-line arguments and simulation parameters.
Definition case_data.cpp:151
Namespace that contains classes and structures related to simulation handling.
Definition host_specific.hpp:12
Holds the data required to execute a simulation case.
Definition case_data.hpp:40
ExecInfo exec_info
Information about the execution environment.
Definition case_data.hpp:78
SimulationParameters params
Parameters that configure the simulation.
Definition case_data.hpp:58
std::unique_ptr< Simulation::SimulationUnit > simulation
Unique pointer to the simulation unit.
Definition case_data.hpp:50
CaseData()
Definition case_data.cpp:68
CmaUtils::TransitionnerPtrType transitioner
Unique pointer to the flow map transitioner.
Definition case_data.hpp:69
Definition simulation_parameters.hpp:58
A structure to hold user-defined control parameters for simulation settings.
Definition simulation_parameters.hpp:24
Definition execinfo.hpp:12