diff options
Diffstat (limited to 'Source/Initialization/WarpXInitData.cpp')
-rw-r--r-- | Source/Initialization/WarpXInitData.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp index 496b14e7a..ff5442b00 100644 --- a/Source/Initialization/WarpXInitData.cpp +++ b/Source/Initialization/WarpXInitData.cpp @@ -2,6 +2,7 @@ #include <numeric> #include <AMReX_ParallelDescriptor.H> +#include <AMReX_ParmParse.H> #include <WarpX.H> #include <WarpX_f.H> @@ -257,3 +258,77 @@ WarpX::InitOpenbc () } } #endif + +void +WarpX::InitLevelData (int lev, Real time) +{ + for (int i = 0; i < 3; ++i) { + current_fp[lev][i]->setVal(0.0); + Efield_fp[lev][i]->setVal(0.0); + Bfield_fp[lev][i]->setVal(0.0); + } + + if (lev > 0) { + for (int i = 0; i < 3; ++i) { + Efield_aux[lev][i]->setVal(0.0); + Bfield_aux[lev][i]->setVal(0.0); + + current_cp[lev][i]->setVal(0.0); + Efield_cp[lev][i]->setVal(0.0); + Bfield_cp[lev][i]->setVal(0.0); + } + } + + if (F_fp[lev]) { + F_fp[lev]->setVal(0.0); + } + + if (rho_fp[lev]) { + rho_fp[lev]->setVal(0.0); + } + + if (F_cp[lev]) { + F_cp[lev]->setVal(0.0); + } + + if (rho_cp[lev]) { + rho_cp[lev]->setVal(0.0); + } + + if (costs[lev]) { + costs[lev]->setVal(0.0); + } +} + +#ifdef WARPX_USE_PSATD + +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); + Bfield_fp_fft[lev][0]->setVal(0.0); + Bfield_fp_fft[lev][1]->setVal(0.0); + Bfield_fp_fft[lev][2]->setVal(0.0); + current_fp_fft[lev][0]->setVal(0.0); + current_fp_fft[lev][1]->setVal(0.0); + current_fp_fft[lev][2]->setVal(0.0); + rho_fp_fft[lev]->setVal(0.0); + + if (lev > 0) + { + Efield_cp_fft[lev][0]->setVal(0.0); + Efield_cp_fft[lev][1]->setVal(0.0); + Efield_cp_fft[lev][2]->setVal(0.0); + Bfield_cp_fft[lev][0]->setVal(0.0); + Bfield_cp_fft[lev][1]->setVal(0.0); + Bfield_cp_fft[lev][2]->setVal(0.0); + current_cp_fft[lev][0]->setVal(0.0); + current_cp_fft[lev][1]->setVal(0.0); + current_cp_fft[lev][2]->setVal(0.0); + rho_cp_fft[lev]->setVal(0.0); + } +} + +#endif |