aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/WarpX.cpp7
-rw-r--r--Source/WarpXInitData.cpp5
-rw-r--r--Source/WarpXPML.H2
-rw-r--r--Source/WarpXPML.cpp7
4 files changed, 12 insertions, 9 deletions
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp
index 6a68c473e..3ff4fb304 100644
--- a/Source/WarpX.cpp
+++ b/Source/WarpX.cpp
@@ -369,7 +369,8 @@ WarpX::AllocLevelData (int lev, const BoxArray& ba, const DistributionMapping& d
int ngE = (WarpX::nox % 2) ? WarpX::nox+1 : WarpX::nox; // Always even number
int ngJ = ngE;
int ngRho = ngE;
-
+ int ngF = (do_moving_window) ? 2 : 0;
+
//
// The fine patch
//
@@ -387,7 +388,7 @@ WarpX::AllocLevelData (int lev, const BoxArray& ba, const DistributionMapping& d
if (do_dive_cleaning)
{
- F_fp[lev].reset (new MultiFab(amrex::convert(ba,IntVect::TheUnitVector()),dm,1, 0));
+ F_fp[lev].reset (new MultiFab(amrex::convert(ba,IntVect::TheUnitVector()),dm,1, ngF));
rho_fp[lev].reset(new MultiFab(amrex::convert(ba,IntVect::TheUnitVector()),dm,1,ngRho));
}
@@ -440,7 +441,7 @@ WarpX::AllocLevelData (int lev, const BoxArray& ba, const DistributionMapping& d
if (do_dive_cleaning)
{
- F_cp[lev].reset (new MultiFab(amrex::convert(cba,IntVect::TheUnitVector()),dm,1, 0));
+ F_cp[lev].reset (new MultiFab(amrex::convert(cba,IntVect::TheUnitVector()),dm,1, ngF));
rho_cp[lev].reset(new MultiFab(amrex::convert(cba,IntVect::TheUnitVector()),dm,1,ngRho));
}
}
diff --git a/Source/WarpXInitData.cpp b/Source/WarpXInitData.cpp
index 873adcbaf..df01afe88 100644
--- a/Source/WarpXInitData.cpp
+++ b/Source/WarpXInitData.cpp
@@ -92,12 +92,13 @@ WarpX::InitPML ()
if (do_pml)
{
pml[0].reset(new PML(boxArray(0), DistributionMap(0), &Geom(0), nullptr,
- pml_ncell, pml_delta, 0, do_dive_cleaning));
+ pml_ncell, pml_delta, 0, do_dive_cleaning, do_moving_window));
for (int lev = 1; lev <= finest_level; ++lev)
{
pml[lev].reset(new PML(boxArray(lev), DistributionMap(lev),
&Geom(lev), &Geom(lev-1),
- pml_ncell, pml_delta, refRatio(lev-1)[0], do_dive_cleaning));
+ pml_ncell, pml_delta, refRatio(lev-1)[0], do_dive_cleaning,
+ do_moving_window));
}
}
}
diff --git a/Source/WarpXPML.H b/Source/WarpXPML.H
index 4a44bedb3..c516f012d 100644
--- a/Source/WarpXPML.H
+++ b/Source/WarpXPML.H
@@ -109,7 +109,7 @@ class PML
public:
PML (const amrex::BoxArray& ba, const amrex::DistributionMapping& dm,
const amrex::Geometry* geom, const amrex::Geometry* cgeom,
- int ncell, int delta, int ref_ratio, int do_dive_cleaning);
+ int ncell, int delta, int ref_ratio, int do_dive_cleaning, int do_moving_window);
void ComputePMLFactors (amrex::Real dt, const std::string& pml_type);
diff --git a/Source/WarpXPML.cpp b/Source/WarpXPML.cpp
index 6db887136..19e36f38a 100644
--- a/Source/WarpXPML.cpp
+++ b/Source/WarpXPML.cpp
@@ -425,7 +425,7 @@ MultiSigmaBox::ComputePMLFactorsE (const Real* dx, Real dt, const std::string& p
PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
const Geometry* geom, const Geometry* cgeom,
- int ncell, int delta, int ref_ratio, int do_dive_cleaning)
+ int ncell, int delta, int ref_ratio, int do_dive_cleaning, int do_moving_window)
: m_geom(geom),
m_cgeom(cgeom)
{
@@ -441,6 +441,7 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
int nge = 2;
int ngb = 2;
+ int ngf = (do_moving_window) ? 2 : 0;
pml_E_fp[0].reset(new MultiFab(amrex::convert(ba,WarpX::Ex_nodal_flag), dm, 3, nge));
pml_E_fp[1].reset(new MultiFab(amrex::convert(ba,WarpX::Ey_nodal_flag), dm, 3, nge));
@@ -458,7 +459,7 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
if (do_dive_cleaning)
{
- pml_F_fp.reset(new MultiFab(amrex::convert(ba,IntVect::TheUnitVector()), dm, 3, 0));
+ pml_F_fp.reset(new MultiFab(amrex::convert(ba,IntVect::TheUnitVector()), dm, 3, ngf));
pml_F_fp->setVal(0.0);
}
@@ -492,7 +493,7 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
if (do_dive_cleaning)
{
- pml_F_cp.reset(new MultiFab(amrex::convert(cba,IntVect::TheUnitVector()), cdm, 3, 0));
+ pml_F_cp.reset(new MultiFab(amrex::convert(cba,IntVect::TheUnitVector()), cdm, 3, ngf));
pml_F_cp->setVal(0.0);
}