WarpX
WarpX copied to clipboard
[WIP]Implement PSATD advance with the Picard implicit iterative solver
This implements use of the PSATD field advance coupled with the implicit Picard iterative solver, using a Strang split advance.
- Advect Maxwell using PSATD with no J, ½ step
- Advance particles along with dE/dt = -J, full step, iterating
- Advect Maxwell using PSATD with no J, ½ step
This requires the input parameter psatd.update_with_rho = 0
.
With psatd.periodic_single_box_fft = 1
, exact energy conservation is obtained. Otherwise good conservation is seen, but not exact ($\Delta E/E$ ~ 1.e-9 but will depend on parameters).
Convergence is found for wpedt <= 1.9 (compared to wpedt < 0.25 for FDTD).
Todo:
- Add CI test
- Implement specialized advance routines (as noted in source comments)
Charge conservation?
Closed. Replaced by PR #5027.