Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fft_xyz_3dim.h
Go to the documentation of this file.
1 
14 #ifndef FFT_XYZ_3DIM_INCLUDED
15 #define FFT_XYZ_3DIM_INCLUDED
16 
17 #ifdef USE_FFTWLIB
18 
19 #include "fft.h"
20 
22 
30 class FFT_xyz_3dim : public FFT
31 {
32  public:
33  static const std::string class_name;
34 
35  protected:
37 
38  private:
39  bool m_is_forward;
40 
41  Index_lex m_index;
42 
43  fftw_complex *m_in;
44  fftw_complex *m_out;
45 
46  fftw_plan m_plan;
47 
48 #ifdef USE_MPI
49  ptrdiff_t m_Nz_p, m_z_start_p;
50 #endif
51 
52 
53  public:
54  FFT_xyz_3dim()
55  {
56  init();
57  }
58 
59  ~FFT_xyz_3dim()
60  {
61  tidy_up();
62  }
63 
64  void fft(Field& field); // field is overwritten
65  void fft(Field& field_out, const Field& field_in);
66 
67  void set_parameters(const Parameters&);
68  void set_parameters(const std::string str_fft_direction);
69 
70  void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
71  {
72  m_vl = vl;
73  }
74 
75  private:
76  void init();
77  void tidy_up();
78 };
79 //- #endif of #ifdef USE_FFTWLIB
80 #endif
81 #endif
Container of Field-type object.
Definition: field.h:39
Class for parameters.
Definition: parameters.h:46
Lexical site index.
Definition: index_lex.h:34
Bridge::VerboseLevel vl
Definition: checker.cpp:18
VerboseLevel
Definition: bridgeIO.h:42