Nektar++
|
#include <NektarFFT.h>
Public Member Functions | |
NektarFFT (int N) | |
Initialises NektarFFT class members. More... | |
~NektarFFT () | |
void | FFTFwdTrans (Array< OneD, NekDouble > &phy, Array< OneD, NekDouble > &coef) |
void | FFTBwdTrans (Array< OneD, NekDouble > &coef, Array< OneD, NekDouble > &phys) |
Public Attributes | |
int | m_N |
Protected Member Functions | |
virtual void | v_FFTFwdTrans (Array< OneD, NekDouble > &phys, Array< OneD, NekDouble > &coef) |
virtual void | v_FFTBwdTrans (Array< OneD, NekDouble > &coef, Array< OneD, NekDouble > &phys) |
This class is a base class for all FFT implementation. It provides the underlying generic functionality and interface for perform a Fourier transform.
To perform the FFT with a differebt algorithm, create a derived class from this class and reimplement the virtual functions to provide custom implementation of the algorithm.
Definition at line 67 of file NektarFFT.h.
Nektar::LibUtilities::NektarFFT::NektarFFT | ( | int | N | ) |
Initialises NektarFFT class members.
This constructor is protected as the objects of this class are never instantiated directly.
Definition at line 59 of file NektarFFT.cpp.
References m_N.
Nektar::LibUtilities::NektarFFT::~NektarFFT | ( | ) |
Definition at line 64 of file NektarFFT.cpp.
void Nektar::LibUtilities::NektarFFT::FFTBwdTrans | ( | Array< OneD, NekDouble > & | coef, |
Array< OneD, NekDouble > & | phys | ||
) |
Backward transformation to pass from coefficient to physical space using the FFT. This method will take the place of the Matrix-Vector multiplication input: N = number of Fourier points inarrray = vector in coefficient space (length N) output: outarray = vector in physical space (length N)
Definition at line 90 of file NektarFFT.cpp.
References v_FFTBwdTrans().
void Nektar::LibUtilities::NektarFFT::FFTFwdTrans | ( | Array< OneD, NekDouble > & | phys, |
Array< OneD, NekDouble > & | coef | ||
) |
Forward transformation to pass from physical to coefficient space using the FFT. This method will take the place of the Matrix-Vector multiplication input: N = number of Fourier points inarray = vector in physical space (length N) output: outarray = vector in coefficient space (length N)
This allows initialisation of the class which cannot be completed during object construction (such as setting of initial conditions).
Public interface routine to virtual function implementation.
Definition at line 85 of file NektarFFT.cpp.
References v_FFTFwdTrans().
|
protectedvirtual |
Reimplemented in Nektar::LibUtilities::NekFFTW.
Definition at line 100 of file NektarFFT.cpp.
Referenced by FFTBwdTrans().
|
protectedvirtual |
Reimplemented in Nektar::LibUtilities::NekFFTW.
Definition at line 95 of file NektarFFT.cpp.
Referenced by FFTFwdTrans().
int Nektar::LibUtilities::NektarFFT::m_N |
m_N is the dimension of the Fourier transform. It means that the coefficient vector and the vector of the variable in physical space have size m_N. It is becasue everything is managed just with real data.
Definition at line 82 of file NektarFFT.h.
Referenced by Nektar::LibUtilities::NekFFTW::NekFFTW(), NektarFFT(), Nektar::LibUtilities::NekFFTW::Reshuffle_FFTW2Nek(), Nektar::LibUtilities::NekFFTW::Reshuffle_Nek2FFTW(), Nektar::LibUtilities::NekFFTW::v_FFTBwdTrans(), and Nektar::LibUtilities::NekFFTW::v_FFTFwdTrans().