aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-07-30 10:12:57 -0700
committerGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-07-30 10:12:57 -0700
commitb7b507d6f521e3bd31bf6ac4f86af4ea12471231 (patch)
treea1e587a65b342ca49964e3ad5505fb6df9e266d0
parentc52a3752bedaf1e1510d35e604146a1d0c251c63 (diff)
downloadWarpX-b7b507d6f521e3bd31bf6ac4f86af4ea12471231.tar.gz
WarpX-b7b507d6f521e3bd31bf6ac4f86af4ea12471231.tar.zst
WarpX-b7b507d6f521e3bd31bf6ac4f86af4ea12471231.zip
Put PML spectral-specific arguments in precompiler directives
-rw-r--r--Source/BoundaryConditions/PML.H6
-rw-r--r--Source/BoundaryConditions/PML.cpp6
-rw-r--r--Source/Initialization/WarpXInitData.cpp16
-rw-r--r--Source/WarpX.H13
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