From d066a2dbd8359131b0e1846fd0c173d27e3aa862 Mon Sep 17 00:00:00 2001 From: Olga Shapoval <30510597+oshapoval@users.noreply.github.com> Date: Mon, 27 Mar 2023 17:44:20 -0700 Subject: Fix bugs related to azimuthal modes for multi-J algo in RZ geometry (#3764) * Bug fix: loop over all azimuthal modes taking into account the shift `mode*n_fields` * Bug fix: added missing speed of light factor in coefficient `c2` * Bug fix: added missing `mode` as fourth optional component in `X5(i,j,k,mode)` and `X6(i,j,k,mode)` coefficients, used only with RZ multi-J averaged PSATD * Reset benchmark of `multi_J_rz_psatd` --- .../SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp') diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp index 46ac2c0b8..5b024b425 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp @@ -400,7 +400,7 @@ void PsatdAlgorithmRZ::InitializeSpectralCoefficients (SpectralFieldDataRZ const if (time_averaging && J_linear) { - constexpr amrex::Real c2 = PhysConst::c; + constexpr amrex::Real c2 = PhysConst::c * PhysConst::c; const amrex::Real dt3 = dt * dt * dt; const amrex::Real om = c * k_norm; const amrex::Real om2 = om * om; @@ -408,14 +408,14 @@ void PsatdAlgorithmRZ::InitializeSpectralCoefficients (SpectralFieldDataRZ const if (om != 0.0_rt) { - X5(i,j,k) = c2 / ep0 * (S_ck(i,j,k) / om2 - (1._rt - C(i,j,k)) / (om4 * dt) + X5(i,j,k,mode) = c2 / ep0 * (S_ck(i,j,k,mode) / om2 - (1._rt - C(i,j,k,mode)) / (om4 * dt) - 0.5_rt * dt / om2); - X6(i,j,k) = c2 / ep0 * ((1._rt - C(i,j,k)) / (om4 * dt) - 0.5_rt * dt / om2); + X6(i,j,k,mode) = c2 / ep0 * ((1._rt - C(i,j,k,mode)) / (om4 * dt) - 0.5_rt * dt / om2); } else { - X5(i,j,k) = - c2 * dt3 / (8._rt * ep0); - X6(i,j,k) = - c2 * dt3 / (24._rt * ep0); + X5(i,j,k,mode) = - c2 * dt3 / (8._rt * ep0); + X6(i,j,k,mode) = - c2 * dt3 / (24._rt * ep0); } } }); -- cgit v1.2.3