18 template class FFT<1>;
19 template class FFT<2>;
20 template class FFT<3>;
25 void FFT<1>::makePlans(RField<1>& rField, RFieldDft<1>& kField,
26 CField<1>& cFieldIn, CField<1>& cFieldOut)
29 unsigned int flags = FFTW_ESTIMATE;
30 rcfPlan_ = fftw_plan_dft_r2c_1d(n0, &rField[0], &kField[0], flags);
31 criPlan_ = fftw_plan_dft_c2r_1d(n0, &kField[0], &rField[0], flags);
32 int sign = FFTW_FORWARD;
33 ccfPlan_ = fftw_plan_dft_1d(n0, &cFieldIn[0], &cFieldOut[0],
36 cciPlan_ = fftw_plan_dft_1d(n0, &cFieldOut[0], &cFieldIn[0],
41 void FFT<2>::makePlans(RField<2>& rField, RFieldDft<2>& kField,
42 CField<2>& cFieldIn, CField<2>& cFieldOut)
44 unsigned int flags = FFTW_ESTIMATE;
45 int n0 = meshDimensions_[0];
46 int n1 = meshDimensions_[1];
47 rcfPlan_ = fftw_plan_dft_r2c_2d(n0, n1, &rField[0], &kField[0], flags);
48 criPlan_ = fftw_plan_dft_c2r_2d(n0, n1, &kField[0], &rField[0], flags);
49 int sign = FFTW_FORWARD;
50 ccfPlan_ = fftw_plan_dft_2d(n0, n1, &cFieldIn[0], &cFieldOut[0],
53 cciPlan_ = fftw_plan_dft_2d(n0, n1, &cFieldOut[0], &cFieldIn[0],
58 void FFT<3>::makePlans(RField<3>& rField, RFieldDft<3>& kField,
59 CField<3>& cFieldIn, CField<3>& cFieldOut)
61 unsigned int flags = FFTW_ESTIMATE;
62 int n0 = meshDimensions_[0];
63 int n1 = meshDimensions_[1];
64 int n2 = meshDimensions_[2];
65 rcfPlan_ = fftw_plan_dft_r2c_3d(n0, n1, n2,
66 &rField[0], &kField[0], flags);
67 criPlan_ = fftw_plan_dft_c2r_3d(n0, n1, n2,
68 &kField[0], &rField[0], flags);
69 int sign = FFTW_FORWARD;
70 ccfPlan_ = fftw_plan_dft_3d(n0, n1, n2,
71 &cFieldIn[0], &cFieldOut[0], sign, flags);
73 cciPlan_ = fftw_plan_dft_3d(n0, n1, n2,
74 &cFieldIn[0], &cFieldOut[0], sign, flags);
PSCF package top-level namespace.
Utility classes for scientific computation.