Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fft_xyz_1dim.h
Go to the documentation of this file.
1 
14 #ifndef FFT_XYZ_1DIM_INCLUDED
15 #define FFT_XYZ_1DIM_INCLUDED
16 
17 #ifdef USE_FFTWLIB
18 
19 #include "fft.h"
20 
22 
30 class FFT_xyz_1dim : public FFT
31 {
32  public:
33  static const std::string class_name;
34 
35  private:
36  bool m_is_forward;
37 
38  Index_lex m_index;
39 
40  fftw_complex *m_in;
41  fftw_complex *m_out;
42 
43  fftw_plan m_plan;
44 
45 #ifdef USE_MPI
46  ptrdiff_t m_Nsize_in_p, m_start_in_p;
47  ptrdiff_t m_Nsize_out_p, m_start_out_p;
48 #endif
49 
50 
51  public:
52  FFT_xyz_1dim() {}
53 
54  ~FFT_xyz_1dim() {}
55 
56  void fft(Field& field); // field is overwritten
57  void fft(Field& field_out, const Field& field_in);
58  void fft(Field& field_out, const Field& field_in, const Direction dir);
59 
60  void set_parameters(const Parameters&);
61  void set_parameters(const std::string& str_fft_direction);
62 
63 #ifdef USE_FACTORY
64  private:
65  static FFT *create_object()
66  {
67  return new FFT_xyz_1dim();
68  }
69 
70  public:
71  static bool register_factory()
72  {
73  return FFT::Factory::Register("FFT_xyz_1dim", create_object);
74  }
75 #endif
76 };
77 //- #endif of #ifdef USE_FFTWLIB
78 #endif
79 #endif
Container of Field-type object.
Definition: field.h:45
Class for parameters.
Definition: parameters.h:46
Lexical site index.
Definition: index_lex.h:34
Direction
Definition: bridge_defs.h:24