diff options
-rw-r--r-- | Source/WarpX.cpp | 7 | ||||
-rw-r--r-- | Source/WarpXInitData.cpp | 5 | ||||
-rw-r--r-- | Source/WarpXPML.H | 2 | ||||
-rw-r--r-- | Source/WarpXPML.cpp | 7 |
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); } |