aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils/WarpXMovingWindow.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-10-17 16:00:38 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-10-17 16:00:38 -0700
commit3130a984f5ac2ebf0c56db20fb3a42c07760ae2d (patch)
tree02f100468142b23e88a83de69b19539b95e215ce /Source/Utils/WarpXMovingWindow.cpp
parentdd12994479146ecc1dc8722b0b25e42ada0dde3e (diff)
downloadWarpX-3130a984f5ac2ebf0c56db20fb3a42c07760ae2d.tar.gz
WarpX-3130a984f5ac2ebf0c56db20fb3a42c07760ae2d.tar.zst
WarpX-3130a984f5ac2ebf0c56db20fb3a42c07760ae2d.zip
add external field in new cells if moving window
Diffstat (limited to 'Source/Utils/WarpXMovingWindow.cpp')
-rw-r--r--Source/Utils/WarpXMovingWindow.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/Source/Utils/WarpXMovingWindow.cpp b/Source/Utils/WarpXMovingWindow.cpp
index f84701a02..f675c6979 100644
--- a/Source/Utils/WarpXMovingWindow.cpp
+++ b/Source/Utils/WarpXMovingWindow.cpp
@@ -99,8 +99,8 @@ WarpX::MoveWindow (bool move_j)
for (int dim = 0; dim < 3; ++dim) {
// Fine grid
- shiftMF(*Bfield_fp[lev][dim], geom[lev], num_shift, dir);
- shiftMF(*Efield_fp[lev][dim], geom[lev], num_shift, dir);
+ shiftMF(*Bfield_fp[lev][dim], geom[lev], num_shift, dir, B_external_grid);
+ shiftMF(*Efield_fp[lev][dim], geom[lev], num_shift, dir, E_external_grid);
if (move_j) {
shiftMF(*current_fp[lev][dim], geom[lev], num_shift, dir);
}
@@ -113,8 +113,8 @@ WarpX::MoveWindow (bool move_j)
if (lev > 0) {
// Coarse grid
- shiftMF(*Bfield_cp[lev][dim], geom[lev-1], num_shift_crse, dir);
- shiftMF(*Efield_cp[lev][dim], geom[lev-1], num_shift_crse, dir);
+ shiftMF(*Bfield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, B_external_grid);
+ shiftMF(*Efield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, E_external_grid);
shiftMF(*Bfield_aux[lev][dim], geom[lev], num_shift, dir);
shiftMF(*Efield_aux[lev][dim], geom[lev], num_shift, dir);
if (move_j) {
@@ -203,7 +203,8 @@ WarpX::MoveWindow (bool move_j)
}
void
-WarpX::shiftMF (MultiFab& mf, const Geometry& geom, int num_shift, int dir)
+WarpX::shiftMF (MultiFab& mf, const Geometry& geom, int num_shift, int dir,
+ amrex::Vector<amrex::Real> external_field)
{
BL_PROFILE("WarpX::shiftMF()");
const BoxArray& ba = mf.boxArray();
@@ -257,7 +258,7 @@ WarpX::shiftMF (MultiFab& mf, const Geometry& geom, int num_shift, int dir)
if (outbox.ok()) {
AMREX_PARALLEL_FOR_4D ( outbox, nc, i, j, k, n,
{
- srcfab(i,j,k,n) = 0.0;
+ srcfab(i,j,k,n) = external_field[n];
});
}