aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils/WarpXMovingWindow.cpp
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2023-03-03 11:21:40 -0800
committerGravatar GitHub <noreply@github.com> 2023-03-03 19:21:40 +0000
commitdec1e18adbf3abb8e071df158b22e859ebd73807 (patch)
tree3ab3ec99344f0d8c78e9d23e2f987610ab03262b /Source/Utils/WarpXMovingWindow.cpp
parent6d9f5af2d31c35229be511fc239c474b5261d0df (diff)
downloadWarpX-dec1e18adbf3abb8e071df158b22e859ebd73807.tar.gz
WarpX-dec1e18adbf3abb8e071df158b22e859ebd73807.tar.zst
WarpX-dec1e18adbf3abb8e071df158b22e859ebd73807.zip
Moving window: shift G MultiFab w/ div(B) cleaning (#3725)
Diffstat (limited to '')
-rw-r--r--Source/Utils/WarpXMovingWindow.cpp38
1 files changed, 33 insertions, 5 deletions
diff --git a/Source/Utils/WarpXMovingWindow.cpp b/Source/Utils/WarpXMovingWindow.cpp
index 887d45504..bdf84af4b 100644
--- a/Source/Utils/WarpXMovingWindow.cpp
+++ b/Source/Utils/WarpXMovingWindow.cpp
@@ -233,24 +233,52 @@ WarpX::MoveWindow (const int step, bool move_j)
}
}
- // Shift scalar component F for dive cleaning
- if (do_dive_cleaning) {
+ // Shift scalar field F with div(E) cleaning
+ // TODO: shift F from pml_rz for RZ geometry with PSATD, once implemented
+ if (do_dive_cleaning)
+ {
// Fine grid
shiftMF(*F_fp[lev], geom[lev], num_shift, dir, lev, do_update_cost);
- if (do_pml && pml[lev]->ok()) {
+ if (do_pml && pml[lev]->ok())
+ {
amrex::MultiFab* pml_F = pml[lev]->GetF_fp();
shiftMF(*pml_F, geom[lev], num_shift, dir, lev, dont_update_cost);
}
- if (lev > 0) {
+ if (lev > 0)
+ {
// Coarse grid
shiftMF(*F_cp[lev], geom[lev-1], num_shift_crse, dir, lev, do_update_cost);
- if (do_pml && pml[lev]->ok()) {
+ if (do_pml && pml[lev]->ok())
+ {
amrex::MultiFab* pml_F = pml[lev]->GetF_cp();
shiftMF(*pml_F, geom[lev-1], num_shift_crse, dir, lev, dont_update_cost);
}
}
}
+ // Shift scalar field G with div(B) cleaning
+ // TODO: shift G from pml_rz for RZ geometry with PSATD, once implemented
+ if (do_divb_cleaning)
+ {
+ // Fine grid
+ shiftMF(*G_fp[lev], geom[lev], num_shift, dir, lev, do_update_cost);
+ if (do_pml && pml[lev]->ok())
+ {
+ amrex::MultiFab* pml_G = pml[lev]->GetG_fp();
+ shiftMF(*pml_G, geom[lev], num_shift, dir, lev, dont_update_cost);
+ }
+ if (lev > 0)
+ {
+ // Coarse grid
+ shiftMF(*G_cp[lev], geom[lev-1], num_shift_crse, dir, lev, do_update_cost);
+ if (do_pml && pml[lev]->ok())
+ {
+ amrex::MultiFab* pml_G = pml[lev]->GetG_cp();
+ shiftMF(*pml_G, geom[lev-1], num_shift_crse, dir, lev, dont_update_cost);
+ }
+ }
+ }
+
// Shift scalar component rho
if (move_j) {
if (rho_fp[lev]){