diff options
author | 2019-07-23 11:39:18 -0700 | |
---|---|---|
committer | 2019-07-23 11:39:18 -0700 | |
commit | 96519e76de7a4191bb3e0383df37fad198d02940 (patch) | |
tree | bcb5ff7912783a275f82c172209a3001ad9f4f4f /Source/WarpX.cpp | |
parent | 8bfa6e2399c1e568d6f5305d3280397aadf9a4fe (diff) | |
parent | c5a8f4c51c9f60625b5fc295634f2b16b5c5a215 (diff) | |
download | WarpX-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.cpp | 15 |
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(); |