aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp7
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/MacroscopicEvolveE.cpp7
2 files changed, 12 insertions, 2 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp b/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp
index 02f1d8087..da91eb73d 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp
+++ b/Source/FieldSolver/FiniteDifferenceSolver/EvolveE.cpp
@@ -166,9 +166,14 @@ void FiniteDifferenceSolver::EvolveECartesian (
[=] AMREX_GPU_DEVICE (int i, int j, int k){
#ifdef AMREX_USE_EB
// Skip field push if this cell is fully covered by embedded boundaries
+#ifdef WARPX_DIM_3D
if (ly(i,j,k) <= 0) return;
+#elif defined(WARPX_DIM_XZ)
+ //In XZ Ey is associated with a mesh node, so we need to check if the mesh node is covered
+ amrex::ignore_unused(ly);
+ if (lx(i, j, k)<=0 || lx(i-1, j, k)<=0 || lz(i, j-1, k)<=0 || lz(i, j, k)<=0) return;
+#endif
#endif
-
Ey(i, j, k) += c2 * dt * (
- T_Algo::DownwardDx(Bz, coefs_x, n_coefs_x, i, j, k)
+ T_Algo::DownwardDz(Bx, coefs_z, n_coefs_z, i, j, k)
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicEvolveE.cpp b/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicEvolveE.cpp
index 7f0f99556..d6bc9be9e 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicEvolveE.cpp
+++ b/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicEvolveE.cpp
@@ -193,8 +193,13 @@ void FiniteDifferenceSolver::MacroscopicEvolveECartesian (
[=] AMREX_GPU_DEVICE (int i, int j, int k){
#ifdef AMREX_USE_EB
- // Skip field push if this cell is fully covered by embedded boundaries
+#ifdef WARPX_DIM_3D
if (ly(i,j,k) <= 0) return;
+#elif defined(WARPX_DIM_XZ)
+ //In XZ Ey is associated with a mesh node, so we need to check if the mesh node is covered
+ amrex::ignore_unused(ly);
+ if (lx(i, j, k)<=0 || lx(i-1, j, k)<=0 || lz(i, j, k)<=0 || lz(i, j-1, k)<=0) return;
+#endif
#endif
// Interpolate conductivity, sigma, to Ey position on the grid
amrex::Real const sigma_interp = CoarsenIO::Interp( sigma_arr, sigma_stag,