Move GPU 3D FFT code to fft module
[alexxy/gromacs.git] / src / gromacs / fft / gpu_3dfft.cu
similarity index 80%
rename from src/gromacs/ewald/pme_gpu_3dfft.cu
rename to src/gromacs/fft/gpu_3dfft.cu
index f547fc6bcc6289793e9e4ac1f74d2c2f7f293d4f..78f3ba90dcc0cf0bb2f70e2274d73ff5d9f25c2a 100644 (file)
  */
 
 /*! \internal \file
- *  \brief Implements CUDA FFT routines for PME GPU.
+ *  \brief Implements GPU 3D FFT routines for CUDA.
  *
  *  \author Aleksei Iupinov <a.yupinov@gmail.com>
- *  \ingroup module_ewald
+ *  \author Mark Abraham <mark.j.abraham@gmail.com>
+ *  \ingroup module_fft
  */
 
 #include "gmxpre.h"
 
-#include "pme_gpu_3dfft.h"
+#include "gpu_3dfft.h"
 
 #include <cufft.h>
 
 #include "gromacs/utility/fatalerror.h"
 #include "gromacs/utility/gmxassert.h"
 
-class GpuParallel3dFft::Impl
+namespace gmx
+{
+
+class Gpu3dFft::Impl
 {
 public:
     Impl(ivec                 realGridSize,
@@ -78,15 +82,15 @@ static void handleCufftError(cufftResult_t status, const char* msg)
     }
 }
 
-GpuParallel3dFft::Impl::Impl(ivec       realGridSize,
-                             ivec       realGridSizePadded,
-                             ivec       complexGridSizePadded,
-                             const bool useDecomposition,
-                             const bool /*performOutOfPlaceFFT*/,
-                             const DeviceContext& /*context*/,
-                             const DeviceStream& pmeStream,
-                             DeviceBuffer<float> realGrid,
-                             DeviceBuffer<float> complexGrid) :
+Gpu3dFft::Impl::Impl(ivec       realGridSize,
+                     ivec       realGridSizePadded,
+                     ivec       complexGridSizePadded,
+                     const bool useDecomposition,
+                     const bool /*performOutOfPlaceFFT*/,
+                     const DeviceContext& /*context*/,
+                     const DeviceStream& pmeStream,
+                     DeviceBuffer<float> realGrid,
+                     DeviceBuffer<float> complexGrid) :
     realGrid_(reinterpret_cast<cufftReal*>(realGrid)),
     complexGrid_(reinterpret_cast<cufftComplex*>(complexGrid))
 {
@@ -147,7 +151,7 @@ GpuParallel3dFft::Impl::Impl(ivec       realGridSize,
     handleCufftError(result, "cufftSetStream C2R failure");
 }
 
-GpuParallel3dFft::Impl::~Impl()
+Gpu3dFft::Impl::~Impl()
 {
     cufftResult_t result;
     result = cufftDestroy(planR2C_);
@@ -156,7 +160,7 @@ GpuParallel3dFft::Impl::~Impl()
     handleCufftError(result, "cufftDestroy C2R failure");
 }
 
-void GpuParallel3dFft::perform3dFft(gmx_fft_direction dir, CommandEvent* /*timingEvent*/)
+void Gpu3dFft::perform3dFft(gmx_fft_direction dir, CommandEvent* /*timingEvent*/)
 {
     cufftResult_t result;
     if (dir == GMX_FFT_REAL_TO_COMPLEX)
@@ -171,15 +175,15 @@ void GpuParallel3dFft::perform3dFft(gmx_fft_direction dir, CommandEvent* /*timin
     }
 }
 
-GpuParallel3dFft::GpuParallel3dFft(ivec                 realGridSize,
-                                   ivec                 realGridSizePadded,
-                                   ivec                 complexGridSizePadded,
-                                   const bool           useDecomposition,
-                                   const bool           performOutOfPlaceFFT,
-                                   const DeviceContext& context,
-                                   const DeviceStream&  pmeStream,
-                                   DeviceBuffer<float>  realGrid,
-                                   DeviceBuffer<float>  complexGrid) :
+Gpu3dFft::Gpu3dFft(ivec                 realGridSize,
+                   ivec                 realGridSizePadded,
+                   ivec                 complexGridSizePadded,
+                   const bool           useDecomposition,
+                   const bool           performOutOfPlaceFFT,
+                   const DeviceContext& context,
+                   const DeviceStream&  pmeStream,
+                   DeviceBuffer<float>  realGrid,
+                   DeviceBuffer<float>  complexGrid) :
     impl_(std::make_unique<Impl>(realGridSize,
                                  realGridSizePadded,
                                  complexGridSizePadded,
@@ -192,4 +196,6 @@ GpuParallel3dFft::GpuParallel3dFft(ivec                 realGridSize,
 {
 }
 
-GpuParallel3dFft::~GpuParallel3dFft() = default;
+Gpu3dFft::~Gpu3dFft() = default;
+
+} // namespace gmx