aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/BoundaryConditions/PML.cpp34
-rw-r--r--Source/Initialization/WarpXInitData.cpp5
2 files changed, 27 insertions, 12 deletions
diff --git a/Source/BoundaryConditions/PML.cpp b/Source/BoundaryConditions/PML.cpp
index 316a2bd2b..f880ebc56 100644
--- a/Source/BoundaryConditions/PML.cpp
+++ b/Source/BoundaryConditions/PML.cpp
@@ -119,6 +119,8 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
sigma_star_cum_fac[idim].m_hi = hi[idim];
}
+ amrex::Print()<<box<<std::endl;
+
pml_type = "";
pml_type_array = {3, 3, 3, 3, 3};
@@ -187,6 +189,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
#endif
Box looverlap = lobox & box;
if (looverlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillLo"<<std::endl;
FillLo(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], looverlap, grid_box, fac[idim]);
if (idim == 0){
pml_type = "crn-++"; // for 2d only use the two first components
@@ -210,6 +213,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
#endif
Box hioverlap = hibox & box;
if (hioverlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillHi"<<std::endl;
FillHi(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], hioverlap, grid_box, fac[idim]);
if (idim == 0){
pml_type = "crn+++"; // for 2d only use the two first components
@@ -237,6 +241,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
const Box& grid_box = grids[gid];
const Box& overlap = amrex::grow(amrex::grow(grid_box,jdim,ncell),kdim,ncell) & box;
if (overlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillZero"<<std::endl;
FillZero(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], overlap);
if (idim==0){
pml_type="sed33--";
@@ -255,6 +260,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
Box lobox = amrex::adjCellLo(grid_box, idim, ncell);
Box looverlap = lobox.grow(jdim,ncell).grow(kdim,ncell) & box;
if (looverlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillLo"<<std::endl;
FillLo(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], looverlap, grid_box, fac[idim]);
if (idim == 0){
pml_type = "sed03-+"; // for 2d only use the two first components
@@ -283,6 +289,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
Box hibox = amrex::adjCellHi(grid_box, idim, ncell);
Box hioverlap = hibox.grow(jdim,ncell).grow(kdim,ncell) & box;
if (hioverlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillHi"<<std::endl;
FillHi(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], hioverlap, grid_box, fac[idim]);
if (idim == 0){
pml_type = "sed03++"; // for 2d only use the two first components
@@ -323,6 +330,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
const Box& overlap = amrex::grow(amrex::grow(grid_box,jdim,ncell),kdim,ncell) & box;
#endif
if (overlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillZero"<<std::endl;
FillZero(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], overlap);
} else {
amrex::Abort("SigmaBox::SigmaBox(): side_faces, how did this happen?\n");
@@ -336,6 +344,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
const Box& lobox = amrex::adjCellLo(grid_box, idim, ncell);
Box looverlap = lobox & box;
if (looverlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillLo"<<std::endl;
FillLo(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], looverlap, grid_box, fac[idim]);
pml_type = "df0-";
pml_type_array[0] = 0;
@@ -347,6 +356,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
const Box& hibox = amrex::adjCellHi(grid_box, idim, ncell);
Box hioverlap = hibox & box;
if (hioverlap.ok()) {
+ amrex::Print()<<"["<<idim<<"] FillHi"<<std::endl;
FillHi(idim, sigma[idim], sigma_cum[idim], sigma_star[idim], sigma_star_cum[idim], hioverlap, grid_box, fac[idim]);
pml_type = "df0+";
pml_type_array[0] = 0;
@@ -364,6 +374,7 @@ SigmaBox::SigmaBox (const Box& box, const BoxArray& grids, const Real* dx, int n
amrex::Abort("SigmaBox::SigmaBox(): direct_faces.size() > 1, Box gaps not wide enough?\n");
}
}
+ amrex::Print()<<pml_type<<std::endl;
}
@@ -483,7 +494,7 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
}
const BoxArray grid_ba_reduced = BoxArray(grid_ba.boxList().intersect(domain0));
- const BoxArray& ba = (do_pml_in_domain)? MakeBoxArray(*geom, grid_ba_reduced, ncell) : MakeBoxArray(*geom, grid_ba, ncell);
+ const BoxArray& ba = (do_pml_in_domain)? MakeBoxArray(*geom, grid_ba_reduced, ncell, do_pml_Lo, do_pml_Hi) : MakeBoxArray(*geom, grid_ba, ncell, do_pml_Lo, do_pml_Hi);
if (ba.size() == 0) {
m_ok = false;
@@ -545,7 +556,7 @@ PML::PML (const BoxArray& grid_ba, const DistributionMapping& grid_dm,
grid_cba.coarsen(ref_ratio);
const BoxArray grid_cba_reduced = BoxArray(grid_cba.boxList().intersect(domain0)); // domain to change ? This domain was built for a fine grid: the reduced domain is only valid for the fine level...
// const BoxArray& cba = MakeBoxArray(*cgeom, grid_cba_reduced, ncell);
- const BoxArray& cba = (do_pml_in_domain) ? MakeBoxArray(*cgeom, grid_cba_reduced, ncell) : MakeBoxArray(*cgeom, grid_cba, ncell);
+ const BoxArray& cba = (do_pml_in_domain) ? MakeBoxArray(*cgeom, grid_cba_reduced, ncell, do_pml_Lo, do_pml_Hi) : MakeBoxArray(*cgeom, grid_cba, ncell, do_pml_Lo, do_pml_Hi);
DistributionMapping cdm{cba};
@@ -592,6 +603,9 @@ PML::MakeBoxArray (const amrex::Geometry& geom, const amrex::BoxArray& grid_ba,
const amrex::IntVect do_pml_Lo, const amrex::IntVect do_pml_Hi)
{
Box domain = geom.Domain();
+ amrex::Print()<<domain<<std::endl;
+ amrex::Print()<<do_pml_Lo<<std::endl;
+ amrex::Print()<<do_pml_Hi<<std::endl;
for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
if ( ! geom.isPeriodic(idim) ) {
// domain.grow(idim, ncell);
@@ -603,7 +617,7 @@ PML::MakeBoxArray (const amrex::Geometry& geom, const amrex::BoxArray& grid_ba,
}
}
}
-
+ amrex::Print()<<domain<<std::endl;
BoxList bl;
for (int i = 0, N = grid_ba.size(); i < N; ++i)
{
@@ -650,13 +664,13 @@ PML::MakeBoxArray (const amrex::Geometry& geom, const amrex::BoxArray& grid_ba,
BoxArray ba(bl);
ba.removeOverlap(false);
- // amrex::Print()<< "####### PML BOXES #######" <<std::endl;
- // amrex::Print()<<"["<<std::endl;
- // const BoxList& bl2 = BoxList(ba);
- // for (const Box& b : bl2) {
- // amrex::Print()<<"["<<b.smallEnd()[0]<<", "<<b.smallEnd()[1]<<", "<<b.bigEnd()[0]<<", "<<b.bigEnd()[1]<<"],"<<std::endl;
- // }
- // amrex::Print()<<"]"<<std::endl;
+ amrex::Print()<< "####### PML BOXES #######" <<std::endl;
+ amrex::Print()<<"["<<std::endl;
+ const BoxList& bl2 = BoxList(ba);
+ for (const Box& b : bl2) {
+ amrex::Print()<<"["<<b.smallEnd()[0]<<", "<<b.smallEnd()[1]<<", "<<b.bigEnd()[0]<<", "<<b.bigEnd()[1]<<"],"<<std::endl;
+ }
+ amrex::Print()<<"]"<<std::endl;
return ba;
}
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp
index 87904b037..7e7dcec45 100644
--- a/Source/Initialization/WarpXInitData.cpp
+++ b/Source/Initialization/WarpXInitData.cpp
@@ -134,13 +134,14 @@ 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, do_moving_window, pml_has_particles, do_pml_in_domain));
+ pml_ncell, pml_delta, 0, do_dive_cleaning, do_moving_window, pml_has_particles, do_pml_in_domain,
+ do_pml_Lo, do_pml_Hi));
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,
- do_moving_window, pml_has_particles, do_pml_in_domain));
+ do_moving_window, pml_has_particles, do_pml_in_domain));
}
}
}