Skip to content

Class TempLat::FFTLibrarySelector

template <size_t NDim>

ClassList > TempLat > FFTLibrarySelector

Public Functions

Type Name
FFTLibrarySelector (MPICartesianGroup group, const device::IdxArray< NDim > & nGridPoints, bool forbidTransposition=false)
void c2r (MemoryBlock< double, NDim > & mBlock)
void c2r (MemoryBlock< float, NDim > & mBlock)
const std::string & getBackend () const
const auto & getLayout ()
void getPlans_double ()
void getPlans_float ()
void r2c (MemoryBlock< double, NDim > & mBlock)
void r2c (MemoryBlock< float, NDim > & mBlock)
void setVerbose ()

Public Static Functions

Type Name
FFTDecomposition< NDim > decomposition (MPICommReference baseComm, const device::IdxArray< NDim > & nGridPoints)
Shape-only query, for callers that do not need the communicator.
FFTTopology< NDim > topology (MPICommReference baseComm, const device::IdxArray< NDim > & nGridPoints)
The full MPI topology the runtime-selected FFT backend will use for this setup.

Public Functions Documentation

function FFTLibrarySelector

inline TempLat::FFTLibrarySelector::FFTLibrarySelector (
    MPICartesianGroup group,
    const device::IdxArray< NDim > & nGridPoints,
    bool forbidTransposition=false
) 

function c2r [1/2]

inline void TempLat::FFTLibrarySelector::c2r (
    MemoryBlock < double, NDim > & mBlock
) 

function c2r [2/2]

inline void TempLat::FFTLibrarySelector::c2r (
    MemoryBlock < float, NDim > & mBlock
) 

function getBackend

inline const std::string & TempLat::FFTLibrarySelector::getBackend () const

function getLayout

inline const auto & TempLat::FFTLibrarySelector::getLayout () 

function getPlans_double

inline void TempLat::FFTLibrarySelector::getPlans_double () 

function getPlans_float

inline void TempLat::FFTLibrarySelector::getPlans_float () 

function r2c [1/2]

inline void TempLat::FFTLibrarySelector::r2c (
    MemoryBlock < double, NDim > & mBlock
) 

function r2c [2/2]

inline void TempLat::FFTLibrarySelector::r2c (
    MemoryBlock < float, NDim > & mBlock
) 

function setVerbose

inline void TempLat::FFTLibrarySelector::setVerbose () 

Public Static Functions Documentation

function decomposition

Shape-only query, for callers that do not need the communicator.

static inline FFTDecomposition < NDim > TempLat::FFTLibrarySelector::decomposition (
    MPICommReference baseComm,
    const device::IdxArray< NDim > & nGridPoints
) 

Dispatches to the backends' own decomposition() rather than going through topology(): the latter duplicates a communicator, which is pure overhead on a path that only reads the grid shape (such as validating a hand-built group).


function topology

The full MPI topology the runtime-selected FFT backend will use for this setup.

static inline FFTTopology < NDim > TempLat::FFTLibrarySelector::topology (
    MPICommReference baseComm,
    const device::IdxArray< NDim > & nGridPoints
) 

Used by FFTMPIDomainSplit to build the MPI Cartesian group directly on the backend's own communicator, so the group's rank->coordinate mapping is the backend's by construction rather than by coincidence. See FFTTopology for why shape agreement alone is not enough.



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