Octopus
fft.F90 File Reference

Go to the source code of this file.

Modules

module  fft_oct_m
 Fast Fourier Transform module. This module provides a single interface that works with different FFT implementations.
 

Data Types

type  fft_oct_m::fft_t
 
interface  fft_oct_m::dfft_forward
 
interface  fft_oct_m::zfft_forward
 
interface  fft_oct_m::dfft_backward
 
interface  fft_oct_m::zfft_backward
 

Functions/Subroutines

subroutine, public fft_oct_m::fft_all_init (namespace)
 initialize the table More...
 
subroutine, public fft_oct_m::fft_all_end ()
 delete all plans More...
 
subroutine, public fft_oct_m::fft_init (this, nn, dim, type, library, optimize, optimize_parity, comm, mpi_grp, use_aligned)
 
subroutine, public fft_oct_m::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_oct_m::fft_end (this)
 
subroutine, public fft_oct_m::fft_copy (fft_i, fft_o)
 
subroutine, public fft_oct_m::fft_get_dims (fft, rs_n_global, fs_n_global, rs_n, fs_n, rs_istart, fs_istart)
 
pure integer function, public fft_oct_m::pad_feq (ii, nn, mode)
 convert between array index and G-vector More...
 
integer function fft_oct_m::fft_size (size, factors, parity)
 
subroutine fft_oct_m::get_exponents (num, nfactors, factors, exponents, nondiv)
 
subroutine fft_oct_m::fft_operation_count (fft)
 
subroutine, public fft_oct_m::fft_gg_transform (gg_in, temp, periodic_dim, latt, qq, gg, modg2)
 
real(real64) pure function, public fft_oct_m::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_oct_m::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 fft_oct_m::dfft_forward_3d (fft, in, out, norm)
 
subroutine fft_oct_m::dfft_forward_accel (fft, in, out)
 
subroutine fft_oct_m::dfft_forward_1d (fft, in, out)
 
subroutine fft_oct_m::dfft_backward_3d (fft, in, out, norm)
 
subroutine fft_oct_m::dfft_backward_accel (fft, in, out)
 
subroutine fft_oct_m::dfft_backward_1d (fft, in, out)
 
subroutine fft_oct_m::zfft_forward_3d (fft, in, out, norm)
 
subroutine fft_oct_m::zfft_forward_accel (fft, in, out)
 
subroutine fft_oct_m::zfft_forward_1d (fft, in, out)
 
subroutine fft_oct_m::zfft_backward_3d (fft, in, out, norm)
 
subroutine fft_oct_m::zfft_backward_accel (fft, in, out)
 
subroutine fft_oct_m::zfft_backward_1d (fft, in, out)
 

Variables

integer, parameter, public fft_oct_m::fft_none = 0
 global constants More...
 
integer, parameter, public fft_oct_m::fft_real = 1
 
integer, parameter, public fft_oct_m::fft_complex = 2
 
integer, parameter, public fft_oct_m::fftlib_none = 0
 
integer, parameter, public fft_oct_m::fftlib_fftw = 1
 
integer, parameter, public fft_oct_m::fftlib_pfft = 2
 
integer, parameter, public fft_oct_m::fftlib_accel = 3
 
integer, parameter, public fft_oct_m::fftlib_nfft = 4
 
integer, parameter, public fft_oct_m::fftlib_pnfft = 5
 
integer, parameter fft_oct_m::fft_max = 10
 
integer, parameter fft_oct_m::fft_null = -1
 
logical, save, public fft_oct_m::fft_initialized = .false.
 
integer, dimension(fft_max), save fft_oct_m::fft_refs
 
type(fft_t), dimension(fft_max), save fft_oct_m::fft_array
 
logical fft_oct_m::fft_optimize
 
integer, save fft_oct_m::fft_prepare_plan
 
integer, public fft_oct_m::fft_default_lib = -1
 
type(nfft_t), save fft_oct_m::nfft_options
 
type(pnfft_t), save fft_oct_m::pnfft_options
 
integer, parameter fft_oct_m::cufft_r2c = int(z'2a')
 
integer, parameter fft_oct_m::cufft_c2r = int(z'2c')
 
integer, parameter fft_oct_m::cufft_c2c = int(z'29')
 
integer, parameter fft_oct_m::cufft_d2z = int(z'6a')
 
integer, parameter fft_oct_m::cufft_z2d = int(z'6c')
 
integer, parameter fft_oct_m::cufft_z2z = int(z'69')