diff options
author | 2023-04-10 16:19:38 -0700 | |
---|---|---|
committer | 2023-04-10 16:19:38 -0700 | |
commit | b63351bf5f0a1b794c8e0b1eaf334f4a0a06a706 (patch) | |
tree | 13391dae30967bc32030e86853ad0c875cad477d /Source/Evolve/WarpXEvolve.cpp | |
parent | 81d4b5b58475435f0c44a3cd56a07681e0912dc0 (diff) | |
download | WarpX-b63351bf5f0a1b794c8e0b1eaf334f4a0a06a706.tar.gz WarpX-b63351bf5f0a1b794c8e0b1eaf334f4a0a06a706.tar.zst WarpX-b63351bf5f0a1b794c8e0b1eaf334f4a0a06a706.zip |
PSATD: call FFT of rho with explicit spectral index (#3720)
Diffstat (limited to 'Source/Evolve/WarpXEvolve.cpp')
-rw-r--r-- | Source/Evolve/WarpXEvolve.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/Evolve/WarpXEvolve.cpp b/Source/Evolve/WarpXEvolve.cpp index 742669cd4..859ba2145 100644 --- a/Source/Evolve/WarpXEvolve.cpp +++ b/Source/Evolve/WarpXEvolve.cpp @@ -549,6 +549,9 @@ WarpX::OneStep_multiJ (const amrex::Real cur_time) "multi-J algorithm not implemented for FDTD" ); + const int rho_mid = spectral_solver_fp[0]->m_spectral_index.rho_mid; + const int rho_new = spectral_solver_fp[0]->m_spectral_index.rho_new; + // Push particle from x^{n} to x^{n+1} // from p^{n-1/2} to p^{n+1/2} const bool skip_deposition = true; @@ -574,7 +577,7 @@ WarpX::OneStep_multiJ (const amrex::Real cur_time) // Filter, exchange boundary, and interpolate across levels SyncRho(); // Forward FFT of rho - PSATDForwardTransformRho(rho_fp, rho_cp, 0, 1); + PSATDForwardTransformRho(rho_fp, rho_cp, 0, rho_new); } // 4) Deposit J at relative time -dt with time step dt @@ -638,7 +641,8 @@ WarpX::OneStep_multiJ (const amrex::Real cur_time) // Filter, exchange boundary, and interpolate across levels SyncRho(); // Forward FFT of rho - PSATDForwardTransformRho(rho_fp, rho_cp, 0, 1); + const int rho_idx = (rho_in_time == RhoInTime::Linear) ? rho_new : rho_mid; + PSATDForwardTransformRho(rho_fp, rho_cp, 0, rho_idx); } if (WarpX::current_correction) |