FFTXlib

From ESL
Jump to navigation Jump to search
WARNING: This library is still under developmentment and not yet intended for public use!


{{#if: Stefano de Gironcoli,

SISSA, Italy |

Source authors:
Stefano de Gironcoli, SISSA, Italy

}}{{#if: GPL |

License: GPL

}}{{#if: Coming soon (can be found as a library within the Quantum ESPRESSO source code) |

Download: Coming soon (can be found as a library within the Quantum ESPRESSO source code)

}}{{#if: |

Documentation: {{{documentation}}}

}}{{#if: Fast Fourier Transform |

Links to other ESL entries

| {{#if: |

Links to other ESL entries

| {{#if: |

Links to other ESL entries

| {{#if: |

Links to other ESL entries

|{{#if: |

Links to other ESL entries

| {{#if: |

Links to other ESL entries

|}}}}}}}}}}}}{{#if: Fast Fourier Transform |

Functionalities:

}}{{#if: |

Algorithms:

    {{{algorithms}}}

}}{{#if: |

Generic interfaces:

    {{{generic interfaces}}}

}}{{#if: |

APIs:

    {{{apis}}}

}}{{#if: |

Data standards:

    {{{data standards}}}

}}{{#if: |

Software:

    {{{software}}}

}}

Collection of FFT drivers for 3D grids implementing parallelization via a 1D-gather/scatter-2D procedure. Calling sequences to the underlying 1D and 2D FFTs and to the initialization of the grid description also provided.

Tools to chose allowed FFT dimensions and "good' FFT dimensions depending on the underlying FFT library.

Tools to compute 3-D grid dimensions, data distribution etc on the basis of cell geometry, energy cutoff, number of processor

Grid description collected in a single derived data type.

High-level 3D FFT drivers with compact calls.

Lower level 1D, 2D FFT drivers also available


fft_type = {'Full': all Fourier components are included in the transformation |
            'Rho' : all Fourier components in a sphere that fits the 3D grid are included |
            'Wave': Fourier components in a sphere corresponding to the wfc cutoff are included}
multiple_fft = {.true. : multiple FFT are allowwed |
                .false.: single FFT is considered }
gamma = {.true. : for real functions , only half of the G vectors are actually used |
         .false.: for complex functions }