MCTDH-X  v2.22
 All Classes Files Functions Variables Pages
fft_laboratory Module Reference

This module collects all FFT routines necessary to compute momentum space representations of orbitals or to apply kinetic energy operators. More...

Public Member Functions

subroutine destroy_global_fft_plans
 This routine destroys all FFTW/MKL FFT plans. More...
 
subroutine initialize_global_fft_plans
 
subroutine destroy_fft (Dimensionality, Direction, Dimension)
 This routine frees specific descriptors/destroys FFT plans. More...
 
subroutine init_fft (Dimensionality, Direction, Dimension)
 This routine initializes all necessary plans. More...
 
subroutine get_dilated_fft (Dimensionality, Psi, Direction, Dimension, Dilation)
 Same as Get_FFT for dilated FFTs,i.e., increased resolution in the case of analysis. More...
 
subroutine get_fft_forward_fftw_1d_dilated (Psi, Dilation)
 
subroutine get_fft_forward_mkl_1d_dilated (Psi, Dilation)
 
subroutine get_fft_forward_fftw_2d_dilated (Psi, Dilation)
 
subroutine get_fft_forward_mkl_2d_dilated (Psi, Dilation)
 
subroutine initialize_mkl_fft_1d_dilated (Descriptor_Handle, Dilation)
 
subroutine initialize_mkl_fft_2d_dilated (Descriptor_Handle, Dilation)
 
subroutine initialize_fftw_1d_dilated (Plan_FFTW, Direction, Dilation)
 
subroutine initialize_fftw_2d_dilated (Plan_FFTW, Direction, Dilation)
 
subroutine get_fft (Dimensionality, Psi, Direction, Dimension)
 This routine computes the FFT or FFT^-1. Direction=0/1 decides if forward/backward transform is computed. Dimension=1/2/3, in the case of 1D-transforms, if X/Y/Z transform shall be computed. More...
 
subroutine initialize_fftw_1d (Plan_FFTW, Dimension, Direction)
 
subroutine initialize_fftw_2d (Plan_FFTW, Direction)
 
subroutine initialize_fftw_3d (Plan_FFTW, Direction)
 
subroutine initialize_mkl_fft_2d (Descriptor_Handle)
 
subroutine initialize_mkl_fft_3d (Descriptor_Handle)
 
subroutine initialize_mkl_fft_1d (Descriptor_Handle, Dimension)
 
subroutine get_fft_backward_mkl_1d (PSI, Dimension)
 
subroutine get_fft_forward_mkl_1d (PSI, Dimension)
 
subroutine get_fft_forward_mkl_2d (Psi)
 
subroutine get_fft_forward_mkl_3d (Psi)
 
subroutine get_fft_forward_fftw_1d (Psi, Dimension)
 
subroutine get_fft_forward_fftw_2d (Psi)
 
subroutine get_fft_forward_fftw_3d (Psi)
 
subroutine get_fft_backward_mkl_2d (Psi)
 
subroutine get_fft_backward_mkl_3d (Psi)
 
subroutine get_fft_backward_fftw_1d (Psi, Dimension)
 
subroutine get_fft_backward_fftw_2d (Psi)
 
subroutine get_fft_backward_fftw_3d (Psi)
 

Detailed Description

This module collects all FFT routines necessary to compute momentum space representations of orbitals or to apply kinetic energy operators.

Todo:
include MPI FFT routines or maybe GPU FFTs as well as the corresponding preprocessor flags.

Member Function/Subroutine Documentation

subroutine fft_laboratory::destroy_fft ( integer  Dimensionality,
integer  Direction,
integer  Dimension 
)

This routine frees specific descriptors/destroys FFT plans.

Referenced by destroy_global_fft_plans().

Here is the caller graph for this function:

subroutine fft_laboratory::destroy_global_fft_plans ( )

This routine destroys all FFTW/MKL FFT plans.

References destroy_fft().

