espressomd / espresso

The ESPResSo package
https://espressomd.org
GNU General Public License v3.0
230 stars 187 forks source link

Hide FFT implementation details #4947

Closed jngrad closed 4 months ago

jngrad commented 4 months ago

Fixes #4945

Description of changes:

jngrad commented 4 months ago

@RudolfWeeber I realized just now we could improve separation of concerns in the P3M base struct further by moving the dipolar flag to the FFT class. Now it's ready to be merged.

@rodrigoacb We have disentangled the FFT logic from the P3M logic. There is still a small overlap due to how P3M communication buffers need to know about the FFT, but everything is encapsulated into the FFTBackendLegacy class. Alternative FFT libraries can be introduced via the CMake FetchContent mechanism and the FFTBackend pure virtual base class.