SIRIUS 7.5.0
Electronic structure library and applications
|
FFT-related functions and objects. More...
Classes | |
class | Grid |
Helper class to create FFT grids of given sizes and compute indices in space- and frequency domains. More... | |
class | Gvec |
A set of G-vectors for FFTs and G+k basis functions. More... | |
class | Gvec_fft |
Stores information about G-vector partitioning between MPI ranks for the FFT transformation. More... | |
class | Gvec_shells |
Helper class to manage G-vector shells and redistribute G-vectors for symmetrization. More... | |
struct | SpFFT_Grid |
Type traits to handle Spfft grid for different precision type. More... | |
struct | SpFFT_Grid< double > |
struct | SpFFT_Grid< std::complex< double > > |
struct | SpFFT_Transform |
Type traits to handle Spfft driver for different precision type. More... | |
struct | SpFFT_Transform< double > |
struct | SpFFT_Transform< std::complex< double > > |
struct | z_column_descriptor |
Descriptor of the z-column (x,y fixed, z varying) of the G-vectors. More... | |
Typedefs | |
template<typename T > | |
using | spfft_grid_type = typename SpFFT_Grid< T >::type |
template<typename T > | |
using | spfft_transform_type = typename SpFFT_Transform< T >::type |
template<typename F , typename T , typename ... Args> | |
using | 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 > | 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 > | spfft_input (spfft_transform_type< T > &spfft__, F &&fr__) |
Load data from complex-valued lambda. More... | |
template<typename T > | |
void | 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 | spfft_multiply (spfft_transform_type< T > &spfft__, F &&fr__) |
template<typename T > | |
void | spfft_output (spfft_transform_type< T > &spfft__, T *data__) |
Output CPU data from the CPU buffer of SpFFT. More... | |
template<typename T > | |
void | spfft_output (spfft_transform_type< T > &spfft__, std::complex< T > *data__) |
template<typename T > | |
size_t | spfft_grid_size (T const &spfft__) |
Total size of the SpFFT transformation grid. More... | |
template<typename T > | |
size_t | spfft_grid_size_local (T const &spfft__) |
Local size of the SpFFT transformation grid. More... | |
auto | 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... | |
auto | get_min_grid (double cutoff__, r3::matrix< double > M__) |
Get the minimum grid that circumscribes the cutoff sphere. More... | |
Gvec | send_recv (mpi::Communicator const &comm__, Gvec const &gv_src__, int source__, int dest__) |
void | serialize (serializer &s__, Gvec const &gv__) |
void | deserialize (serializer &s__, Gvec &gv__) |
void | serialize (serializer &s__, z_column_descriptor const &zcol__) |
Serialize a single z-column descriptor. More... | |
void | deserialize (serializer &s__, z_column_descriptor &zcol__) |
Deserialize a single z-column descriptor. More... | |
void | serialize (serializer &s__, std::vector< z_column_descriptor > const &zcol__) |
Serialize a vector of z-column descriptors. More... | |
void | deserialize (serializer &s__, std::vector< z_column_descriptor > &zcol__) |
Deserialize a vector of z-column descriptors. More... | |
std::shared_ptr< Gvec > | gkvec_factory (double gk_cutoff__, mpi::Communicator const &comm__) |
This is only for debug purpose. More... | |
std::shared_ptr< Gvec > | gkvec_factory (r3::vector< double > vk__, r3::matrix< double > reciprocal_lattice_vectors__, double gk_cutoff__, mpi::Communicator const &comm__=mpi::Communicator::self(), bool gamma__=false) |
void | print (std::ostream &out__, Gvec const &gvec__) |
Variables | |
const std::map< SpfftProcessingUnitType, sddk::memory_t > | spfft_memory_t |
FFT-related functions and objects.
using sirius::fft::spfft_grid_type = typedef typename SpFFT_Grid<T>::type |
using sirius::fft::spfft_transform_type = typedef typename SpFFT_Transform<T>::type |
using sirius::fft::enable_return = typedef typename std::enable_if<std::is_same<typename std::result_of<F(Args...)>::type, T>::value, void>::type |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get the minimum grid that circumscribes the cutoff sphere.
Definition at line 161 of file fft3d_grid.hpp.
Gvec sirius::fft::send_recv | ( | mpi::Communicator const & | comm__, |
Gvec const & | gv_src__, | ||
int | source__, | ||
int | dest__ | ||
) |
void sirius::fft::serialize | ( | serializer & | s__, |
Gvec const & | gv__ | ||
) |
void sirius::fft::deserialize | ( | serializer & | s__, |
Gvec & | gv__ | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
const std::map<SpfftProcessingUnitType, sddk::memory_t> sirius::fft::spfft_memory_t |