Fixed a compile error in double precision gmx_erf. This function would only be
[gromacs.git] / include / pme.h
blob029c6086ec4075dfea0d0ffbe05731f51e12a63e
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 3.1
11 * Copyright (c) 1991-2001, University of Groningen, The Netherlands
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * If you want to redistribute modifications, please consider that
18 * scientific software is very special. Version control is crucial -
19 * bugs must be traceable. We will be happy to consider code for
20 * inclusion in the official distribution, but derived work must not
21 * be called official GROMACS. Details are found in the README & COPYING
22 * files - if they are missing, get the official version at www.gromacs.org.
24 * To help us fund GROMACS development, we humbly ask that you cite
25 * the papers on the package - you can find them in the top README file.
27 * For more info, check our website at http://www.gromacs.org
29 * And Hey:
30 * Getting the Right Output Means no Artefacts in Calculating Stuff
33 #ifndef _pme_h
34 #define _pme_h
36 static char *SRCID_pme_h = "$Id$";
37 #ifdef HAVE_CONFIG_H
38 #include <config.h>
39 #endif
41 #include <stdio.h>
42 #include "typedefs.h"
43 #include "gmxcomplex.h"
44 #include "fftgrid.h"
46 typedef real *splinevec[DIM];
48 extern real do_pme(FILE *log, bool bVerbose,
49 t_inputrec *ir,
50 rvec x[], rvec f[],
51 real charge[], matrix box,
52 t_commrec *cr,
53 t_nsborder *nsb, t_nrnb *nrnb,
54 matrix lrvir,real ewaldcoeff,
55 bool bGatherOnly);
57 /* Do a PME calculation for the long range electrostatics.
58 * If bGatherOnly is set, the energy from the last computation will be used, and
59 * the forces will be interpolated at the new positions. No new solving is done then.
62 extern void sum_qgrid(t_commrec *cr,t_nsborder *nsb,t_fftgrid *grid,bool bForward);
64 extern void init_pme(FILE *log,t_commrec *cr,
65 int nkx,int nky,int nkz,int pme_order,int homenr,
66 bool bOptFFT, int ewald_geometry);
68 /* Routine for spreading something on a grid. Can be misused for non-PME
69 * related things. init_pme must be called before this guy.
71 extern t_fftgrid *spread_on_grid(FILE *logfile, int homenr,
72 int pme_order, rvec x[],
73 real charge[], matrix box,
74 bool bGatherOnly);
76 #endif