8 #ifndef ELECTROMAGNETIC2D_HPP_
9 #define ELECTROMAGNETIC2D_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"
49 std::shared_ptr<
PmlBase> pml_base) override final;
83 bool has_pml_ {
false };
85 std::shared_ptr<phoxonics::common::Hdf5Grid2DSlice> hdf5_grid2d_slice_c1_ {
nullptr };
86 std::shared_ptr<phoxonics::common::Hdf5Grid2DSlice> hdf5_grid2d_slice_c2_ {
nullptr };
87 std::shared_ptr<phoxonics::common::Hdf5Grid2DSlice> hdf5_grid2d_slice_c3_ {
nullptr };
void record_hdf5_slice() overridefinal
Definition: ElectroMagnetic2D.cpp:336
void record_hdf5_detectors() overridefinal
Definition: ElectroMagnetic2D.cpp:372
int periods
Definition: ElectroMagnetic2D.hpp:31
Definition: CommonBase.hpp:14
void generate_hdf5_shell(bool execute_shell) overridefinal
Definition: ElectroMagnetic2D.cpp:379
void visualize_real_time() overridefinal
Definition: ElectroMagnetic2D.cpp:349
void print_me() overridefinal
Definition: ElectroMagnetic2D.cpp:115
void configure() overridefinal
Definition: ElectroMagnetic2D.cpp:23
std::string component1
Definition: ElectroMagnetic2D.hpp:33
std::string propagation_direction
Definition: ElectroMagnetic2D.hpp:36
std::shared_ptr< ElectroMagCells2D > em_cells_2d_
Definition: ElectroMagnetic2D.hpp:37
virtual ~ElectroMagnetic2D()
Definition: ElectroMagnetic2D.cpp:19
std::string component2
Definition: ElectroMagnetic2D.hpp:34
Definition: ElectroMagnetic2D.hpp:26
Definition: PmlBase.hpp:22
Definition: DetectorBase.hpp:22
int use_threads
Definition: ElectroMagnetic2D.hpp:32
Definition: EngineBase.hpp:26
Definition: GridBase.hpp:26
ElectroMagnetic2D()
Definition: ElectroMagnetic2D.cpp:15
void apply_sources(double time) overridefinal
Definition: ElectroMagnetic2D.cpp:301
void process() overridefinal
Definition: ElectroMagnetic2D.cpp:140
void calculate_detectors_amp_phase() overridefinal
Definition: ElectroMagnetic2D.cpp:365
Definition: ElectroMagPml2D.hpp:21
void update_field(std::string component) overridefinal
Definition: ElectroMagnetic2D.cpp:168
Definition: SourceBase.hpp:22
std::string component3
Definition: ElectroMagnetic2D.hpp:35
void apply_detectors(double time) overridefinal
Definition: ElectroMagnetic2D.cpp:308
void init_hdf5_files() overridefinal
Definition: ElectroMagnetic2D.cpp:315
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: ElectroMagnetic2D.cpp:126