aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2022-09-20 16:28:39 -0700
committerGravatar GitHub <noreply@github.com> 2022-09-20 16:28:39 -0700
commit5761b4bf998eab84ea0f7e4b132026593f3ddf9f (patch)
tree39a60a20ac3fac7368231b66f49fad063321f624 /Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp
parent2fed2828933831ee464f0ca5d02a23dd2df54aad (diff)
downloadWarpX-5761b4bf998eab84ea0f7e4b132026593f3ddf9f.tar.gz
WarpX-5761b4bf998eab84ea0f7e4b132026593f3ddf9f.tar.zst
WarpX-5761b4bf998eab84ea0f7e4b132026593f3ddf9f.zip
PSATD: More Options for Time Dependency of J, Rho (#3242)
* Rename PsatdAlgorithm as PsatdAlgorithmJConstantInTime * Add New Inputs: psatd.J_in_time, psatd.rho_in_time * Update PSATD Classes * Fix Bug for FDTD Build * Fix Warning for RZ PSATD Build * Fix Multi-J Loop w/ J Constant in Time * Clean up * Fix Error Message * Fix Time of Charge Deposition for Rho Linear * Add 3D Langmuir CI Tests w/ Multi-J Algo * Fix Checksums of New CI Tests * Remove Extra CI Tests (added in #3363) * Fix CI Tests w/ Multi-J PSATD * Add Docs for New Input Parameters * Galilean/Comoving PSATD Not Compatible w/ J Linear
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp')
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp b/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp
index 3f4bddd8b..23d93fe04 100644
--- a/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp
+++ b/Source/FieldSolver/SpectralSolver/SpectralSolverRZ.cpp
@@ -35,7 +35,8 @@ SpectralSolverRZ::SpectralSolverRZ (const int lev,
bool const with_pml,
bool const update_with_rho,
const bool fft_do_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)
: k_space(realspace_ba, dm, dx)
@@ -47,8 +48,9 @@ SpectralSolverRZ::SpectralSolverRZ (const int lev,
// as well as the value of the corresponding k coordinates.
const bool is_pml = false;
- m_spectral_index = SpectralFieldIndex(update_with_rho, fft_do_time_averaging,
- do_multi_J, dive_cleaning, divb_cleaning, is_pml, with_pml);
+ m_spectral_index = SpectralFieldIndex(
+ update_with_rho, fft_do_time_averaging, J_in_time, rho_in_time,
+ dive_cleaning, divb_cleaning, is_pml, with_pml);
// - Select the algorithm depending on the input parameters
// Initialize the corresponding coefficients over k space
@@ -60,7 +62,7 @@ SpectralSolverRZ::SpectralSolverRZ (const int lev,
// v_galilean is 0: use standard PSATD algorithm
algorithm = std::make_unique<PsatdAlgorithmRZ>(
k_space, dm, m_spectral_index, n_rz_azimuthal_modes, norder_z, nodal, dt,
- update_with_rho, fft_do_time_averaging, do_multi_J, dive_cleaning, divb_cleaning);
+ update_with_rho, fft_do_time_averaging, J_in_time, rho_in_time, dive_cleaning, divb_cleaning);
} else {
// Otherwise: use the Galilean algorithm
algorithm = std::make_unique<PsatdAlgorithmGalileanRZ>(