added Verlet scheme and NxN non-bonded functionality
[gromacs.git] / include / types / interaction_const.h
blob842d25b6224f02b60764580817cb2fbbca02e7b2
1 /* -*- mode: c; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; c-file-style: "stroustrup"; -*-
4 * This source code is part of
6 * G R O M A C S
8 * GROningen MAchine for Chemical Simulations
10 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
11 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
12 * Copyright (c) 2001-2012, The GROMACS development team,
13 * check out http://www.gromacs.org for more information.
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * If you want to redistribute modifications, please consider that
21 * scientific software is very special. Version control is crucial -
22 * bugs must be traceable. We will be happy to consider code for
23 * inclusion in the official distribution, but derived work must not
24 * be called official GROMACS. Details are found in the README & COPYING
25 * files - if they are missing, get the official version at www.gromacs.org.
27 * To help us fund GROMACS development, we humbly ask that you cite
28 * the papers on the package - you can find them in the top README file.
30 * For more info, check our website at http://www.gromacs.org
32 * And Hey:
33 * Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
36 #ifndef _INTERACTION_CONST_
37 #define _INTERACTION_CONST_
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
43 enum { tableformatNONE, tableformatF, tableformatFDV0 };
45 typedef struct {
46 /* VdW */
47 real rvdw;
48 real sh_invrc6; /* For shifting the LJ potential */
50 /* type of electrostatics (defined in enums.h) */
51 int eeltype;
53 /* Coulomb */
54 real rcoulomb;
56 /* Cut-off */
57 real rlist;
59 /* PME/Ewald */
60 real ewaldcoeff;
61 real sh_ewald; /* For shifting the Ewald potential */
63 /* Dielectric constant resp. multiplication factor for charges */
64 real epsilon_r;
65 real epsfac;
67 /* Constants for reaction-field or plain cut-off */
68 real epsilon_rf;
69 real k_rf;
70 real c_rf;
72 /* Force/energy interpolation tables, linear in force, quadratic in V */
73 real tabq_scale;
74 int tabq_size;
75 int tabq_format;
76 /* Coulomb force table, size of array is tabq_size (when used) */
77 real *tabq_coul_F;
78 /* Coulomb energy table, size of array is tabq_size (when used) */
79 real *tabq_coul_V;
80 /* Coulomb force+energy table, size of array is tabq_size*4,
81 entry quadruplets are: F[i], F[i+1]-F[i], V[i], 0,
82 this is used with single precision x86 SIMD for aligned loads */
83 real *tabq_coul_FDV0;
84 } interaction_const_t;
86 #ifdef __cplusplus
88 #endif
90 #endif /* _INTERACTION_CONST_ */