diff options
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; |