Skip to content

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

See 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

inline virtual void TempLat::KokkosFFTPlanHolder::c2r (
    MemoryBlock < T, NDim > & mBlock
) 

Implements TempLat::FFTPlanInterface::c2r


function r2c

inline virtual void TempLat::KokkosFFTPlanHolder::r2c (
    MemoryBlock < T, NDim > & mBlock
) 

Implements TempLat::FFTPlanInterface::r2c


function ~KokkosFFTPlanHolder

virtual TempLat::KokkosFFTPlanHolder::~KokkosFFTPlanHolder () = default


The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/fft/external/kokkosfft/kokkosfftplanholder.h