4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
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
30 * Getting the Right Output Means no Artefacts in Calculating Stuff
36 static char *SRCID_pme_h
= "$Id$";
43 #include "gmxcomplex.h"
46 typedef real
*splinevec
[DIM
];
48 extern real
do_pme(FILE *log
, bool bVerbose
,
51 real charge
[], matrix box
,
53 t_nsborder
*nsb
, t_nrnb
*nrnb
,
54 matrix lrvir
,real ewaldcoeff
,
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
,