ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
FakedOptFFT Class Reference

#include <FakedOptFFT.h>

Inheritance diagram for FakedOptFFT:
optFFT_API

Public Member Functions

void optimizedFFT (FFT_precision **&Real, FFT_precision **&Imag, const int size_x, const int size_y)
 
void optimizedIFFT (FFT_precision **&Real, FFT_precision **&Imag, const int size_x, const int size_y)
 
- Public Member Functions inherited from optFFT_API
virtual ~optFFT_API ()
 virtual destructor for inheritance
 

Detailed Description

Implementation of the scheme of the optimized FFT that reconstruct the whole matrix and use FFTW to perform the FFT/IFFT Use a map<pos,FFTW_API*> to store the various FFTW_API needed to perform the optimized FFT

Member Function Documentation

◆ optimizedFFT()

void FakedOptFFT::optimizedFFT ( FFT_precision **&  Real,
FFT_precision **&  Imag,
const int  size_x,
const int  size_y 
)
virtual

Perform an optimized FFT using the symmetry of the expansions

Assume that the matrices are the real and imag part of the expansion for Expansion(l,m), l is the first coordinate of the matrices The symmetry Expansion(l,-m) = (-1)^m conj(Expansion(l,m)) is valid

The resulting FFT is done on size_x,2*size_y matrices that would represent on the line i Ex(i,0),.., Ex(i,size_x), | 0, Ex(i,-size_x),.., Ex(i,-1) (the part after | is reconstruct for the FFT and doesn't appear outside of it or in the result, Ex(i,j)=0 if j<i or j>i)

The output is the first half of the reconstructed matrix since it verifies M(i,j) = conj(M(i,j+size_y)) The output is safe to use for entrywise default operation with other matrices converted with this function

Parameters
FFT_precision**& Real, real part
FFT_precision**& Imag, imag part
constint size_x, size of the first coord of the matrices
constint size_y, size of the second coord of the matrices

Implements optFFT_API.

◆ optimizedIFFT()

void FakedOptFFT::optimizedIFFT ( FFT_precision **&  Real,
FFT_precision **&  Imag,
const int  size_x,
const int  size_y 
)
virtual

Inverse FFT Result is assumed to be rescaled

Take a matrix couples converted with optimizedFFT as input and assume the symmetry M(i,j) = conj(M(i,j+size_y)) on the reconstructed full matrix

Output the first half of the reconstructed matrix IFFT

Implements optFFT_API.


The documentation for this class was generated from the following files: