Phoxonics  1.0
Object Oriented FDTD Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SimulationBuilder.hpp
Go to the documentation of this file.
1 /*
2  * SimulationBuilder.hpp
3  *
4  * Created on: Nov 14, 2014
5  * Author: cuda
6  */
7 
8 #ifndef SIMULATIONBUILDER_HPP_
9 #define SIMULATIONBUILDER_HPP_
10 
11 #include "SimulationBase.hpp"
12 #include "SimulationFactory.hpp"
13 #include "../source/SourceBase.hpp"
14 #include "../source/SourceFactory.hpp"
15 #include "../pml/PmlBase.hpp"
16 #include "../pml/PmlFactory.hpp"
17 #include "../geometry/GeometryBase.hpp"
18 #include "../geometry/GeometryFactory.hpp"
19 #include "../engine/EngineBase.hpp"
20 #include "../engine/EngineFactory.hpp"
21 #include "../grid/GridBase.hpp"
22 #include "../grid/GridFactory.hpp"
23 #include "../cell/ElectroMagCell.hpp"
24 #include "../cells/CellsBase.hpp"
25 #include "../cells/CellsFactory.hpp"
26 #include "../common/SimulationItemBase.hpp"
27 
28 #include <string>
29 #include <memory>
30 #include <iostream>
31 #include <stdexcept>
32 
33 namespace phoxonics {
34 namespace core {
35 
37 public:
39  explicit SimulationBuilder(SimulationConfig sim_config);
40  virtual ~SimulationBuilder();
41 
42  // construct and configure simulation
43  std::shared_ptr<SimulationBase> build_simulation();
44 
45  // generate geometries in grid
46  void generate_geometries(std::shared_ptr<SimulationBase> sim_base);
47 
48  // generate h5 file from grid
49  void generate_cells_h5(std::shared_ptr<SimulationBase> sim_base,
50  std::string material_property);
51 
52 private:
53  // simulation configuration
54  SimulationConfig sim_config_;
55 
58 };
59 
60 } /* namespace core */
61 } /* namespace phoxonics */
62 
63 #endif /* SIMULATIONBUILDER_HPP_ */
virtual ~SimulationBuilder()
Definition: SimulationBuilder.cpp:22
Definition: SimulationBuilder.hpp:36
Definition: CommonBase.hpp:14
Definition: SimulationConfig.hpp:33
SimulationBuilder()
Definition: SimulationBuilder.cpp:13
void generate_cells_h5(std::shared_ptr< SimulationBase > sim_base, std::string material_property)
Definition: SimulationBuilder.cpp:52
Definition: Logger.hpp:23
Definition: Formatter.hpp:18
void generate_geometries(std::shared_ptr< SimulationBase > sim_base)
Definition: SimulationBuilder.cpp:44
std::shared_ptr< SimulationBase > build_simulation()
Definition: SimulationBuilder.cpp:26