move fft files
original comment:
Perspectively we can think whether we want to move the fft implementations to a sub-folder maybe? Something like:
cpp/
...
├── fft_interface.hpp
├── fft
│ ├── fftw.hpp
│ ├── fftw_interface.hpp
│ ├── heffte.hpp
│ └── <some-other-fft-in-the-future>.hpp
├── fftw_tools.hpp
├── fftw_tools.cpp
...
I would then remove the fftw-impl from fft_interface.hpp and put it into fft/fftw.hpp (which in turn uses the wrapper from fft/fftw_interface.hpp. The latter unchanged and just being moved to the sub-folder. Future implementations can just go in fft/, e.g., like fft/heffte.hpp.
I am unsure about the fftw_tools. These are only partially tools for fftw-only but could also be generic fft_tools. Only the planner thing is really fftw-only related. I would perspectively try to remove that as a parameter from the field class. But since I don't have a clear picture of how to get parameter for other ffts atm I would currently postpone this a little.