diff options
Diffstat (limited to 'Source/Initialization/WarpXInitData.cpp')
-rw-r--r-- | Source/Initialization/WarpXInitData.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp index f9f95e15e..60121b3f4 100644 --- a/Source/Initialization/WarpXInitData.cpp +++ b/Source/Initialization/WarpXInitData.cpp @@ -247,6 +247,11 @@ WarpX::InitLevelData (int lev, Real /*time*/) if (E_ext_grid_s == "constant") pp.getarr("E_external_grid", E_external_grid); + // initialize the averaged fields only if the averaged algorithm + // is activated ('psatd.do_time_averaging=1') + ParmParse ppsatd("psatd"); + ppsatd.query("do_time_averaging", fft_do_time_averaging ); + for (int i = 0; i < 3; ++i) { current_fp[lev][i]->setVal(0.0); if (lev > 0) @@ -254,16 +259,33 @@ WarpX::InitLevelData (int lev, Real /*time*/) if (B_ext_grid_s == "constant" || B_ext_grid_s == "default") { Bfield_fp[lev][i]->setVal(B_external_grid[i]); + if (fft_do_time_averaging) { + Bfield_avg_fp[lev][i]->setVal(B_external_grid[i]); + } + if (lev > 0) { Bfield_aux[lev][i]->setVal(B_external_grid[i]); Bfield_cp[lev][i]->setVal(B_external_grid[i]); + if (fft_do_time_averaging) { + Bfield_avg_aux[lev][i]->setVal(B_external_grid[i]); + Bfield_avg_cp[lev][i]->setVal(B_external_grid[i]); + } } } if (E_ext_grid_s == "constant" || E_ext_grid_s == "default") { Efield_fp[lev][i]->setVal(E_external_grid[i]); + if (fft_do_time_averaging) { + Efield_avg_fp[lev][i]->setVal(E_external_grid[i]); + } + if (lev > 0) { Efield_aux[lev][i]->setVal(E_external_grid[i]); Efield_cp[lev][i]->setVal(E_external_grid[i]); + if (fft_do_time_averaging) { + Efield_avg_aux[lev][i]->setVal(E_external_grid[i]); + Efield_avg_cp[lev][i]->setVal(E_external_grid[i]); + } + } } } |