SIRIUS 7.5.0
Electronic structure library and applications
Classes | Namespaces | Typedefs | Functions | Variables
fft.hpp File Reference

Contains helper functions for the interface with SpFFT library. More...

Go to the source code of this file.

Classes

struct  sirius::fft::SpFFT_Grid< T >
 Type traits to handle Spfft grid for different precision type. More...
 
struct  sirius::fft::SpFFT_Grid< double >
 
struct  sirius::fft::SpFFT_Grid< std::complex< double > >
 
struct  sirius::fft::SpFFT_Transform< T >
 Type traits to handle Spfft driver for different precision type. More...
 
struct  sirius::fft::SpFFT_Transform< double >
 
struct  sirius::fft::SpFFT_Transform< std::complex< double > >
 

Namespaces

module  sirius
 Namespace of the SIRIUS library.
 
namespace  sirius::fft
 FFT-related functions and objects.
 

Typedefs

template<typename T >
using sirius::fft::spfft_grid_type = typename SpFFT_Grid< T >::type
 
template<typename T >
using sirius::fft::spfft_transform_type = typename SpFFT_Transform< T >::type
 
template<typename F , typename T , typename ... Args>
using sirius::fft::enable_return = typename std::enable_if< std::is_same< typename std::result_of< F(Args...)>::type, T >::value, void >::type
 

Functions

template<typename T , typename F >
enable_return< F, T, int > sirius::fft::spfft_input (spfft_transform_type< T > &spfft__, F &&fr__)
 Load data from real-valued lambda. More...
 
template<typename T , typename F >
enable_return< F, std::complex< T >, int > sirius::fft::spfft_input (spfft_transform_type< T > &spfft__, F &&fr__)
 Load data from complex-valued lambda. More...
 
template<typename T >
void sirius::fft::spfft_input (spfft_transform_type< T > &spfft__, T const *data__)
 Input CPU data to CPU buffer of SpFFT. More...
 
template<typename T , typename F >
void sirius::fft::spfft_multiply (spfft_transform_type< T > &spfft__, F &&fr__)
 
template<typename T >
void sirius::fft::spfft_output (spfft_transform_type< T > &spfft__, T *data__)
 Output CPU data from the CPU buffer of SpFFT. More...
 
template<typename T >
void sirius::fft::spfft_output (spfft_transform_type< T > &spfft__, std::complex< T > *data__)
 
template<typename T >
size_t sirius::fft::spfft_grid_size (T const &spfft__)
 Total size of the SpFFT transformation grid. More...
 
template<typename T >
size_t sirius::fft::spfft_grid_size_local (T const &spfft__)
 Local size of the SpFFT transformation grid. More...
 
auto sirius::fft::split_z_dimension (int size_z__, mpi::Communicator const &comm_fft__)
 Split z-dimenstion of size_z between MPI ranks of the FFT communicator. More...
 

Variables

const std::map< SpfftProcessingUnitType, sddk::memory_t > sirius::fft::spfft_memory_t
 

Detailed Description

Contains helper functions for the interface with SpFFT library.

Definition in file fft.hpp.