aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/Diagnostics/ReducedDiags/FieldReduction.H12
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/MacroscopicProperties/MacroscopicProperties.cpp28
-rw-r--r--Source/Initialization/WarpXInitData.cpp8
3 files changed, 32 insertions, 16 deletions
diff --git a/Source/Diagnostics/ReducedDiags/FieldReduction.H b/Source/Diagnostics/ReducedDiags/FieldReduction.H
index ca1b766d3..46fcfc295 100644
--- a/Source/Diagnostics/ReducedDiags/FieldReduction.H
+++ b/Source/Diagnostics/ReducedDiags/FieldReduction.H
@@ -150,11 +150,17 @@ public:
[=] AMREX_GPU_DEVICE (int i, int j, int k) -> ReduceTuple
{
// 0.5 is here because position are computed on the cell centers
+
+#if defined(WARPX_DIM_1D_Z)
+ const amrex::Real x = 0._rt;
+ const amrex::Real y = 0._rt;
+ const amrex::Real z = (k + 0.5_rt)*dx[0] + real_box.lo(0);
+#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
const amrex::Real x = (i + 0.5_rt)*dx[0] + real_box.lo(0);
-#if defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
const amrex::Real y = 0._rt;
const amrex::Real z = (j + 0.5_rt)*dx[1] + real_box.lo(1);
#else
+ const amrex::Real x = (i + 0.5_rt)*dx[0] + real_box.lo(0);
const amrex::Real y = (j + 0.5_rt)*dx[1] + real_box.lo(1);
const amrex::Real z = (k + 0.5_rt)*dx[2] + real_box.lo(2);
#endif
@@ -191,7 +197,9 @@ public:
amrex::ParallelDescriptor::ReduceRealSum(reduce_value);
// If reduction operation is a sum, multiply the value by the cell volume so that the
// result is the integral of the function over the simulation domain.
-#if defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
+#if defined(WARPX_DIM_1D_Z)
+ reduce_value *= dx[0];
+#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
reduce_value *= dx[0]*dx[1];
#else
reduce_value *= dx[0]*dx[1]*dx[2];
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicProperties/MacroscopicProperties.cpp b/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicProperties/MacroscopicProperties.cpp
index 0bd063beb..01a89c0a2 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicProperties/MacroscopicProperties.cpp
+++ b/Source/FieldSolver/FiniteDifferenceSolver/MacroscopicProperties/MacroscopicProperties.cpp
@@ -218,17 +218,25 @@ MacroscopicProperties::InitializeMacroMultiFabUsingParser (
amrex::ParallelFor (tb,
[=] AMREX_GPU_DEVICE (int i, int j, int k) {
// Shift x, y, z position based on index type
- amrex::Real fac_x = (1._rt - iv[0]) * dx_lev[0] * 0.5_rt;
- amrex::Real x = i * dx_lev[0] + real_box.lo(0) + fac_x;
-#if defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
- amrex::Real y = 0._rt;
- amrex::Real fac_z = (1._rt - iv[1]) * dx_lev[1] * 0.5_rt;
- amrex::Real z = j * dx_lev[1] + real_box.lo(1) + fac_z;
+
+#if defined(WARPX_DIM_1D_Z)
+ const amrex::Real x = 0._rt;
+ const amrex::Real y = 0._rt;
+ const amrex::Real fac_z = (1._rt - iv[0]) * dx_lev[0] * 0.5_rt;
+ const amrex::Real z = j * dx_lev[0] + real_box.lo(0) + fac_z;
+#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
+ const amrex::Real fac_x = (1._rt - iv[0]) * dx_lev[0] * 0.5_rt;
+ const amrex::Real x = i * dx_lev[0] + real_box.lo(0) + fac_x;
+ const amrex::Real y = 0._rt;
+ const amrex::Real fac_z = (1._rt - iv[1]) * dx_lev[1] * 0.5_rt;
+ const amrex::Real z = j * dx_lev[1] + real_box.lo(1) + fac_z;
#else
- amrex::Real fac_y = (1._rt - iv[1]) * dx_lev[1] * 0.5_rt;
- amrex::Real y = j * dx_lev[1] + real_box.lo(1) + fac_y;
- amrex::Real fac_z = (1._rt - iv[2]) * dx_lev[2] * 0.5_rt;
- amrex::Real z = k * dx_lev[2] + real_box.lo(2) + fac_z;
+ const amrex::Real fac_x = (1._rt - iv[0]) * dx_lev[0] * 0.5_rt;
+ const amrex::Real x = i * dx_lev[0] + real_box.lo(0) + fac_x;
+ const amrex::Real fac_y = (1._rt - iv[1]) * dx_lev[1] * 0.5_rt;
+ const amrex::Real y = j * dx_lev[1] + real_box.lo(1) + fac_y;
+ const amrex::Real fac_z = (1._rt - iv[2]) * dx_lev[2] * 0.5_rt;
+ const amrex::Real z = k * dx_lev[2] + real_box.lo(2) + fac_z;
#endif
// initialize the macroparameter
macro_fab(i,j,k) = macro_parser(x,y,z);
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp
index 0e48535c9..aece14a72 100644
--- a/Source/Initialization/WarpXInitData.cpp
+++ b/Source/Initialization/WarpXInitData.cpp
@@ -935,8 +935,8 @@ WarpX::InitializeExternalFieldsOnGridUsingParser (
#if defined(WARPX_DIM_1D_Z)
amrex::Real x = 0._rt;
amrex::Real y = 0._rt;
- amrex::Real fac_z = (1._rt - x_nodal_flag[1]) * dx_lev[1] * 0.5_rt;
- amrex::Real z = j*dx_lev[1] + real_box.lo(1) + fac_z;
+ amrex::Real fac_z = (1._rt - x_nodal_flag[0]) * dx_lev[0] * 0.5_rt;
+ amrex::Real z = j*dx_lev[0] + real_box.lo(0) + fac_z;
#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
amrex::Real fac_x = (1._rt - x_nodal_flag[0]) * dx_lev[0] * 0.5_rt;
amrex::Real x = i*dx_lev[0] + real_box.lo(0) + fac_x;
@@ -970,8 +970,8 @@ WarpX::InitializeExternalFieldsOnGridUsingParser (
#if defined(WARPX_DIM_1D_Z)
amrex::Real x = 0._rt;
amrex::Real y = 0._rt;
- amrex::Real fac_z = (1._rt - y_nodal_flag[1]) * dx_lev[1] * 0.5_rt;
- amrex::Real z = j*dx_lev[1] + real_box.lo(1) + fac_z;
+ amrex::Real fac_z = (1._rt - y_nodal_flag[0]) * dx_lev[0] * 0.5_rt;
+ amrex::Real z = j*dx_lev[0] + real_box.lo(0) + fac_z;
#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
amrex::Real fac_x = (1._rt - y_nodal_flag[0]) * dx_lev[0] * 0.5_rt;
amrex::Real x = i*dx_lev[0] + real_box.lo(0) + fac_x;