Phoxonics  1.0
Object Oriented FDTD Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SimulationManager.hpp
Go to the documentation of this file.
1 /*
2  * SimulationManager.hpp
3  *
4  * Created on: Oct 25, 2014
5  * Author: cuda
6  */
7 
8 #ifndef SIMULATIONMANAGER_HPP_
9 #define SIMULATIONMANAGER_HPP_
10 
11 #include "../config/ConfigJsonParser.hpp"
12 #include "../config/ConfigValidator.hpp"
13 #include "../../../common/common.hpp"
14 #include "../config/SimulationConfig.hpp"
15 #include "SimulationBase.hpp"
16 #include "SimulationFactory.hpp"
17 #include "SimulationBuilder.hpp"
18 #include "../common/SimulationItemBase.hpp"
19 
20 #include <string>
21 #include <memory>
22 #include <iostream>
23 #include <stdexcept>
24 
25 namespace phoxonics {
26 namespace core {
27 
28 class SimulationManager : public SimulationItemBase {
29 public:
30  explicit SimulationManager(std::string sims_folder, std::string simulation_file);
31  virtual ~SimulationManager();
32 
33  // start a specific simulation
34  virtual void start_simulation();
35 
36  // construct all parts of simulation into memory
37  virtual void construct_simulation();
38 
39 private:
40  // common utils
42 
43  // the main configuration file
44  std::string main_config_file_ { "main_config.json" };
45 
46  // the simulation configuration file, it can contain multiple simulations
47  std::string sim_config_file_ { "" };
48 
49  // general main config parsed from main config file
50  MainConfig main_config_;
51 
52  // list of simulation configs parsed from simulation file
53  SimulationConfig sim_config_;
54 
55  // parse config file and configure logger obj
56  void configure_logger();
57 
58  // parse simulation config file into obj
59  void parse_simulation_config();
60 
61  // construction and configuration helper
62  SimulationBuilder sim_builder_;
63 
64  // constructed simulation
65  std::shared_ptr<SimulationBase> sim_base_;
66 
67  // config validator
68  ConfigValidator config_validator_;
69 };
70 
71 } /* namespace core */
72 } /* namespace phoxonics */
73 
74 #endif /* SIMULATIONMANAGER_HPP_ */
Definition: CommonBase.hpp:14
SimulationManager(std::string sim_base_folder, std::string sim_run_folder, std::string sim_config_file)
Definition: SimulationManager.cpp:13
virtual void construct_simulation()
Definition: SimulationManager.cpp:72
Definition: File.hpp:19
virtual ~SimulationManager()
Definition: SimulationManager.cpp:43
virtual void start_simulation()
Definition: SimulationManager.cpp:79