aboutsummaryrefslogtreecommitdiff
path: root/Source/BoundaryConditions/PML.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-08-09 15:20:52 -0700
committerGravatar GitHub <noreply@github.com> 2019-08-09 15:20:52 -0700
commita7c1afcba8dc443806780a85b8bbea3a13cc65e6 (patch)
tree868d6d23a8a36cdcf0bbf2b4b49d09c34564823b /Source/BoundaryConditions/PML.cpp
parent01cff400bde64fbfc868da0d21a6c8f860ac6a0f (diff)
parent9aac67c914099d46da73c811f77b898f7dc39e90 (diff)
downloadWarpX-a7c1afcba8dc443806780a85b8bbea3a13cc65e6.tar.gz
WarpX-a7c1afcba8dc443806780a85b8bbea3a13cc65e6.tar.zst
WarpX-a7c1afcba8dc443806780a85b8bbea3a13cc65e6.zip
Merge pull request #259 from ablelly/choose_pml_direction
Choose pml direction
Diffstat (limited to 'Source/BoundaryConditions/PML.cpp')
-rw-r--r--Source/BoundaryConditions/PML.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/Source/BoundaryConditions/PML.cpp b/Source/BoundaryConditions/PML.cpp
index 96bc08af9..21d348482 100644
--- a/Source/BoundaryConditions/PML.cpp
+++ b/Source/BoundaryConditions/PML.cpp
@@ -319,11 +319,12 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
#ifdef WARPX_USE_PSATD
Real dt, int nox_fft, int noy_fft, int noz_fft, bool do_nodal,
#endif
- int do_dive_cleaning, int do_moving_window)
+ int do_dive_cleaning, int do_moving_window,
+ const amrex::IntVect do_pml_Lo, const amrex::IntVect do_pml_Hi)
: m_geom(geom),
m_cgeom(cgeom)
{
- const BoxArray& ba = MakeBoxArray(*geom, grid_ba, ncell);
+ const BoxArray& ba = MakeBoxArray(*geom, grid_ba, ncell, do_pml_Lo, do_pml_Hi);
if (ba.size() == 0) {
m_ok = false;
return;
@@ -399,7 +400,7 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
BoxArray grid_cba = grid_ba;
grid_cba.coarsen(ref_ratio);
- const BoxArray& cba = MakeBoxArray(*cgeom, grid_cba, ncell);
+ const BoxArray& cba = MakeBoxArray(*cgeom, grid_cba, ncell, do_pml_Lo, do_pml_Hi);
DistributionMapping cdm{cba};
@@ -438,12 +439,18 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
}
BoxArray
-PML::MakeBoxArray (const amrex::Geometry& geom, const amrex::BoxArray& grid_ba, int ncell)
+PML::MakeBoxArray (const amrex::Geometry& geom, const amrex::BoxArray& grid_ba, int ncell,
+ const amrex::IntVect do_pml_Lo, const amrex::IntVect do_pml_Hi)
{
Box domain = geom.Domain();
for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
if ( ! geom.isPeriodic(idim) ) {
- domain.grow(idim, ncell);
+ if (do_pml_Lo[idim]){
+ domain.growLo(idim, ncell);
+ }
+ if (do_pml_Hi[idim]){
+ domain.growHi(idim, ncell);
+ }
}
}