41 namespace LibUtilities
55 FFTW_R2HC, FFTW_ESTIMATE);
57 FFTW_HC2R, FFTW_ESTIMATE);
65 m_FFTW_w_inv[0] =
m_N;
66 m_FFTW_w_inv[1] = 0.0;
68 for(
int i=2;i<
m_N;i++)
70 m_FFTW_w[i] = m_FFTW_w[0]*2;
71 m_FFTW_w_inv[i] = m_FFTW_w_inv[0]/2;
114 m_wsp[1] = coef[halfN];
118 for(
int i = 0; i < (halfN - 1); i++)
120 m_wsp[(
m_N-1)-2*i] = coef[halfN+1+i];
135 m_wsp[halfN] = coef[1];
139 for(
int i = 0; i < (halfN-1); i++)
141 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)
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
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.