Referenced by analysis_main_program(), and program_mctdhx_main().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::get_dilated_fft ( integer  Dimensionality,
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z*dilation*dilation)  Psi,
integer  Direction,
integer  Dimension,
integer  Dilation 
)

Same as Get_FFT for dilated FFTs,i.e., increased resolution in the case of analysis.

References get_fft_forward_fftw_1d_dilated(), get_fft_forward_fftw_2d_dilated(), get_fft_forward_mkl_1d_dilated(), and get_fft_forward_mkl_2d_dilated().

Referenced by auxiliary_fftroutines::get_sorted_fft(), and auxiliary_fftroutines::twod_zero_padding().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft ( integer  Dimensionality,
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi,
integer  Direction,
integer  Dimension 
)
subroutine fft_laboratory::get_fft_backward_fftw_1d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi,
integer  Dimension 
)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_backward_fftw_2d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_backward_fftw_3d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_backward_mkl_1d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  PSI,
integer  Dimension 
)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_backward_mkl_2d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_backward_mkl_3d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_fftw_1d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi,
integer  Dimension 
)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_fftw_1d_dilated ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z*dilation)  Psi,
integer  Dilation 
)

References initialize_fftw_1d_dilated().

Referenced by get_dilated_fft().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_fftw_2d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_fftw_2d_dilated ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z*dilation*dilation)  Psi,
integer  Dilation 
)

References initialize_fftw_2d_dilated().

Referenced by get_dilated_fft().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_fftw_3d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_mkl_1d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  PSI,
integer  Dimension 
)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_mkl_1d_dilated ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z*dilation)  Psi,
integer  Dilation 
)

References initialize_mkl_fft_1d_dilated().

Referenced by get_dilated_fft().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_mkl_2d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_mkl_2d_dilated ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z*dilation*dilation)  Psi,
integer  Dilation 
)

References initialize_mkl_fft_2d_dilated().

Referenced by get_dilated_fft().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::get_fft_forward_mkl_3d ( complex*16, dimension(ndvr_x*ndvr_y*ndvr_z)  Psi)

Referenced by get_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::init_fft ( integer  Dimensionality,
integer  Direction,
integer  Dimension 
)

This routine initializes all necessary plans.

References initialize_fftw_1d(), initialize_fftw_2d(), initialize_fftw_3d(), initialize_mkl_fft_1d(), initialize_mkl_fft_2d(), and initialize_mkl_fft_3d().

Referenced by initialize_global_fft_plans().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_fftw_1d ( integer*8  Plan_FFTW,
integer  Dimension,
integer  Direction 
)

Referenced by init_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_fftw_1d_dilated ( integer*8  Plan_FFTW,
integer  Direction,
integer  Dilation 
)

Referenced by get_fft_forward_fftw_1d_dilated().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_fftw_2d ( integer*8  Plan_FFTW,
integer  Direction 
)

Referenced by init_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_fftw_2d_dilated ( integer*8  Plan_FFTW,
integer  Direction,
integer  Dilation 
)

Referenced by get_fft_forward_fftw_2d_dilated().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_fftw_3d ( integer*8  Plan_FFTW,
integer  Direction 
)

Referenced by init_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_global_fft_plans ( )

References init_fft().

Referenced by analysis_main_program(), and program_mctdhx_main().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_mkl_fft_1d ( integer, pointer  Descriptor_Handle,
integer  Dimension 
)

Referenced by init_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_mkl_fft_1d_dilated ( integer, pointer  Descriptor_Handle,
integer  Dilation 
)

Referenced by get_fft_forward_mkl_1d_dilated().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_mkl_fft_2d ( integer, pointer  Descriptor_Handle)

Referenced by init_fft().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_mkl_fft_2d_dilated ( integer, pointer  Descriptor_Handle,
integer  Dilation 
)

Referenced by get_fft_forward_mkl_2d_dilated().

Here is the caller graph for this function:

subroutine fft_laboratory::initialize_mkl_fft_3d ( integer, pointer  Descriptor_Handle)

Referenced by init_fft().

Here is the caller graph for this function:


The documentation for this module was generated from the following file: