diff options
author | 2019-07-30 10:12:57 -0700 | |
---|---|---|
committer | 2019-07-30 10:12:57 -0700 | |
commit | b7b507d6f521e3bd31bf6ac4f86af4ea12471231 (patch) | |
tree | a1e587a65b342ca49964e3ad5505fb6df9e266d0 | |
parent | c52a3752bedaf1e1510d35e604146a1d0c251c63 (diff) | |
download | WarpX-b7b507d6f521e3bd31bf6ac4f86af4ea12471231.tar.gz WarpX-b7b507d6f521e3bd31bf6ac4f86af4ea12471231.tar.zst WarpX-b7b507d6f521e3bd31bf6ac4f86af4ea12471231.zip |
Put PML spectral-specific arguments in precompiler directives
-rw-r--r-- | Source/BoundaryConditions/PML.H | 6 | ||||
-rw-r--r-- | Source/BoundaryConditions/PML.cpp | 6 | ||||
-rw-r--r-- | Source/Initialization/WarpXInitData.cpp | 16 | ||||
-rw-r--r-- | Source/WarpX.H | 13 |
4 files changed, 24 insertions, 17 deletions
diff --git a/Source/BoundaryConditions/PML.H b/Source/BoundaryConditions/PML.H index 469805843..65cf73bbf 100644 --- a/Source/BoundaryConditions/PML.H +++ b/Source/BoundaryConditions/PML.H @@ -97,8 +97,10 @@ class PML public: PML (const amrex::BoxArray& ba, const amrex::DistributionMapping& dm, const amrex::Geometry* geom, const amrex::Geometry* cgeom, - int ncell, int delta, int ref_ratio, amrex::Real dt, - int nox_fft, int noy_fft, int noz_fft, bool do_nodal, + int ncell, int delta, int ref_ratio, +#ifdef WARPX_USE_PSATD + amrex::Real dt, int nox_fft, int noy_fft, int noz_fft, bool do_nodal, +#endif int do_dive_cleaning, int do_moving_window); void ComputePMLFactors (amrex::Real dt); diff --git a/Source/BoundaryConditions/PML.cpp b/Source/BoundaryConditions/PML.cpp index 6c00c1d93..b90d720e8 100644 --- a/Source/BoundaryConditions/PML.cpp +++ b/Source/BoundaryConditions/PML.cpp @@ -329,8 +329,10 @@ MultiSigmaBox::ComputePMLFactorsE (const Real* dx, Real dt) PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm, const Geometry* geom, const Geometry* cgeom, - int ncell, int delta, int ref_ratio, Real dt, - int nox_fft, int noy_fft, int noz_fft, bool do_nodal, + int ncell, int delta, int ref_ratio, +#ifdef WARPX_USE_PSATD + Real dt, int nox_fft, int noy_fft, int noz_fft, bool do_nodal, +#endif int do_dive_cleaning, int do_moving_window) : m_geom(geom), m_cgeom(cgeom) diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp index 6f27787e8..332acb473 100644 --- a/Source/Initialization/WarpXInitData.cpp +++ b/Source/Initialization/WarpXInitData.cpp @@ -1,6 +1,4 @@ -#include <numeric> - #include <AMReX_ParallelDescriptor.H> #include <AMReX_ParmParse.H> @@ -134,15 +132,19 @@ WarpX::InitPML () if (do_pml) { pml[0].reset(new PML(boxArray(0), DistributionMap(0), &Geom(0), nullptr, - pml_ncell, pml_delta, 0, dt[0], - nox_fft, noy_fft, noz_fft, do_nodal, + pml_ncell, pml_delta, 0, +#ifdef WARPX_USE_PSATD + dt[0], nox_fft, noy_fft, noz_fft, do_nodal, +#endif do_dive_cleaning, do_moving_window)); for (int lev = 1; lev <= finest_level; ++lev) { pml[lev].reset(new PML(boxArray(lev), DistributionMap(lev), &Geom(lev), &Geom(lev-1), - pml_ncell, pml_delta, refRatio(lev-1)[0], dt[lev], - nox_fft, noy_fft, noz_fft, do_nodal, + pml_ncell, pml_delta, refRatio(lev-1)[0], +#ifdef WARPX_USE_PSATD + dt[lev], nox_fft, noy_fft, noz_fft, do_nodal, +#endif do_dive_cleaning, do_moving_window)); } } @@ -325,7 +327,7 @@ WarpX::InitLevelData (int lev, Real time) void WarpX::InitLevelDataFFT (int lev, Real time) { - + Efield_fp_fft[lev][0]->setVal(0.0); Efield_fp_fft[lev][1]->setVal(0.0); Efield_fp_fft[lev][2]->setVal(0.0); diff --git a/Source/WarpX.H b/Source/WarpX.H index e9fe642a9..bf10b2a69 100644 --- a/Source/WarpX.H +++ b/Source/WarpX.H @@ -152,12 +152,12 @@ public: BilinearFilter bilinear_filter; amrex::Vector< std::unique_ptr<NCIGodfreyFilter> > nci_godfrey_filter_exeybz; amrex::Vector< std::unique_ptr<NCIGodfreyFilter> > nci_godfrey_filter_bxbyez; - + static int num_mirrors; amrex::Vector<amrex::Real> mirror_z; amrex::Vector<amrex::Real> mirror_z_width; amrex::Vector<int> mirror_z_npoints; - + void applyMirrors(amrex::Real time); void ComputeDt (); @@ -499,7 +499,7 @@ private: int warpx_do_continuous_injection = 0; int num_injected_species = -1; amrex::Vector<int> injected_plasma_species; - + int do_electrostatic = 0; int n_buffer = 4; amrex::Real const_dt = 0.5e-11; @@ -594,9 +594,6 @@ private: amrex::Vector< std::unique_ptr<amrex::MultiFab> > rho_cp_fft; #endif -int nox_fft = 16; -int noy_fft = 16; -int noz_fft = 16; #ifdef WARPX_USE_PSATD private: void EvolvePSATD (int numsteps); @@ -606,6 +603,10 @@ private: bool fft_hybrid_mpi_decomposition = false; int ngroups_fft = 4; int fftw_plan_measure = 1; + int nox_fft = 16; + int noy_fft = 16; + int noz_fft = 16; + amrex::Vector<std::unique_ptr<SpectralSolver>> spectral_solver_fp; amrex::Vector<std::unique_ptr<SpectralSolver>> spectral_solver_cp; #endif |