From 3130a984f5ac2ebf0c56db20fb3a42c07760ae2d Mon Sep 17 00:00:00 2001 From: MaxThevenet Date: Thu, 17 Oct 2019 16:00:38 -0700 Subject: add external field in new cells if moving window --- Source/Utils/WarpXMovingWindow.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'Source/Utils/WarpXMovingWindow.cpp') 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 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]; }); } -- cgit v1.2.3 From 5cb7bf5de6ff95a78aa6379e010c54629892c701 Mon Sep 17 00:00:00 2001 From: MaxThevenet Date: Thu, 17 Oct 2019 17:50:47 -0700 Subject: pass component, not full vector --- Source/Utils/WarpXMovingWindow.cpp | 12 ++++++------ Source/WarpX.H | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'Source/Utils/WarpXMovingWindow.cpp') diff --git a/Source/Utils/WarpXMovingWindow.cpp b/Source/Utils/WarpXMovingWindow.cpp index f675c6979..1597eea01 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, B_external_grid); - shiftMF(*Efield_fp[lev][dim], geom[lev], num_shift, dir, E_external_grid); + shiftMF(*Bfield_fp[lev][dim], geom[lev], num_shift, dir, B_external_grid[dim]); + shiftMF(*Efield_fp[lev][dim], geom[lev], num_shift, dir, E_external_grid[dim]); 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, B_external_grid); - shiftMF(*Efield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, E_external_grid); + shiftMF(*Bfield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, B_external_grid[dim]); + shiftMF(*Efield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, E_external_grid[dim]); shiftMF(*Bfield_aux[lev][dim], geom[lev], num_shift, dir); shiftMF(*Efield_aux[lev][dim], geom[lev], num_shift, dir); if (move_j) { @@ -204,7 +204,7 @@ WarpX::MoveWindow (bool move_j) void WarpX::shiftMF (MultiFab& mf, const Geometry& geom, int num_shift, int dir, - amrex::Vector external_field) + amrex::Real external_field) { BL_PROFILE("WarpX::shiftMF()"); const BoxArray& ba = mf.boxArray(); @@ -258,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) = external_field[n]; + srcfab(i,j,k,n) = external_field; }); } diff --git a/Source/WarpX.H b/Source/WarpX.H index 3753b770a..f5723f92e 100644 --- a/Source/WarpX.H +++ b/Source/WarpX.H @@ -70,7 +70,7 @@ public: MultiParticleContainer& GetPartContainer () { return *mypc; } static void shiftMF(amrex::MultiFab& mf, const amrex::Geometry& geom, int num_shift, int dir, - amrex::Vector external_field = {0.,0.,0.}); + amrex::Real external_field = 0.); static void GotoNextLine (std::istream& is); -- cgit v1.2.3 From da52bf61ba64aac9a90917dcc6744d8b0a58185d Mon Sep 17 00:00:00 2001 From: MaxThevenet Date: Thu, 17 Oct 2019 18:48:19 -0700 Subject: esc-x delete-trailing-whitespace --- Source/Utils/WarpXMovingWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Utils/WarpXMovingWindow.cpp') diff --git a/Source/Utils/WarpXMovingWindow.cpp b/Source/Utils/WarpXMovingWindow.cpp index 1597eea01..c577da7f3 100644 --- a/Source/Utils/WarpXMovingWindow.cpp +++ b/Source/Utils/WarpXMovingWindow.cpp @@ -203,7 +203,7 @@ 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::Real external_field) { BL_PROFILE("WarpX::shiftMF()"); -- cgit v1.2.3