aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp
diff options
context:
space:
mode:
authorGravatar Olga Shapoval <30510597+oshapoval@users.noreply.github.com> 2023-03-27 17:44:20 -0700
committerGravatar GitHub <noreply@github.com> 2023-03-28 00:44:20 +0000
commitd066a2dbd8359131b0e1846fd0c173d27e3aa862 (patch)
tree3854201dc7f1b0b646b6874f3df394582213e713 /Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp
parentd023933e3966021ee2afc88eed62c1d8748ced0a (diff)
downloadWarpX-d066a2dbd8359131b0e1846fd0c173d27e3aa862.tar.gz
WarpX-d066a2dbd8359131b0e1846fd0c173d27e3aa862.tar.zst
WarpX-d066a2dbd8359131b0e1846fd0c173d27e3aa862.zip
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`
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp')
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp10
1 files changed, 5 insertions, 5 deletions
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);
}
}
});