Phoxonics  1.0
Object Oriented FDTD Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SourceBase.hpp
Go to the documentation of this file.
1 /*
2  * SourceBase.hpp
3  *
4  * Created on: Jun 25, 2014
5  * Author: nano
6  */
7 
8 #ifndef SOURCEBASE_HPP_
9 #define SOURCEBASE_HPP_
10 
11 #include "../config/SimulationConfig.hpp"
12 #include "../common/SimulationItemBase.hpp"
13 #include "../common/Vector3D.hpp"
14 #include "../cells/CellsBase.hpp"
15 #include "../../../common/common.hpp"
16 #include <string>
17 #include <memory>
18 
19 namespace phoxonics {
20 namespace core {
21 
22 class SourceBase : public SimulationItemBase {
23 public:
24  explicit SourceBase();
25  virtual ~SourceBase();
26 
27  std::string component { "" };
28  Vector3D location;
29  Vector3D size;
30  std::string source_type { "" };
31 
32  // configures object and initializes data from config
33  virtual void configure(std::shared_ptr<ConfigBase> config_base) override;
34 
35  // prints object data
36  virtual void print_me() override;
37 
38  // apply the source to the grid cells
39  virtual void apply_source(std::shared_ptr<CellsBase> cells_base, double time);
40 };
41 
42 } /* namespace core */
43 } /* namespace phoxonics */
44 
45 #endif /* SOURCEBASE_HPP_ */
std::string component
Definition: SourceBase.hpp:27
Definition: CommonBase.hpp:14
virtual ~SourceBase()
Definition: SourceBase.cpp:17
virtual void apply_source(std::shared_ptr< CellsBase > cells_base, double time)
Definition: SourceBase.cpp:44
SourceBase()
Definition: SourceBase.cpp:13
Vector3D size
Definition: SourceBase.hpp:29
Vector3D location
Definition: SourceBase.hpp:28
std::string source_type
Definition: SourceBase.hpp:30
virtual void print_me() override
Definition: SourceBase.cpp:33
virtual void configure()
Definition: SimulationItemBase.cpp:21