aboutsummaryrefslogtreecommitdiff
path: root/Source/WarpX.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-07-23 11:39:18 -0700
committerGravatar GitHub <noreply@github.com> 2019-07-23 11:39:18 -0700
commit96519e76de7a4191bb3e0383df37fad198d02940 (patch)
treebcb5ff7912783a275f82c172209a3001ad9f4f4f /Source/WarpX.cpp
parent8bfa6e2399c1e568d6f5305d3280397aadf9a4fe (diff)
parentc5a8f4c51c9f60625b5fc295634f2b16b5c5a215 (diff)
downloadWarpX-96519e76de7a4191bb3e0383df37fad198d02940.tar.gz
WarpX-96519e76de7a4191bb3e0383df37fad198d02940.tar.zst
WarpX-96519e76de7a4191bb3e0383df37fad198d02940.zip
Merge pull request #228 from RemiLehe/clean_hybrid_psatd
Remove dependency on FFTW, when compiling the spectral solver on GPU
Diffstat (limited to 'Source/WarpX.cpp')
-rw-r--r--Source/WarpX.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp
index 08948227c..f379d5f4c 100644
--- a/Source/WarpX.cpp
+++ b/Source/WarpX.cpp
@@ -202,6 +202,10 @@ WarpX::WarpX ()
costs.resize(nlevs_max);
#ifdef WARPX_USE_PSATD
+ spectral_solver_fp.resize(nlevs_max);
+ spectral_solver_cp.resize(nlevs_max);
+#endif
+#ifdef WARPX_USE_PSATD_HYBRID
Efield_fp_fft.resize(nlevs_max);
Bfield_fp_fft.resize(nlevs_max);
current_fp_fft.resize(nlevs_max);
@@ -215,9 +219,6 @@ WarpX::WarpX ()
dataptr_fp_fft.resize(nlevs_max);
dataptr_cp_fft.resize(nlevs_max);
- spectral_solver_fp.resize(nlevs_max);
- spectral_solver_cp.resize(nlevs_max);
-
ba_valid_fp_fft.resize(nlevs_max);
ba_valid_cp_fft.resize(nlevs_max);
@@ -511,8 +512,6 @@ WarpX::ReadParameters ()
pp.query("nox", nox_fft);
pp.query("noy", noy_fft);
pp.query("noz", noz_fft);
- // Override value
- if (fft_hybrid_mpi_decomposition==false) ngroups_fft=ParallelDescriptor::NProcs();
}
#endif
@@ -568,8 +567,12 @@ WarpX::MakeNewLevelFromScratch (int lev, Real time, const BoxArray& new_grids,
#ifdef WARPX_USE_PSATD
if (fft_hybrid_mpi_decomposition){
+#ifdef WARPX_USE_PSATD_HYBRID
AllocLevelDataFFT(lev);
InitLevelDataFFT(lev, time);
+#else
+ amrex::Abort("The option `psatd.fft_hybrid_mpi_decomposition` does not work on GPU.");
+#endif
}
#endif
}
@@ -614,7 +617,7 @@ WarpX::ClearLevel (int lev)
costs[lev].reset();
-#ifdef WARPX_USE_PSATD
+#ifdef WARPX_USE_PSATD_HYBRID
for (int i = 0; i < 3; ++i) {
Efield_fp_fft[lev][i].reset();
Bfield_fp_fft[lev][i].reset();