Class TempLat::KokkosFFTPlanHolder
template <typename T, size_t NDim>
ClassList > TempLat > KokkosFFTPlanHolder
A class which implements part of FFTLibraryInterface::PlanInterface, holding the KokkosFFT plans in shared_ptr's. More...
#include <kokkosfftplanholder.h>
Inherits the following classes: TempLat::FFTPlanInterface
Classes
| Type | Name |
|---|---|
| struct | Plans What's the intention here? Well, KokkosFFT does not support multi-dimensional FFTs directly, but only 1D, 2D and 3D FFTs. So for higher dimensions, we need to chain multiple FFTs together. This struct holds the plans for these FFTs, and provides methods to execute them in sequence. |
Public Types
| Type | Name |
|---|---|
| typedef typename KokkosFFT::Plan< Kokkos::DefaultExecutionSpace, device::memory::NDViewUnmanaged< complex< T >, NDim >, device::memory::NDViewUnmanaged< T, NDim >, NDim > | PlanType_c2r |
| typedef typename KokkosFFT::Plan< Kokkos::DefaultExecutionSpace, device::memory::NDViewUnmanaged< T, NDim >, device::memory::NDViewUnmanaged< complex< T >, NDim >, NDim > | PlanType_r2c |
Public Functions
| Type | Name |
|---|---|
| KokkosFFTPlanHolder (MPICartesianGroup group, const Plans & plans) |
|
| virtual void | c2r (MemoryBlock< T, NDim > & mBlock) |
| virtual void | r2c (MemoryBlock< T, NDim > & mBlock) |
| virtual | ~KokkosFFTPlanHolder () = default |
Public Functions inherited from TempLat::FFTPlanInterface
| Type | Name |
|---|---|
| virtual void | c2r (MemoryBlock< T, NDim > & mBlock) = 0 |
| virtual void | r2c (MemoryBlock< T, NDim > & mBlock) = 0 |
| virtual | ~FFTPlanInterface () = default |
Detailed Description
- only freed when the last instance of this class is destructed.Unit test: ctest -R test-kokkosfftplanholder
Public Types Documentation
typedef PlanType_c2r
using TempLat::KokkosFFTPlanHolder< T, NDim >::PlanType_c2r = typename KokkosFFT::Plan<Kokkos::DefaultExecutionSpace, device::memory::NDViewUnmanaged<complex<T>, NDim>, device::memory::NDViewUnmanaged<T, NDim>, NDim>;
typedef PlanType_r2c
using TempLat::KokkosFFTPlanHolder< T, NDim >::PlanType_r2c = typename KokkosFFT::Plan<Kokkos::DefaultExecutionSpace, device::memory::NDViewUnmanaged<T, NDim>, device::memory::NDViewUnmanaged<complex<T>, NDim>, NDim>;
Public Functions Documentation
function KokkosFFTPlanHolder
inline TempLat::KokkosFFTPlanHolder::KokkosFFTPlanHolder (
MPICartesianGroup group,
const Plans & plans
)
function c2r
Implements TempLat::FFTPlanInterface::c2r
function r2c
Implements TempLat::FFTPlanInterface::r2c
function ~KokkosFFTPlanHolder
The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/fft/external/kokkosfft/kokkosfftplanholder.h