12 #include <AMReX_Config.H>
15 # if defined(AMREX_USE_CUDA)
17 # include <cuComplex.h>
18 # elif defined(AMREX_USE_HIP)
19 # if __has_include(<rocfft/rocfft.h>)
20 # include <rocfft/rocfft.h>
24 # include <hip/hip_complex.h>
25 # elif defined(AMREX_USE_SYCL)
26 # include <oneapi/mkl/dft.hpp>
43 #if defined(AMREX_USE_CUDA)
44 # ifdef AMREX_USE_FLOAT
47 using Complex = cuDoubleComplex;
49 #elif defined(AMREX_USE_HIP)
50 # ifdef AMREX_USE_FLOAT
56 # ifdef AMREX_USE_FLOAT
66 #if defined(AMREX_USE_CUDA)
68 #elif defined(AMREX_USE_HIP)
71 # ifdef AMREX_USE_FLOAT
FFTplan CreatePlan(const amrex::IntVect &real_size, amrex::Real *const real_array, Complex *const complex_array, const direction dir, const int dim)
create FFT plan for the backend FFT library.
Definition: WrapCuFFT.cpp:25
void Execute(FFTplan &fft_plan)
Perform FFT with backend library.
Definition: WrapCuFFT.cpp:74
fftw_plan VendorFFTPlan
Definition: AnyFFT.H:74
direction
Definition: AnyFFT.H:81
fftw_complex Complex
Definition: AnyFFT.H:59
void DestroyPlan(FFTplan &fft_plan)
Destroy library FFT plan.
Definition: WrapCuFFT.cpp:69
Complex * m_complex_array
Definition: AnyFFT.H:88
amrex::Real * m_real_array
Definition: AnyFFT.H:87
int m_dim
Definition: AnyFFT.H:91
direction m_dir
Definition: AnyFFT.H:90
VendorFFTPlan m_plan
Definition: AnyFFT.H:89