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