aboutsummaryrefslogtreecommitdiff
path: root/Source/Parallelization/WarpXComm.cpp
diff options
context:
space:
mode:
authorGravatar Andrew Myers <atmyers2@gmail.com> 2022-03-02 21:50:06 -0800
committerGravatar GitHub <noreply@github.com> 2022-03-03 05:50:06 +0000
commitf5aa51796ac10461c1901117ad27bae3ea4a715b (patch)
tree32ea284bf0ff1161a25f63185e2b5789bd47761e /Source/Parallelization/WarpXComm.cpp
parent0c88663f7e38daa3770bb2888480e8747bfd4aed (diff)
downloadWarpX-f5aa51796ac10461c1901117ad27bae3ea4a715b.tar.gz
WarpX-f5aa51796ac10461c1901117ad27bae3ea4a715b.tar.zst
WarpX-f5aa51796ac10461c1901117ad27bae3ea4a715b.zip
Bugfix for LB + MR + Filter (#2917)
Make sure we update the right costs multifab when apply the filter in the presence of mesh refinement.
Diffstat (limited to '')
-rw-r--r--Source/Parallelization/WarpXComm.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/Source/Parallelization/WarpXComm.cpp b/Source/Parallelization/WarpXComm.cpp
index d22991d88..1c8988811 100644
--- a/Source/Parallelization/WarpXComm.cpp
+++ b/Source/Parallelization/WarpXComm.cpp
@@ -1045,12 +1045,12 @@ WarpX::AddCurrentFromFineLevelandSumBoundary (int lev)
ng_depos_J.min(ng);
MultiFab jfc(current_cp[lev+1][idim]->boxArray(),
current_cp[lev+1][idim]->DistributionMap(), current_cp[lev+1][idim]->nComp(), ng);
- bilinear_filter.ApplyStencil(jfc, *current_cp[lev+1][idim], lev);
+ bilinear_filter.ApplyStencil(jfc, *current_cp[lev+1][idim], lev+1);
// buffer patch of fine level
MultiFab jfb(current_buf[lev+1][idim]->boxArray(),
current_buf[lev+1][idim]->DistributionMap(), current_buf[lev+1][idim]->nComp(), ng);
- bilinear_filter.ApplyStencil(jfb, *current_buf[lev+1][idim], lev);
+ bilinear_filter.ApplyStencil(jfb, *current_buf[lev+1][idim], lev+1);
MultiFab::Add(jfb, jfc, 0, 0, current_buf[lev+1][idim]->nComp(), ng);
WarpXCommUtil::ParallelAdd(mf, jfb, 0, 0, current_buf[lev+1][idim]->nComp(), ng, IntVect::TheZeroVector(), period);
@@ -1065,7 +1065,7 @@ WarpX::AddCurrentFromFineLevelandSumBoundary (int lev)
ng_depos_J.min(ng);
MultiFab jf(current_cp[lev+1][idim]->boxArray(),
current_cp[lev+1][idim]->DistributionMap(), current_cp[lev+1][idim]->nComp(), ng);
- bilinear_filter.ApplyStencil(jf, *current_cp[lev+1][idim], lev);
+ bilinear_filter.ApplyStencil(jf, *current_cp[lev+1][idim], lev+1);
WarpXCommUtil::ParallelAdd(mf, jf, 0, 0, current_cp[lev+1][idim]->nComp(), ng, IntVect::TheZeroVector(), period);
WarpXSumGuardCells(*current_cp[lev+1][idim], jf, period, ng_depos_J, 0, current_cp[lev+1][idim]->nComp());
@@ -1171,12 +1171,12 @@ WarpX::AddRhoFromFineLevelandSumBoundary(int lev, int icomp, int ncomp)
ng_depos_rho.min(ng);
MultiFab rhofc(rho_cp[lev+1]->boxArray(),
rho_cp[lev+1]->DistributionMap(), ncomp, ng);
- bilinear_filter.ApplyStencil(rhofc, *rho_cp[lev+1], lev, icomp, 0, ncomp);
+ bilinear_filter.ApplyStencil(rhofc, *rho_cp[lev+1], lev+1, icomp, 0, ncomp);
// buffer patch of fine level
MultiFab rhofb(charge_buf[lev+1]->boxArray(),
charge_buf[lev+1]->DistributionMap(), ncomp, ng);
- bilinear_filter.ApplyStencil(rhofb, *charge_buf[lev+1], lev, icomp, 0, ncomp);
+ bilinear_filter.ApplyStencil(rhofb, *charge_buf[lev+1], lev+1, icomp, 0, ncomp);
MultiFab::Add(rhofb, rhofc, 0, 0, ncomp, ng);
@@ -1189,7 +1189,7 @@ WarpX::AddRhoFromFineLevelandSumBoundary(int lev, int icomp, int ncomp)
ng_depos_rho += bilinear_filter.stencil_length_each_dir-1;
ng_depos_rho.min(ng);
MultiFab rf(rho_cp[lev+1]->boxArray(), rho_cp[lev+1]->DistributionMap(), ncomp, ng);
- bilinear_filter.ApplyStencil(rf, *rho_cp[lev+1], lev, icomp, 0, ncomp);
+ bilinear_filter.ApplyStencil(rf, *rho_cp[lev+1], lev+1, icomp, 0, ncomp);
WarpXCommUtil::ParallelAdd(mf, rf, 0, 0, ncomp, ng, IntVect::TheZeroVector(), period);
WarpXSumGuardCells( *rho_cp[lev+1], rf, period, ng_depos_rho, icomp, ncomp );