8 #ifndef PHXELECTROMAGNETIC2D_HPP_
9 #define PHXELECTROMAGNETIC2D_HPP_
11 #include "../../../common/common.hpp"
12 #include "../../../visual/visual.hpp"
15 #include "../cells/ElectroMagCells2D.hpp"
16 #include "../cell/ElectroMagCell.hpp"
17 #include "../pml/ElectroMagPml2D.hpp"
66 std::shared_ptr<
PmlBase> pml_base) override final;
102 bool has_pml_ {
false };
104 void init_detectors();
106 std::shared_ptr<phoxonics::common::Hdf5Grid2DSlice> hdf5_grid2d_slice_c1_ {
nullptr };
107 std::shared_ptr<phoxonics::common::Hdf5Grid2DSlice> hdf5_grid2d_slice_c2_ {
nullptr };
108 std::shared_ptr<phoxonics::common::Hdf5Grid2DSlice> hdf5_grid2d_slice_c3_ {
nullptr };
std::string component1
Definition: PhxElectroMagnetic2D.hpp:34
double lambda
Definition: PhxElectroMagnetic2D.hpp:42
double t_f
Definition: PhxElectroMagnetic2D.hpp:50
void apply_sources(double time) overridefinal
Definition: PhxElectroMagnetic2D.cpp:319
Definition: ElectroMagCells2D.hpp:29
Definition: CommonBase.hpp:14
void configure() overridefinal
Definition: PhxElectroMagnetic2D.cpp:23
void record_hdf5_slice() overridefinal
Definition: PhxElectroMagnetic2D.cpp:354
std::string propagation_direction
Definition: PhxElectroMagnetic2D.hpp:37
void update_field(std::string component) overridefinal
Definition: PhxElectroMagnetic2D.cpp:185
double ttao_0
Definition: PhxElectroMagnetic2D.hpp:47
Definition: PhxElectroMagnetic2D.hpp:26
double omega_0
Definition: PhxElectroMagnetic2D.hpp:48
double sigma
Definition: PhxElectroMagnetic2D.hpp:51
std::string component3
Definition: PhxElectroMagnetic2D.hpp:36
virtual ~PhxElectroMagnetic2D()
Definition: PhxElectroMagnetic2D.cpp:19
int time_steps
Definition: PhxElectroMagnetic2D.hpp:32
void start(std::shared_ptr< GridBase > grid_base, std::vector< std::shared_ptr< SourceBase >> sources_base, std::vector< std::shared_ptr< DetectorBase >> detectors_base, std::shared_ptr< PmlBase > pml_base) overridefinal
Definition: PhxElectroMagnetic2D.cpp:140
double tao_0
Definition: PhxElectroMagnetic2D.hpp:46
void generate_hdf5_shell(bool execute_shell) overridefinal
Definition: PhxElectroMagnetic2D.cpp:397
PhxElectroMagnetic2D()
Definition: PhxElectroMagnetic2D.cpp:15
void print_me() overridefinal
Definition: PhxElectroMagnetic2D.cpp:120
int periods
Definition: PhxElectroMagnetic2D.hpp:31
double resolution
Definition: PhxElectroMagnetic2D.hpp:43
Definition: PmlBase.hpp:22
Definition: DetectorBase.hpp:22
Definition: EngineBase.hpp:26
void process() overridefinal
Definition: PhxElectroMagnetic2D.cpp:155
Definition: GridBase.hpp:26
void record_hdf5_detectors() overridefinal
Definition: PhxElectroMagnetic2D.cpp:390
double t_0
Definition: PhxElectroMagnetic2D.hpp:49
std::string h5topng_zoom
Definition: PhxElectroMagnetic2D.hpp:38
void visualize_real_time() overridefinal
Definition: PhxElectroMagnetic2D.cpp:367
std::string component2
Definition: PhxElectroMagnetic2D.hpp:35
Definition: ElectroMagPml2D.hpp:21
double dt
Definition: PhxElectroMagnetic2D.hpp:54
void apply_detectors(double time) overridefinal
Definition: PhxElectroMagnetic2D.cpp:326
Definition: SourceBase.hpp:22
int use_threads
Definition: PhxElectroMagnetic2D.hpp:33
double dy
Definition: PhxElectroMagnetic2D.hpp:53
double dx
Definition: PhxElectroMagnetic2D.hpp:52
void calculate_detectors_amp_phase() overridefinal
Definition: PhxElectroMagnetic2D.cpp:383
void init_hdf5_files() overridefinal
Definition: PhxElectroMagnetic2D.cpp:333
double lambda_0
Definition: PhxElectroMagnetic2D.hpp:41