Phoxonics  1.0
Object Oriented FDTD Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ElectroMagPml2D.hpp
Go to the documentation of this file.
1 /*
2  * ElectroMagPml2D.hpp
3  *
4  * Created on: Oct 9, 2014
5  * Author: nano
6  */
7 
8 #ifndef ELECTROMAGPML2D_HPP_
9 #define ELECTROMAGPML2D_HPP_
10 
11 #include "PmlBase.hpp"
12 #include "PmlFactoryReg.hpp"
13 #include <string>
14 #include <vector>
15 #include <iostream>
16 #include <cmath>
17 
18 namespace phoxonics {
19 namespace core {
20 
21 class ElectroMagPml2D : public PmlBase {
22 public:
23  explicit ElectroMagPml2D();
24  virtual ~ElectroMagPml2D();
25 
26  // configures object and initializes data from config
27  void configure(std::shared_ptr<ConfigBase> config_base) override final;
28 
29  // prints object data
30  void print_me() override final;
31 
32  // aply pml
33  void apply_pml(std::shared_ptr<CellsBase> cells_base) override final;
34 
35  double xn { 0.0 };
36  double xxn { 0.0 };
37  double xnum { 0.0 };
38  double xd { 0.0 };
39  double curl_e { 0.0 };
40 
41  std::vector<double> gi2;
42  std::vector<double> gi3;
43 
44  std::vector<double> fi1;
45  std::vector<double> fi2;
46  std::vector<double> fi3;
47 
48  std::vector<double> gj2;
49  std::vector<double> gj3;
50 
51  std::vector<double> fj1;
52  std::vector<double> fj2;
53  std::vector<double> fj3;
54 
55  std::vector<std::vector<double>> ihx;
56  std::vector<std::vector<double>> ihy;
57 };
58 
59 } /* namespace core */
60 } /* namespace phoxonics */
61 
62 #endif /* ELECTROMAGPML2D_HPP_ */
double xnum
Definition: ElectroMagPml2D.hpp:37
double curl_e
Definition: ElectroMagPml2D.hpp:39
std::vector< std::vector< double > > ihx
Definition: ElectroMagPml2D.hpp:55
Definition: CommonBase.hpp:14
std::vector< double > fi3
Definition: ElectroMagPml2D.hpp:46
double xn
Definition: ElectroMagPml2D.hpp:35
std::vector< double > gi2
Definition: ElectroMagPml2D.hpp:41
void print_me() overridefinal
Definition: ElectroMagPml2D.cpp:102
std::vector< double > gj3
Definition: ElectroMagPml2D.hpp:49
double xxn
Definition: ElectroMagPml2D.hpp:36
std::vector< double > gj2
Definition: ElectroMagPml2D.hpp:48
std::vector< std::vector< double > > ihy
Definition: ElectroMagPml2D.hpp:56
ElectroMagPml2D()
Definition: ElectroMagPml2D.cpp:15
double xd
Definition: ElectroMagPml2D.hpp:38
std::vector< double > fj3
Definition: ElectroMagPml2D.hpp:53
std::vector< double > gi3
Definition: ElectroMagPml2D.hpp:42
virtual ~ElectroMagPml2D()
Definition: ElectroMagPml2D.cpp:19
Definition: PmlBase.hpp:22
void apply_pml(std::shared_ptr< CellsBase > cells_base) overridefinal
Definition: ElectroMagPml2D.cpp:107
std::vector< double > fi2
Definition: ElectroMagPml2D.hpp:45
virtual void configure()
Definition: SimulationItemBase.cpp:21
Definition: ElectroMagPml2D.hpp:21
std::vector< double > fj2
Definition: ElectroMagPml2D.hpp:52
std::vector< double > fi1
Definition: ElectroMagPml2D.hpp:44
std::vector< double > fj1
Definition: ElectroMagPml2D.hpp:51