diff options
author | 2019-07-25 01:45:29 +0200 | |
---|---|---|
committer | 2019-07-25 01:45:29 +0200 | |
commit | 065b2d9eaaaf1dc6edfc62cfbc01291178426e9f (patch) | |
tree | 530ff21c06ecd966e6180885906e7205ccc7c478 /Source/BoundaryConditions/PML.cpp | |
parent | 51d5f19d9747b30f29dd4c78523b1d3df8e688ac (diff) | |
download | WarpX-065b2d9eaaaf1dc6edfc62cfbc01291178426e9f.tar.gz WarpX-065b2d9eaaaf1dc6edfc62cfbc01291178426e9f.tar.zst WarpX-065b2d9eaaaf1dc6edfc62cfbc01291178426e9f.zip |
[WIP] Adding flags do_pml_Lo, do_pml_hi
Diffstat (limited to 'Source/BoundaryConditions/PML.cpp')
-rw-r--r-- | Source/BoundaryConditions/PML.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/Source/BoundaryConditions/PML.cpp b/Source/BoundaryConditions/PML.cpp index 51107b498..0e6c24131 100644 --- a/Source/BoundaryConditions/PML.cpp +++ b/Source/BoundaryConditions/PML.cpp @@ -708,53 +708,53 @@ PML::GetF_cp () void PML::ExchangeB (const std::array<amrex::MultiFab*,3>& B_fp, - const std::array<amrex::MultiFab*,3>& B_cp, int do_pml_in_domain) + const std::array<amrex::MultiFab*,3>& B_cp, int do_pml_in_domain, int ncell) { - ExchangeB(PatchType::fine, B_fp, do_pml_in_domain); - ExchangeB(PatchType::coarse, B_cp, do_pml_in_domain); + ExchangeB(PatchType::fine, B_fp, do_pml_in_domain, ncell); + ExchangeB(PatchType::coarse, B_cp, do_pml_in_domain, ncell); } void PML::ExchangeB (PatchType patch_type, - const std::array<amrex::MultiFab*,3>& Bp, int do_pml_in_domain) + const std::array<amrex::MultiFab*,3>& Bp, int do_pml_in_domain, int ncell) { if (patch_type == PatchType::fine && pml_B_fp[0] && Bp[0]) { - Exchange(*pml_B_fp[0], *Bp[0], *m_geom, do_pml_in_domain); - Exchange(*pml_B_fp[1], *Bp[1], *m_geom, do_pml_in_domain); - Exchange(*pml_B_fp[2], *Bp[2], *m_geom, do_pml_in_domain); + Exchange(*pml_B_fp[0], *Bp[0], *m_geom, do_pml_in_domain, ncell); + Exchange(*pml_B_fp[1], *Bp[1], *m_geom, do_pml_in_domain, ncell); + Exchange(*pml_B_fp[2], *Bp[2], *m_geom, do_pml_in_domain, ncell); } else if (patch_type == PatchType::coarse && pml_B_cp[0] && Bp[0]) { - Exchange(*pml_B_cp[0], *Bp[0], *m_cgeom, do_pml_in_domain); - Exchange(*pml_B_cp[1], *Bp[1], *m_cgeom, do_pml_in_domain); - Exchange(*pml_B_cp[2], *Bp[2], *m_cgeom, do_pml_in_domain); + Exchange(*pml_B_cp[0], *Bp[0], *m_cgeom, do_pml_in_domain, ncell); + Exchange(*pml_B_cp[1], *Bp[1], *m_cgeom, do_pml_in_domain, ncell); + Exchange(*pml_B_cp[2], *Bp[2], *m_cgeom, do_pml_in_domain, ncell); } } void PML::ExchangeE (const std::array<amrex::MultiFab*,3>& E_fp, - const std::array<amrex::MultiFab*,3>& E_cp, int do_pml_in_domain) + const std::array<amrex::MultiFab*,3>& E_cp, int do_pml_in_domain, int ncell) { - ExchangeE(PatchType::fine, E_fp, do_pml_in_domain); - ExchangeE(PatchType::coarse, E_cp, do_pml_in_domain); + ExchangeE(PatchType::fine, E_fp, do_pml_in_domain, ncell); + ExchangeE(PatchType::coarse, E_cp, do_pml_in_domain, ncell); } void PML::ExchangeE (PatchType patch_type, - const std::array<amrex::MultiFab*,3>& Ep, int do_pml_in_domain) + const std::array<amrex::MultiFab*,3>& Ep, int do_pml_in_domain, int ncell) { if (patch_type == PatchType::fine && pml_E_fp[0] && Ep[0]) { - Exchange(*pml_E_fp[0], *Ep[0], *m_geom, do_pml_in_domain); - Exchange(*pml_E_fp[1], *Ep[1], *m_geom, do_pml_in_domain); - Exchange(*pml_E_fp[2], *Ep[2], *m_geom, do_pml_in_domain); + Exchange(*pml_E_fp[0], *Ep[0], *m_geom, do_pml_in_domain, ncell); + Exchange(*pml_E_fp[1], *Ep[1], *m_geom, do_pml_in_domain, ncell); + Exchange(*pml_E_fp[2], *Ep[2], *m_geom, do_pml_in_domain, ncell); } else if (patch_type == PatchType::coarse && pml_E_cp[0] && Ep[0]) { - Exchange(*pml_E_cp[0], *Ep[0], *m_cgeom, do_pml_in_domain); - Exchange(*pml_E_cp[1], *Ep[1], *m_cgeom, do_pml_in_domain); - Exchange(*pml_E_cp[2], *Ep[2], *m_cgeom, do_pml_in_domain); + Exchange(*pml_E_cp[0], *Ep[0], *m_cgeom, do_pml_in_domain, ncell); + Exchange(*pml_E_cp[1], *Ep[1], *m_cgeom, do_pml_in_domain, ncell); + Exchange(*pml_E_cp[2], *Ep[2], *m_cgeom, do_pml_in_domain, ncell); } } @@ -811,29 +811,32 @@ PML::CopyJinReg (const std::array<amrex::MultiFab*,3>& j_fp, } void -PML::ExchangeF (MultiFab* F_fp, MultiFab* F_cp, int do_pml_in_domain) +PML::ExchangeF (MultiFab* F_fp, MultiFab* F_cp, int do_pml_in_domain, int ncell) { - ExchangeF(PatchType::fine, F_fp, do_pml_in_domain); - ExchangeF(PatchType::coarse, F_cp, do_pml_in_domain); + ExchangeF(PatchType::fine, F_fp, do_pml_in_domain, ncell); + ExchangeF(PatchType::coarse, F_cp, do_pml_in_domain, ncell); } void -PML::ExchangeF (PatchType patch_type, MultiFab* Fp, int do_pml_in_domain) +PML::ExchangeF (PatchType patch_type, MultiFab* Fp, int do_pml_in_domain, int ncell) { if (patch_type == PatchType::fine && pml_F_fp && Fp) { - Exchange(*pml_F_fp, *Fp, *m_geom, do_pml_in_domain); + Exchange(*pml_F_fp, *Fp, *m_geom, do_pml_in_domain, ncell); } else if (patch_type == PatchType::coarse && pml_F_cp && Fp) { - Exchange(*pml_F_cp, *Fp, *m_cgeom, do_pml_in_domain); + Exchange(*pml_F_cp, *Fp, *m_cgeom, do_pml_in_domain, ncell); } } void -PML::Exchange (MultiFab& pml, MultiFab& reg, const Geometry& geom, int do_pml_in_domain) +PML::Exchange (MultiFab& pml, MultiFab& reg, const Geometry& geom, int do_pml_in_domain, int ncell) { if (do_pml_in_domain){ const IntVect& ngr = reg.nGrowVect(); const IntVect& ngp = pml.nGrowVect(); + // amrex::Print()<< "##### PML EXCHANGE #####"<<std::endl; + // amrex::Print()<< ngr <<std::endl; + // amrex::Print()<< ngp <<std::endl; const int ncp = pml.nComp(); const auto& period = geom.periodicity(); @@ -867,7 +870,7 @@ PML::Exchange (MultiFab& pml, MultiFab& reg, const Geometry& geom, int do_pml_in Box domain0 = geom.Domain(); for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) { if ( ! geom.isPeriodic(idim) ) { - domain0.grow(idim, -20); //-ncell + domain0.grow(idim, -ncell); //-ncell } } // amrex::Print()<<"domain0 = ["<<domain0.smallEnd()[0]<<", "<<domain0.smallEnd()[1]<<", "<<domain0.bigEnd()[0]<<", "<<domain0.bigEnd()[1]<<"]"<<std::endl; |