User Maual of FFTK

Typical Compilation:

cd fftk/trunk
CXX=mpicxx cmake . -DCMAKE_INSTALL_PREFIX=$HOME/local
make install

CMake supports the following options

    -DREAL=FLOAT                                          – It will treats Real as FLOAT
                                                                                              Default: DOUBLE
    -DCMAKE_INSTALL_PREFIX        – Installation Folder
    -DFIND_LIBRARIES=OFF                 – It will not try fo find Blitz++ and FFTW library
                                                                                             Default: On
    -DENABLE_THREAD=TRUE             – Enable OpenMP threads for computing local FFT
                                                                                              Default: FALSE
    -DFFTW_PLAN=PATIENT                  – It can be one of ESTIMATE, MEASURE, PATIENT, EXHAUSTIVE
                                                                                               Default: PATIENT

Using FFTK

mpirun -np 4 ./test_fftk basis sincos_option Nx Ny Nz iter [rows]


mpirun -np 4 ./test_fftk SSS SCC 32 32 32 10 2

 Option Description

    basis        – One of FFF, SFF, SSF, SSS.
                              Here F reprasents Fourier Transform, and
                              S represents Sinusoidal Transform
    basis_option   – It says whether Sicusoidal is Sin or Cos
                                            For basis = FFF, it can only be FFF.
                                            For basis = SFF, it can be SFF or CFF.
                                            For basis = SSF, it can be SSF, SCF, CSF, CCF.
                                            For basis = SSS, it can be SSS, SSC, SCS, SCC, … .
    Nx, Ny, Nz       – The grid size. For 2D use Ny = 1
    iter                  – Number of pair of transforms to perform
    rows              – Number of Rows in a pencil division.
                                   rows = 1 if numprocs < Nx
                                   rows = numprocs / Nx is numprocs>Nx
For pencil division this assertion must hold:

    (Nx%cols == 0) and (Ny%cols == 0) and (Ny%rows == 0) and (Nz%rows == 0)

where cols = numprocs/rows.

Download : Download FFTK library from here