This issue keeps track of the progress on the spectral solver, and what remains to be done:
[x] Port the non-hybrid solver from Fortran to C++ #95
[x] Implement real-to-complex FFT #98
[x] Have the solver work on GPU, by linking cuFFT #96 - implemented in #177
[x] Allow the spectral solver to compile for GPU without FFTW being installed (i.e. put all FFTW include/calls inbetween #ifdef)
[ ] Implement OpenMP parallelization and tiling, for the relevant parts of the spectral solver
[x] Stop using the hybrid decomposition, when only local FFT are performed #99
[x] Implement spectral solver with PML #122
[x] Have the spectral solver work with mesh refinement #251
[x] Have the spectral solver work with load-balancing #1139
[x] Implement the Galilean algorithm #704
[x] Implement more advanced Galilean-like algorithms #869
[x] Investigate and fix the small differences (typically 1.e-3 relative difference) between the psatd.hybrid_mpi_decomposition=0 (using C++ code) and psatd.hybrid_mpi_decomposition=1 (using PICSAR Fortran code) - see #104
This issue keeps track of the progress on the spectral solver, and what remains to be done:
#ifdef
)psatd.hybrid_mpi_decomposition=0
(using C++ code) andpsatd.hybrid_mpi_decomposition=1
(using PICSAR Fortran code) - see #104