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]
function c2r [2/2]
function getBackend
function getLayout
function getPlans_double
function getPlans_float
function r2c [1/2]
function r2c [2/2]
function 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