aboutsummaryrefslogtreecommitdiff
path: root/Source/BoundaryConditions/WarpXEvolvePML.cpp
diff options
context:
space:
mode:
authorGravatar Lorenzo Giacomel <47607756+lgiacome@users.noreply.github.com> 2022-01-13 20:05:19 +0100
committerGravatar GitHub <noreply@github.com> 2022-01-13 11:05:19 -0800
commitca67ae0700d1f56e7921da9283d42184149cb15b (patch)
tree6ee96802136c95bf7fbbbebbf19a871516ea697a /Source/BoundaryConditions/WarpXEvolvePML.cpp
parent726a9d85b951cf26f936ef0dd600a342657f4106 (diff)
downloadWarpX-ca67ae0700d1f56e7921da9283d42184149cb15b.tar.gz
WarpX-ca67ae0700d1f56e7921da9283d42184149cb15b.tar.zst
WarpX-ca67ae0700d1f56e7921da9283d42184149cb15b.zip
Fixing staircased EM solver (#2739)
* Fixing the staircase consistency * Removed the face_areas multifabs everywhere they're not needed * Bug fix * More fixes * Another fix * Another fix * Initialize areas anyways for the initialization * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: lgiacome <lorenzo.giacome@cern.ch> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Diffstat (limited to '')
-rw-r--r--Source/BoundaryConditions/WarpXEvolvePML.cpp38
1 files changed, 6 insertions, 32 deletions
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);