42 namespace LibUtilities
56 FFTW_R2HC, FFTW_ESTIMATE);
58 FFTW_HC2R, FFTW_ESTIMATE);
66 m_FFTW_w_inv[0] =
m_N;
67 m_FFTW_w_inv[1] = 0.0;
69 for(
int i=2;i<
m_N;i++)
71 m_FFTW_w[i] = m_FFTW_w[0]*2;
72 m_FFTW_w_inv[i] = m_FFTW_w_inv[0]/2;
115 m_wsp[1] = coef[halfN];
119 for(
int i = 0; i < (halfN - 1); i++)
121 m_wsp[(
m_N-1)-2*i] = coef[halfN+1+i];
136 m_wsp[halfN] = coef[1];
140 for(
int i = 0; i < (halfN-1); i++)
142 m_wsp[halfN+1+i] = coef[(
m_N-1)-2*i];
Array< OneD, NekDouble > coef
Array< OneD, NekDouble > m_FFTW_w_inv
Array< OneD, NekDouble > phys
NektarFFTFactory & GetNektarFFTFactory()
Array< OneD, NekDouble > m_FFTW_w
virtual void v_FFTFwdTrans(Array< OneD, NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
static NektarFFTSharedPtr create(int N)
Creates an instance of this class.
virtual void v_FFTBwdTrans(Array< OneD, NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*y.
Array< OneD, NekDouble > m_wsp
void Reshuffle_FFTW2Nek(Array< OneD, NekDouble > &coef)
void Reshuffle_Nek2FFTW(Array< OneD, NekDouble > &coef)
static std::string className
Name of class.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.