Bridge++
Version 1.6.1
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
fft_3d_parallel1d.h
Go to the documentation of this file.
1
13
#ifndef FFT_3D_PARALLEL1D_INCLUDED
14
#define FFT_3D_PARALLEL1D_INCLUDED
15
16
// requires FFTW library
17
#ifdef USE_FFTWLIB
18
19
// requires MPI
20
#ifdef USE_MPI
21
22
#include <fftw3-mpi.h>
23
24
#include "
fft.h
"
25
#include "
Communicator/MPI/communicator_mpi.h
"
26
27
class
FFT_3d_parallel1d :
public
FFT
28
{
29
public
:
30
static
const
std::string class_name;
31
32
public
:
33
FFT_3d_parallel1d();
34
virtual
~FFT_3d_parallel1d();
35
36
void
fft(
Field
& dst,
const
Field
& src,
enum
Direction
dir);
37
void
fft(
Field
& dst,
const
Field
& src);
38
void
fft(
Field
& field);
39
40
void
set_parameters(
const
Parameters
& params);
41
void
set_parameters(
const
std::string& direction);
42
43
private
:
44
45
void
initialize();
46
void
finalize();
47
48
bool
check_ok();
49
50
void
initialize_plan(
const
Field
& src);
51
void
clear_plan();
52
53
// size info
54
int
m_ndim;
55
ptrdiff_t m_nsize[4];
// assume atmost 4dimensional
56
ptrdiff_t m_vol;
57
ptrdiff_t m_nv;
// number of complex elements
58
59
fftw_complex *m_buf_in;
60
fftw_complex *m_buf_out;
61
fftw_plan m_plan_fw;
62
fftw_plan m_plan_bw;
63
64
MPI_Comm m_comm;
65
66
Direction
m_direction;
67
68
69
#ifdef USE_FACTORY
70
private
:
71
static
FFT *create_object()
72
{
73
return
new
FFT_3d_parallel1d();
74
}
75
76
public
:
77
static
bool
register_factory()
78
{
79
return
FFT::Factory::Register(
"FFT_3d_parallel_1dim"
, create_object);
80
}
81
#endif
82
};
83
84
#endif
/* USE_MPI */
85
#endif
/* USE_FFTWLIB */
86
87
#endif
/* FFT_3D_PARALLEL1D_INCLUDED */
communicator_mpi.h
Field
Container of Field-type object.
Definition:
field.h:46
Parameters
Class for parameters.
Definition:
parameters.h:46
Direction
Direction
Definition:
bridge_defs.h:24
fft.h
src
lib
Tools
fft_3d_parallel1d.h
Generated on Tue Jun 15 2021 10:54:35 for Bridge++ by
1.8.6