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 
29 public:
30  explicit SimulationManager(std::string sim_base_folder, std::string sim_run_folder, std::string sim_config_file);
31  virtual ~SimulationManager();
32 
33  virtual void start_simulation(); // start a specific simulation
34  virtual void construct_simulation(); // construct all parts of simulation into memory
35 
36 private:
37  phoxonics::common::File file_; // common utils
38 
39  std::string main_config_file_ { "phoxonics_config.json" }; // the main configuration file
40  MainConfig main_config_; // general main config parsed from main config file
41  SimulationConfig sim_config_; // list of simulation configs parsed from simulation file
42 
43  void configure_logger(); // parse config file and configure logger obj
44  void parse_simulation_config(); // parse simulation config file into obj
45 
46  SimulationBuilder sim_builder_; // construction and configuration helper
47  std::shared_ptr<SimulationBase> sim_base_; // constructed simulation
48  ConfigValidator config_validator_;
49 };
50 
51 } /* namespace core */
52 } /* namespace phoxonics */
53 
54 #endif /* SIMULATIONMANAGER_HPP_ */
Definition: SimulationBuilder.hpp:36
Definition: MainConfig.hpp:16
Definition: ConfigValidator.hpp:30
Definition: CommonBase.hpp:14
SimulationManager(std::string sim_base_folder, std::string sim_run_folder, std::string sim_config_file)
Definition: SimulationManager.cpp:13
Definition: SimulationConfig.hpp:33
virtual void construct_simulation()
Definition: SimulationManager.cpp:72
Definition: File.hpp:19
Definition: SimulationItemBase.hpp:22
Definition: SimulationManager.hpp:28
virtual ~SimulationManager()
Definition: SimulationManager.cpp:43
virtual void start_simulation()
Definition: SimulationManager.cpp:79