aboutsummaryrefslogtreecommitdiff
path: root/Source/BoundaryConditions
diff options
context:
space:
mode:
Diffstat (limited to 'Source/BoundaryConditions')
-rw-r--r--Source/BoundaryConditions/PML.H1
-rw-r--r--Source/BoundaryConditions/PML.cpp13
-rw-r--r--Source/BoundaryConditions/WarpXEvolvePML.cpp38
3 files changed, 6 insertions, 46 deletions
diff --git a/Source/BoundaryConditions/PML.H b/Source/BoundaryConditions/PML.H
index 7624bdba0..1529db387 100644
--- a/Source/BoundaryConditions/PML.H
+++ b/Source/BoundaryConditions/PML.H
@@ -216,7 +216,6 @@ private:
std::array<std::unique_ptr<amrex::MultiFab>,3> pml_j_fp;
std::array<std::unique_ptr<amrex::MultiFab>,3> pml_edge_lengths;
- std::array<std::unique_ptr<amrex::MultiFab>,3> pml_face_areas;
std::array<std::unique_ptr<amrex::MultiFab>,3> pml_E_cp;
std::array<std::unique_ptr<amrex::MultiFab>,3> pml_B_cp;
diff --git a/Source/BoundaryConditions/PML.cpp b/Source/BoundaryConditions/PML.cpp
index 6be5dbc1b..1241c864e 100644
--- a/Source/BoundaryConditions/PML.cpp
+++ b/Source/BoundaryConditions/PML.cpp
@@ -681,12 +681,6 @@ PML::PML (const int lev, const BoxArray& grid_ba, const DistributionMapping& gri
WarpX::GetInstance().getEfield_fp(0,1).ixType().toIntVect() ), dm, WarpX::ncomps, max_guard_EB );
pml_edge_lengths[2] = std::make_unique<MultiFab>(amrex::convert( ba,
WarpX::GetInstance().getEfield_fp(0,2).ixType().toIntVect() ), dm, WarpX::ncomps, max_guard_EB );
- pml_face_areas[0] = std::make_unique<MultiFab>(amrex::convert( ba,
- WarpX::GetInstance().getBfield_fp(0,0).ixType().toIntVect() ), dm, WarpX::ncomps, max_guard_EB );
- pml_face_areas[1] = std::make_unique<MultiFab>(amrex::convert( ba,
- WarpX::GetInstance().getBfield_fp(0,1).ixType().toIntVect() ), dm, WarpX::ncomps, max_guard_EB );
- pml_face_areas[2] = std::make_unique<MultiFab>(amrex::convert( ba,
- WarpX::GetInstance().getBfield_fp(0,2).ixType().toIntVect() ), dm, WarpX::ncomps, max_guard_EB );
if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::Yee ||
WarpX::maxwell_solver_id == MaxwellSolverAlgo::CKC ||
@@ -695,10 +689,8 @@ PML::PML (const int lev, const BoxArray& grid_ba, const DistributionMapping& gri
auto const eb_fact = fieldEBFactory();
WarpX::ComputeEdgeLengths(pml_edge_lengths, eb_fact);
- WarpX::ComputeFaceAreas(pml_face_areas, eb_fact);
std::array<amrex::Real,3> cellsize = {AMREX_D_DECL(geom->CellSize()[0],geom->CellSize()[1],geom->CellSize()[2])};
WarpX::ScaleEdges(pml_edge_lengths, cellsize);
- WarpX::ScaleAreas(pml_face_areas, cellsize);
}
#endif
@@ -1056,11 +1048,6 @@ PML::Get_edge_lengths()
return {pml_edge_lengths[0].get(), pml_edge_lengths[1].get(), pml_edge_lengths[2].get()};
}
-std::array<MultiFab*,3>
-PML::Get_face_areas()
-{
- return {pml_face_areas[0].get(), pml_face_areas[1].get(), pml_face_areas[2].get()};
-}
MultiFab*
PML::GetF_fp ()
diff --git a/Source/BoundaryConditions/WarpXEvolvePML.cpp b/Source/BoundaryConditions/WarpXEvolvePML.cpp
index fce75d21e..55f1b8d41 100644
--- a/Source/BoundaryConditions/WarpXEvolvePML.cpp
+++ b/Source/BoundaryConditions/WarpXEvolvePML.cpp
@@ -70,11 +70,6 @@ WarpX::DampPML (int lev, PatchType patch_type)
const auto& sigba = (patch_type == PatchType::fine) ? pml[lev]->GetMultiSigmaBox_fp()
: pml[lev]->GetMultiSigmaBox_cp();
-#ifdef AMREX_USE_EB
- const auto& pml_edge_lenghts = pml[lev]->Get_edge_lengths();
- const auto& pml_face_areas = pml[lev]->Get_face_areas();
-#endif
-
const amrex::IntVect Ex_stag = pml_E[0]->ixType().toIntVect();
const amrex::IntVect Ey_stag = pml_E[1]->ixType().toIntVect();
const amrex::IntVect Ez_stag = pml_E[2]->ixType().toIntVect();
@@ -112,15 +107,6 @@ WarpX::DampPML (int lev, PatchType patch_type)
auto const& pml_Byfab = pml_B[1]->array(mfi);
auto const& pml_Bzfab = pml_B[2]->array(mfi);
-#ifdef AMREX_USE_EB
- auto const& pml_lxfab = pml_edge_lenghts[0]->array(mfi);
- auto const& pml_lyfab = pml_edge_lenghts[1]->array(mfi);
- auto const& pml_lzfab = pml_edge_lenghts[2]->array(mfi);
- auto const& pml_Sxfab = pml_face_areas[0]->array(mfi);
- auto const& pml_Syfab = pml_face_areas[1]->array(mfi);
- auto const& pml_Szfab = pml_face_areas[2]->array(mfi);
-#endif
-
amrex::Real const * AMREX_RESTRICT sigma_fac_x = sigba[mfi].sigma_fac[0].data();
#if defined(WARPX_DIM_3D)
amrex::Real const * AMREX_RESTRICT sigma_fac_y = sigba[mfi].sigma_fac[1].data();
@@ -148,25 +134,19 @@ WarpX::DampPML (int lev, PatchType patch_type)
amrex::ParallelFor(tex, tey, tez,
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
-#ifdef AMREX_USE_EB
- if(pml_lxfab(i, j, k) <= 0) return;
-#endif
+
warpx_damp_pml_ex(i, j, k, pml_Exfab, Ex_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
dive_cleaning);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
-#ifdef AMREX_USE_EB
- if(pml_lyfab(i, j, k) <= 0) return;
-#endif
+
warpx_damp_pml_ey(i, j, k, pml_Eyfab, Ey_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
dive_cleaning);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
-#ifdef AMREX_USE_EB
- if(pml_lzfab(i, j, k) <= 0) return;
-#endif
+
warpx_damp_pml_ez(i, j, k, pml_Ezfab, Ez_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
dive_cleaning);
@@ -174,25 +154,19 @@ WarpX::DampPML (int lev, PatchType patch_type)
amrex::ParallelFor(tbx, tby, tbz,
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
-#ifdef AMREX_USE_EB
- if(pml_Sxfab(i, j, k) <= 0) return;
-#endif
+
warpx_damp_pml_bx(i, j, k, pml_Bxfab, Bx_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
divb_cleaning);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
-#ifdef AMREX_USE_EB
- if(pml_Syfab(i, j, k) <= 0) return;
-#endif
+
warpx_damp_pml_by(i, j, k, pml_Byfab, By_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
divb_cleaning);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
-#ifdef AMREX_USE_EB
- if(pml_Szfab(i, j, k) <= 0) return;
-#endif
+
warpx_damp_pml_bz(i, j, k, pml_Bzfab, Bz_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z,
sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo,
divb_cleaning);