diff options
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp')
-rw-r--r-- | Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp b/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp index 820db5a12..f59b99752 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp @@ -25,13 +25,13 @@ * \param pml Whether the boxes in which the solver is applied are PML boxes * PML is not supported. */ -SpectralSolverRZ::SpectralSolverRZ (amrex::BoxArray const & realspace_ba, +SpectralSolverRZ::SpectralSolverRZ (const int lev, + amrex::BoxArray const & realspace_ba, amrex::DistributionMapping const & dm, int const n_rz_azimuthal_modes, int const norder_z, bool const nodal, const amrex::Array<amrex::Real,3>& v_galilean, amrex::RealVect const dx, amrex::Real const dt, - int const lev, bool const update_with_rho) : k_space(realspace_ba, dm, dx) { @@ -55,48 +55,54 @@ SpectralSolverRZ::SpectralSolverRZ (amrex::BoxArray const & realspace_ba, } // - Initialize arrays for fields in spectral space + FFT plans - field_data = SpectralFieldDataRZ(realspace_ba, k_space, dm, + field_data = SpectralFieldDataRZ(lev, realspace_ba, k_space, dm, algorithm->getRequiredNumberOfFields(), - n_rz_azimuthal_modes, lev); + n_rz_azimuthal_modes); } /* \brief Transform the component `i_comp` of MultiFab `field_mf` * to spectral space, and store the corresponding result internally * (in the spectral field specified by `field_index`) */ void -SpectralSolverRZ::ForwardTransform (amrex::MultiFab const & field_mf, int const field_index, +SpectralSolverRZ::ForwardTransform (const int lev, + amrex::MultiFab const & field_mf, int const field_index, int const i_comp) { WARPX_PROFILE("SpectralSolverRZ::ForwardTransform"); - field_data.ForwardTransform(field_mf, field_index, i_comp); + field_data.ForwardTransform(lev, field_mf, field_index, i_comp); } /* \brief Transform the two MultiFabs `field_mf1` and `field_mf2` * to spectral space, and store the corresponding results internally * (in the spectral field specified by `field_index1` and `field_index2`) */ void -SpectralSolverRZ::ForwardTransform (amrex::MultiFab const & field_mf1, int const field_index1, +SpectralSolverRZ::ForwardTransform (const int lev, + amrex::MultiFab const & field_mf1, int const field_index1, amrex::MultiFab const & field_mf2, int const field_index2) { WARPX_PROFILE("SpectralSolverRZ::ForwardTransform"); - field_data.ForwardTransform(field_mf1, field_index1, + field_data.ForwardTransform(lev, + field_mf1, field_index1, field_mf2, field_index2); } /* \brief Transform spectral field specified by `field_index` back to * real space, and store it in the component `i_comp` of `field_mf` */ void -SpectralSolverRZ::BackwardTransform (amrex::MultiFab& field_mf, int const field_index, +SpectralSolverRZ::BackwardTransform (const int lev, + amrex::MultiFab& field_mf, int const field_index, int const i_comp) { WARPX_PROFILE("SpectralSolverRZ::BackwardTransform"); - field_data.BackwardTransform(field_mf, field_index, i_comp); + field_data.BackwardTransform(lev, field_mf, field_index, i_comp); } /* \brief Transform spectral fields specified by `field_index1` and `field_index2` * back to real space, and store it in `field_mf1` and `field_mf2`*/ void -SpectralSolverRZ::BackwardTransform (amrex::MultiFab& field_mf1, int const field_index1, +SpectralSolverRZ::BackwardTransform (const int lev, + amrex::MultiFab& field_mf1, int const field_index1, amrex::MultiFab& field_mf2, int const field_index2) { WARPX_PROFILE("SpectralSolverRZ::BackwardTransform"); - field_data.BackwardTransform(field_mf1, field_index1, + field_data.BackwardTransform(lev, + field_mf1, field_index1, field_mf2, field_index2); } @@ -115,9 +121,10 @@ SpectralSolverRZ::pushSpectralFields () { * of the base class SpectralBaseAlgorithmRZ from objects of class SpectralSolverRZ */ void -SpectralSolverRZ::ComputeSpectralDivE (const std::array<std::unique_ptr<amrex::MultiFab>,3>& Efield, +SpectralSolverRZ::ComputeSpectralDivE (const int lev, + const std::array<std::unique_ptr<amrex::MultiFab>,3>& Efield, amrex::MultiFab& divE) { - algorithm->ComputeSpectralDivE(field_data, Efield, divE); + algorithm->ComputeSpectralDivE(lev, field_data, Efield, divE); } /** @@ -131,13 +138,14 @@ SpectralSolverRZ::ComputeSpectralDivE (const std::array<std::unique_ptr<amrex::M * \param[in] rho unique pointer to MultiFab storing the charge density */ void -SpectralSolverRZ::CurrentCorrection (std::array<std::unique_ptr<amrex::MultiFab>,3>& current, - const std::unique_ptr<amrex::MultiFab>& rho) { - algorithm->CurrentCorrection(field_data, current, rho); +SpectralSolverRZ::CurrentCorrection (const int lev, + std::array<std::unique_ptr<amrex::MultiFab>,3>& current, + const std::unique_ptr<amrex::MultiFab>& rho) { + algorithm->CurrentCorrection(lev, field_data, current, rho); } void -SpectralSolverRZ::VayDeposition (std::array<std::unique_ptr<amrex::MultiFab>,3>& current) +SpectralSolverRZ::VayDeposition (const int lev, std::array<std::unique_ptr<amrex::MultiFab>,3>& current) { - algorithm->VayDeposition(field_data, current); + algorithm->VayDeposition(lev, field_data, current); } |