aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp')
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp46
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);
}