Phoxonics  1.0
Object Oriented FDTD Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ElectroMagGaussian1D.hpp
Go to the documentation of this file.
1 /*
2  * ElectroMagGaussian1D.hpp
3  *
4  * Created on: Nov 19, 2014
5  * Author: nano
6  */
7 
8 #ifndef ELECTROMAGGAUSSIAN1D_HPP_
9 #define ELECTROMAGGAUSSIAN1D_HPP_
10 
11 #include "SourceBase.hpp"
12 #include "../config/ConfigBase.hpp"
13 #include "../config/SourceConfig.hpp"
14 #include "../cells/CellsBase.hpp"
15 #include "../cells/ElectroMagCells1D.hpp"
16 #include "SourceFactoryReg.hpp"
17 #include <string>
18 #include <memory>
19 #include <iostream>
20 #include <cmath>
21 
22 namespace phoxonics {
23 namespace core {
24 
26 public:
28  virtual ~ElectroMagGaussian1D();
29 
30  double resolution { 0.0 };
31  int spread { 0 };
32  int t0 { 0 };
33 
34  // configures object and initializes data from config
35  void configure(std::shared_ptr<ConfigBase> config_base) override final;
36 
37  // prints object data
38  void print_me() override final;
39 
40  // apply the source to the grid cells
41  void apply_source(std::shared_ptr<CellsBase> cells_base, double time) override final;
42 
43 private:
44  // casted cells
45  std::shared_ptr<ElectroMagCells1D> em_cells_1d_;
46 
47  // calculate source
48  double calculate_source(double time);
49 };
50 
51 } /* namespace core */
52 } /* namespace phoxonics */
53 
54 #endif /* ELECTROMAGGAUSSIAN1D_HPP_ */
int t0
Definition: ElectroMagGaussian1D.hpp:32
Definition: CellsBase.hpp:20
Definition: CommonBase.hpp:14
STL namespace.
void print_me() overridefinal
Definition: ElectroMagGaussian1D.cpp:80
virtual ~ElectroMagGaussian1D()
Definition: ElectroMagGaussian1D.cpp:19
int spread
Definition: ElectroMagGaussian1D.hpp:31
void apply_source(std::shared_ptr< CellsBase > cells_base, double time) overridefinal
Definition: ElectroMagGaussian1D.cpp:88
ElectroMagGaussian1D()
Definition: ElectroMagGaussian1D.cpp:15
Definition: ElectroMagGaussian1D.hpp:25
virtual void configure()
Definition: SimulationItemBase.cpp:21
Definition: ElectroMagCells1D.hpp:21
double resolution
Definition: ElectroMagGaussian1D.hpp:30
Definition: SourceBase.hpp:22