From 300c1659c4bcdae104f828c01de8873743f73d94 Mon Sep 17 00:00:00 2001 From: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Date: Thu, 15 Jul 2021 15:39:34 -0700 Subject: Spectral Index: Replace `struct`s of `enum` with Class (#2062) * Add New Spectral Index Class * Cleaning * Use New Spectral Index Class in PML * Cleaning * Reuse Available Data for divE * Allocate Rho Data Only when Necessary * Cleaning * Fix Bug in RZ Geometry * Revert Commits for Allocation of Rho Data * Cleaning * Update Forward Declaration Header * Do Not Include Unnecessary Header Files * Doxygen * Do Not Use Separate div() Cleaning Flags * SpectralFieldIndex: Add Missing param to Doxygen * Remove Unused getRequiredNumberOfFields --- .../SpectralAlgorithms/SpectralBaseAlgorithmRZ.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithmRZ.cpp') diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithmRZ.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithmRZ.cpp index f80f54208..7e9794d31 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithmRZ.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/SpectralBaseAlgorithmRZ.cpp @@ -21,14 +21,15 @@ SpectralBaseAlgorithmRZ::ComputeSpectralDivE ( amrex::MultiFab& divE ) { using amrex::operator""_rt; - using Idx = SpectralFieldIndex; + + const SpectralFieldIndex& Idx = m_spectral_index; // Forward Fourier transform of E field_data.ForwardTransform( lev, - *Efield[0], Idx::Ex, - *Efield[1], Idx::Ey ); + *Efield[0], Idx.Ex, + *Efield[1], Idx.Ey ); field_data.ForwardTransform( lev, - *Efield[2], Idx::Ez, 0 ); + *Efield[2], Idx.Ez, 0 ); // Loop over boxes for (MFIter mfi(field_data.fields); mfi.isValid(); ++mfi){ @@ -44,15 +45,15 @@ SpectralBaseAlgorithmRZ::ComputeSpectralDivE ( int const nr = bx.length(0); int const modes = field_data.n_rz_azimuthal_modes; - constexpr int n_fields = SpectralFieldIndex::n_fields; + const int n_fields = m_spectral_index.n_fields; // Loop over indices within one box ParallelFor(bx, modes, [=] AMREX_GPU_DEVICE(int i, int j, int /*k*/, int mode) noexcept { - int const ic1 = Idx::Ex + mode*n_fields; - int const ic2 = Idx::Ey + mode*n_fields; - int const ic3 = Idx::Ez + mode*n_fields; + int const ic1 = Idx.Ex + mode*n_fields; + int const ic2 = Idx.Ey + mode*n_fields; + int const ic3 = Idx.Ez + mode*n_fields; // Shortcuts for the components of E Complex const Ep = fields(i,j,0,ic1); @@ -66,11 +67,11 @@ SpectralBaseAlgorithmRZ::ComputeSpectralDivE ( Complex const I = Complex{0._rt,1._rt}; // div(E) in Fourier space - int const ic = Idx::divE + mode*n_fields; + int const ic = Idx.divE + mode*n_fields; fields(i,j,0,ic) = kr*(Ep - Em) + I*kz*Ez; }); } // Backward Fourier transform - field_data.BackwardTransform( lev, divE, Idx::divE, 0 ); + field_data.BackwardTransform( lev, divE, Idx.divE, 0 ); } -- cgit v1.2.3