diff options
Diffstat (limited to '')
-rw-r--r-- | Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp index fec0ebc8f..55b58821c 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralAlgorithms/PsatdAlgorithmRZ.cpp @@ -6,6 +6,7 @@ */ #include "PsatdAlgorithmRZ.H" #include "Utils/TextMsg.H" +#include "Utils/WarpXAlgorithmSelection.H" #include "Utils/WarpXConst.H" #include "Utils/WarpXProfilerWrapper.H" #include "WarpX.H" @@ -23,7 +24,8 @@ PsatdAlgorithmRZ::PsatdAlgorithmRZ (SpectralKSpaceRZ const & spectral_kspace, bool const nodal, amrex::Real const dt, bool const update_with_rho, const bool time_averaging, - const bool do_multi_J, + const int J_in_time, + const int rho_in_time, const bool dive_cleaning, const bool divb_cleaning) // Initialize members of base class @@ -32,10 +34,11 @@ PsatdAlgorithmRZ::PsatdAlgorithmRZ (SpectralKSpaceRZ const & spectral_kspace, m_dt(dt), m_update_with_rho(update_with_rho), m_time_averaging(time_averaging), - m_do_multi_J(do_multi_J), + m_J_in_time(J_in_time), m_dive_cleaning(dive_cleaning), m_divb_cleaning(divb_cleaning) { + amrex::ignore_unused(rho_in_time); // Allocate the arrays of coefficients amrex::BoxArray const & ba = spectral_kspace.spectralspace_ba; @@ -47,28 +50,28 @@ PsatdAlgorithmRZ::PsatdAlgorithmRZ (SpectralKSpaceRZ const & spectral_kspace, coefficients_initialized = false; - if (time_averaging && do_multi_J) + if (time_averaging && J_in_time == JInTime::Linear) { X5_coef = SpectralRealCoefficients(ba, dm, n_rz_azimuthal_modes, 0); X6_coef = SpectralRealCoefficients(ba, dm, n_rz_azimuthal_modes, 0); } - if (time_averaging && !do_multi_J) + if (time_averaging && J_in_time != JInTime::Linear) { amrex::Abort(Utils::TextMsg::Err( - "RZ PSATD: psatd.do_time_averaging = 1 implemented only with warpx.do_multi_J = 1")); + "RZ PSATD: psatd.do_time_averaging=1 implemented only with psatd.J_in_time=linear")); } - if (dive_cleaning && !do_multi_J) + if (dive_cleaning && J_in_time != JInTime::Linear) { amrex::Abort(Utils::TextMsg::Err( - "RZ PSATD: warpx.do_dive_cleaning = 1 implemented only with warpx.do_multi_J = 1")); + "RZ PSATD: warpx.do_dive_cleaning=1 implemented only with psatd.J_in_time=linear")); } - if (divb_cleaning && !do_multi_J) + if (divb_cleaning && J_in_time != JInTime::Linear) { amrex::Abort(Utils::TextMsg::Err( - "RZ PSATD: warpx.do_divb_cleaning = 1 implemented only with warpx.do_multi_J = 1")); + "RZ PSATD: warpx.do_divb_cleaning=1 implemented only with psatd.J_in_time=linear")); } } @@ -80,7 +83,7 @@ PsatdAlgorithmRZ::pushSpectralFields(SpectralFieldDataRZ & f) const bool update_with_rho = m_update_with_rho; const bool time_averaging = m_time_averaging; - const bool do_multi_J = m_do_multi_J; + const bool J_in_time_linear = (m_J_in_time == JInTime::Linear) ? true : false; const bool dive_cleaning = m_dive_cleaning; const bool divb_cleaning = m_divb_cleaning; @@ -109,7 +112,7 @@ PsatdAlgorithmRZ::pushSpectralFields(SpectralFieldDataRZ & f) amrex::Array4<const amrex::Real> X5_arr; amrex::Array4<const amrex::Real> X6_arr; - if (time_averaging && do_multi_J) + if (time_averaging && J_in_time_linear) { X5_arr = X5_coef[mfi].array(); X6_arr = X6_coef[mfi].array(); @@ -235,7 +238,7 @@ PsatdAlgorithmRZ::pushSpectralFields(SpectralFieldDataRZ & f) G_old = fields(i,j,k,G_m); } - if (do_multi_J) + if (J_in_time_linear) { const int Jp_m_new = Idx.Jx_new + Idx.n_fields*mode; const int Jm_m_new = Idx.Jy_new + Idx.n_fields*mode; @@ -332,7 +335,7 @@ PsatdAlgorithmRZ::pushSpectralFields(SpectralFieldDataRZ & f) void PsatdAlgorithmRZ::InitializeSpectralCoefficients (SpectralFieldDataRZ const & f) { const bool time_averaging = m_time_averaging; - const bool do_multi_J = m_do_multi_J; + const bool J_in_time_linear = (m_J_in_time == JInTime::Linear) ? true : false; // Fill them with the right values: // Loop over boxes and allocate the corresponding coefficients @@ -353,7 +356,7 @@ void PsatdAlgorithmRZ::InitializeSpectralCoefficients (SpectralFieldDataRZ const amrex::Array4<amrex::Real> X5; amrex::Array4<amrex::Real> X6; - if (time_averaging && do_multi_J) + if (time_averaging && J_in_time_linear) { X5 = X5_coef[mfi].array(); X6 = X6_coef[mfi].array(); @@ -392,7 +395,7 @@ void PsatdAlgorithmRZ::InitializeSpectralCoefficients (SpectralFieldDataRZ const X3(i,j,k,mode) = - c*c * dt*dt / (3._rt*ep0); } - if (time_averaging && do_multi_J) + if (time_averaging && J_in_time_linear) { constexpr amrex::Real c2 = PhysConst::c; const amrex::Real dt3 = dt * dt * dt; |