Fast Fourier Transform module. This module provides a single interface that works with different FFT implementations.
More...
Fast Fourier Transform module. This module provides a single interface that works with different FFT implementations.
|
| subroutine, public | fft_all_init (namespace) |
| | initialize the table More...
|
| |
| subroutine, public | fft_all_end () |
| | delete all plans More...
|
| |
| subroutine, public | fft_init (this, nn, dim, type, library, optimize, optimize_parity, comm, mpi_grp, use_aligned, howmany) |
| |
| subroutine, public | fft_init_stage1 (this, namespace, XX, nn) |
| | Some fft-libraries (only NFFT for the moment) need an additional precomputation stage that depends on the spatial grid whose size may change after fft_init. More...
|
| |
| subroutine, public | fft_end (this) |
| |
| subroutine, public | fft_copy (fft_i, fft_o) |
| |
| integer function, dimension(4) | fft_pack (dims3, howmany) |
| | Rank-4 data-array shape (dims3, howmany) with the batch as the trailing (batch-last) axis. More...
|
| |
| subroutine, public | fft_get_dims (fft, rs_n_global, fs_n_global, rs_n, fs_n, rs_istart, fs_istart) |
| |
| pure integer function, public | pad_feq (ii, nn, mode) |
| | convert between array index and G-vector More...
|
| |
| integer function | fft_size (size, factors, parity) |
| |
| subroutine | get_exponents (num, nfactors, factors, exponents, nondiv) |
| |
| subroutine | fft_operation_count (fft) |
| |
| pure subroutine, public | fft_gg_transform (gg_in, temp, periodic_dim, latt, qq, gg, modg2) |
| | Convert FFT grid index into the Cartesian reciprocal-space vector \((\mathbf{G} + \mathbf{q})\). More...
|
| |
| real(real64) pure function, public | fft_scaling_factor (fft) |
| | This function returns the factor required to normalize a function after a forward and backward transform. More...
|
| |
| real(real64) function, public | fft_get_ecut_from_box (box_dim, fs_istart, latt, gspacing, periodic_dim, qq) |
| | Given an fft box (fixed by the real-space grid), it returns the cutoff energy of the sphere that fits inside the box. More...
|
| |
| subroutine | dfft_forward_single_3d (fft, in, out, norm) |
| |
| subroutine | dfft_forward_many_3d (fft, in, out, norm) |
| |
| subroutine | dfft_forward_accel (fft, in, out) |
| |
| subroutine | dfft_forward_1d (fft, in, out) |
| |
| subroutine | dfft_backward_single_3d (fft, in, out, norm) |
| |
| subroutine | dfft_backward_many_3d (fft, in, out, norm) |
| |
| subroutine | dfft_backward_accel (fft, in, out) |
| |
| subroutine | dfft_backward_1d (fft, in, out) |
| |
| subroutine | zfft_forward_single_3d (fft, in, out, norm) |
| |
| subroutine | zfft_forward_many_3d (fft, in, out, norm) |
| |
| subroutine | zfft_forward_accel (fft, in, out) |
| |
| subroutine | zfft_forward_1d (fft, in, out) |
| |
| subroutine | zfft_backward_single_3d (fft, in, out, norm) |
| |
| subroutine | zfft_backward_many_3d (fft, in, out, norm) |
| |
| subroutine | zfft_backward_accel (fft, in, out) |
| |
| subroutine | zfft_backward_1d (fft, in, out) |
| |
|
| integer, parameter, public | fft_none = 0 |
| | global constants More...
|
| |
| integer, parameter, public | fft_real = 1 |
| |
| integer, parameter, public | fft_complex = 2 |
| |
| integer, parameter, public | fftlib_none = 0 |
| |
| integer, parameter, public | fftlib_fftw = 1 |
| |
| integer, parameter, public | fftlib_pfft = 2 |
| |
| integer, parameter, public | fftlib_accel = 3 |
| |
| integer, parameter, public | fftlib_nfft = 4 |
| |
| integer, parameter, public | fftlib_pnfft = 5 |
| |
| integer, parameter | fft_max = 10 |
| |
| integer, parameter | fft_null = -1 |
| |
| logical, save, public | fft_initialized = .false. |
| |
| integer, dimension(fft_max), save | fft_refs |
| |
| type(fft_t), dimension(fft_max), save | fft_array |
| |
| logical | fft_optimize |
| |
| integer, save | fft_prepare_plan |
| |
| integer, public | fft_default_lib = -1 |
| |
| type(pnfft_t), save | pnfft_options |
| |
| integer, parameter | cufft_r2c = int(z'2a') |
| |
| integer, parameter | cufft_c2r = int(z'2c') |
| |
| integer, parameter | cufft_c2c = int(z'29') |
| |
| integer, parameter | cufft_d2z = int(z'6a') |
| |
| integer, parameter | cufft_z2d = int(z'6c') |
| |
| integer, parameter | cufft_z2z = int(z'69') |
| |