changed reading hint
[gromacs/adressmacs.git] / include / rfftw_mpi.h
blobe6fea556f0bc3009841127d62f216db5ab5d9d2d
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 2.0
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
16 * Please refer to:
17 * GROMACS: A message-passing parallel molecular dynamics implementation
18 * H.J.C. Berendsen, D. van der Spoel and R. van Drunen
19 * Comp. Phys. Comm. 91, 43-56 (1995)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
23 * or e-mail to:
24 * gromacs@chem.rug.nl
26 * And Hey:
27 * Green Red Orange Magenta Azure Cyan Skyblue
29 #ifndef RFFTW_MPI_H
30 #define RFFTW_MPI_H
32 static char *SRCID_rfftw_mpi_h = "$Id$";
34 #include <fftw_mpi.h>
35 #include <rfftw.h>
37 #ifdef __cplusplus
38 extern "C" {
39 #endif /* __cplusplus */
41 /***********************************************************************/
43 typedef struct {
44 fftw_plan p_fft_x; /* plan for first dimension */
45 rfftwnd_plan p_fft; /* plan for subsequent dimensions */
46 transpose_mpi_plan p_transpose, p_transpose_inv;
47 fftw_complex *work; /* extra workspace, if needed */
48 } rfftwnd_mpi_plan_data;
50 typedef rfftwnd_mpi_plan_data *rfftwnd_mpi_plan;
52 extern rfftwnd_mpi_plan rfftwnd_mpi_create_plan(MPI_Comm comm,
53 int rank, const int *n,
54 fftw_direction dir,
55 int flags);
56 extern rfftwnd_mpi_plan rfftw2d_mpi_create_plan(MPI_Comm comm,
57 int nx, int ny,
58 fftw_direction dir, int flags);
59 extern rfftwnd_mpi_plan rfftw3d_mpi_create_plan(MPI_Comm comm,
60 int nx, int ny, int nz,
61 fftw_direction dir, int flags);
63 extern void rfftwnd_mpi_destroy_plan(rfftwnd_mpi_plan p);
65 extern void rfftwnd_mpi_local_sizes(rfftwnd_mpi_plan p,
66 int *local_nx,
67 int *local_x_start,
68 int *local_ny_after_transpose,
69 int *local_y_start_after_transpose,
70 int *total_local_size);
72 extern void rfftwnd_mpi(rfftwnd_mpi_plan p,
73 int n_fields,
74 fftw_real *local_data, fftw_real *work,
75 fftwnd_mpi_output_order output_order);
77 /***********************************************************************/
79 #ifdef __cplusplus
80 } /* extern "C" */
81 #endif /* __cplusplus */
83 #endif /* RFFTW_MPI_H */