changed reading hint
[gromacs/adressmacs.git] / include / fftwnd_mpi.h
blob510e24ed7c409c9ae6f60c3553f4ea3b6b9eaca8
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 * Good ROcking Metal Altar for Chronical Sinners
29 #ifndef FFTWND_MPI_H
30 #define FFTWND_MPI_H
32 static char *SRCID_fftwnd_mpi_h = "$Id$";
34 #include "fftw.h"
35 #include "transpose_mpi.h"
37 #ifdef __cplusplus
38 extern "C" {
39 #endif /* __cplusplus */
41 typedef struct {
42 fftwnd_plan p_fft;
43 transpose_mpi_plan p_transpose, p_transpose_inv;
44 } fftwnd_mpi_aux_data;
46 typedef fftwnd_mpi_aux_data *fftwnd_mpi_plan;
48 typedef enum {
49 FFTW_NORMAL_ORDER,
50 FFTW_TRANSPOSED_ORDER
51 } fftwnd_mpi_output_order;
53 extern fftwnd_mpi_plan fftwnd_mpi_create_plan(MPI_Comm comm,
54 int rank, const int *n,
55 fftw_direction dir,
56 int flags);
57 extern fftwnd_mpi_plan fftw2d_mpi_create_plan(MPI_Comm comm,
58 int nx, int ny,
59 fftw_direction dir, int flags);
60 extern fftwnd_mpi_plan fftw3d_mpi_create_plan(MPI_Comm comm,
61 int nx, int ny, int nz,
62 fftw_direction dir, int flags);
64 extern void fftwnd_mpi_destroy_plan(fftwnd_mpi_plan p);
66 extern void fftwnd_mpi_local_sizes(fftwnd_mpi_plan p,
67 int *local_nx,
68 int *local_x_start,
69 int *local_ny_after_transpose,
70 int *local_y_start_after_transpose,
71 int *total_local_size);
73 extern void fftwnd_mpi(fftwnd_mpi_plan p,
74 int n_fields, fftw_complex * local_data,
75 fftwnd_mpi_output_order output_order);
78 #ifdef __cplusplus
79 } /* extern "C" */
80 #endif /* __cplusplus */
82 #endif /* FFTWND_MPI_H */