Bridge++  Ver. 1.3.x
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 #ifdef USE_MPI
20 #include "fftw3-mpi.h"
21 #ifdef USE_BGNET
22 #include "communicator_bgnet.h"
23 #else
24 #include "communicator_mpi.h"
25 #endif
26 #else
27 #include "fftw3.h"
28 #endif
29 
30 #ifdef USE_OPENMP
31 #include "threadManager_OpenMP.h"
32 #endif
33 
34 #include "field.h"
35 #include "index_lex.h"
36 
37 #include "bridgeIO.h"
38 using Bridge::vout;
39 
41 
49 class FFT_xyz_1dim
50 {
51  public:
52  static const std::string class_name;
53 
54  protected:
56 
57  public:
58  FFT_xyz_1dim()
59  : m_vl(CommonParameters::Vlevel()) {}
60 
61  ~FFT_xyz_1dim() {}
62 
63  private:
64  // non-copyable
65  FFT_xyz_1dim(const FFT_xyz_1dim&);
66  FFT_xyz_1dim& operator=(const FFT_xyz_1dim&);
67 
68  public:
69  void FFT(Field& field, const bool is_forward); // field is overwritten
70  void FFT(Field& field_out, const Field& field_in, const bool is_forward);
71 
72  private:
73  Index_lex m_index;
74 
75  fftw_complex *m_in;
76  fftw_complex *m_out;
77 
78  fftw_plan m_plan;
79 
80 #ifdef USE_MPI
81  ptrdiff_t m_Nsize_in_p, m_start_in_p;
82  ptrdiff_t m_Nsize_out_p, m_start_out_p;
83 #endif
84 };
85 //- #endif of #ifdef USE_FFTWLIB
86 #endif
87 #endif
BridgeIO vout
Definition: bridgeIO.cpp:278
Container of Field-type object.
Definition: field.h:39
Common parameter class: provides parameters as singleton.
Lexical site index.
Definition: index_lex.h:34
VerboseLevel
Definition: bridgeIO.h:39