3#ifndef __CORE__SERDE_HPP__ 
    4#define __CORE__SERDE_HPP__ 
    5#include <core/global_initaliser.hpp> 
    7#include <core/case_data.hpp> 
   12  void save_simulation(
const Core::CaseData& case_data);
 
   13  bool load_simulation(Core::GlobalInitialiser& gi,
 
   14                       Core::CaseData& case_data,
 
   15                       std::string_view ser_filename);
 
   21#  include <cereal/archives/binary.hpp> 
   29template <
typename T = 
void>
 
   30  requires AutoGenerated::FlagCompileTime::use_cereal_serde
 
   33  std::cout << 
"Serialization..." << std::endl;
 
   34  SerDe::save_simulation(case_data);
 
   37template <
typename T = 
void>
 
   38  requires AutoGenerated::FlagCompileTime::use_cereal_serde
 
   39std::optional<Core::CaseData>
 
   42          std::optional<Simulation::Feed::SimulationFeed> feed)
 
   52  auto transition = gi.init_transitionner();
 
   53  if (!transition.has_value())
 
   59  gi.init_feed(std::move(feed));
 
   62    if (!params.serde_file.has_value())
 
   66    std::string serde_filename =
 
   67        *params.serde_file + std::to_string(exec.current_rank) + 
".raw";
 
   68    std::cout << serde_filename << std::endl;
 
   69    const bool ok_init = SerDe::load_simulation(gi, case_data, serde_filename);
 
   71    if (!gi.check_init_terminate() || !ok_init)
 
   76  catch (std::exception& e)
 
   78    auto err = 
"CORE::load::load_simulation:" + std::string(e.what());
 
   79    throw std::runtime_error(err);
 
   82  case_data.
params = gi.get_parameters();
 
   92template <
typename T = 
void>
 
   93  requires(!AutoGenerated::FlagCompileTime::use_cereal_serde)
 
   99template <
typename T = 
void>
 
  100  requires(!AutoGenerated::FlagCompileTime::use_cereal_serde)
 
  101[[maybe_unused]] std::optional<Core::CaseData>
 
  102impl_load([[maybe_unused]] 
const ExecInfo& exec,
 
  104          [[maybe_unused]] std::optional<Simulation::Feed::SimulationFeed> feed)
 
A class responsible for initializing various components of a simulation framework.
Definition global_initaliser.hpp:43
Holds the data required to execute a simulation case.
Definition case_data.hpp:38
ExecInfo exec_info
Information about the execution environment.
Definition case_data.hpp:71
SimulationParameters params
Parameters that configure the simulation.
Definition case_data.hpp:53
std::unique_ptr< CmaUtils::FlowMapTransitionner > transitioner
Unique pointer to the flow map transitioner.
Definition case_data.hpp:62
A structure to hold user-defined control parameters for simulation settings.
Definition simulation_parameters.hpp:24
Definition execinfo.hpp:12