3 * This source code is part of
7 * GROningen MAchine for Chemical Simulations
9 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
10 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
11 * Copyright (c) 2001-2008, The GROMACS development team,
12 * check out http://www.gromacs.org for more information.
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * If you want to redistribute modifications, please consider that
20 * scientific software is very special. Version control is crucial -
21 * bugs must be traceable. We will be happy to consider code for
22 * inclusion in the official distribution, but derived work must not
23 * be called official GROMACS. Details are found in the README & COPYING
24 * files - if they are missing, get the official version at www.gromacs.org.
26 * To help us fund GROMACS development, we humbly ask that you cite
27 * the papers on the package - you can find them in the top README file.
29 * For more info, check our website at http://www.gromacs.org
32 * Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
47 typedef struct gbtmpnbls
*gbtmpnbls_t
;
49 /* Struct to hold all the information for GB */
52 int nr
; /* number of atoms, length of arrays below */
53 int n12
; /* number of 1-2 (bond) interactions */
54 int n13
; /* number of 1-3 (angle) terms */
55 int n14
; /* number of 1-4 (torsion) terms */
56 int nlocal
; /* Length of local arrays (with DD) */
58 /* Arrays below that end with _globalindex are used for setting up initial values of
59 * all gb parameters and values. They all have length natoms, which for DD is the
61 * Values are then taken from these arrays to local copies, that have names without
62 * _globalindex, in the routine make_local_gb(), which is called once for single
63 * node runs, and for DD at every call to dd_partition_system
66 real
*gpol
; /* Atomic polarisation energies */
67 real
*gpol_globalindex
; /* */
68 real
*gpol_still_work
; /* Work array for Still model */
69 real
*gpol_hct_work
; /* Work array for HCT/OBC models */
70 real
*bRad
; /* Atomic Born radii */
71 real
*vsolv
; /* Atomic solvation volumes */
72 real
*vsolv_globalindex
; /* */
73 real
*gb_radius
; /* Radius info, copied from atomtypes */
74 real
*gb_radius_globalindex
;
76 int *use
; /* Array that till if this atom does GB */
77 int *use_globalindex
; /* Global array for parallelization */
79 real es
; /* Solvation energy and derivatives */
80 real
*asurf
; /* Atomic surface area */
81 rvec
*dasurf
; /* Surface area derivatives */
82 real as
; /* Total surface area */
84 real
*drobc
; /* Parameters for OBC chain rule calculation */
85 real
*param
; /* Precomputed factor rai*atype->S_hct for HCT/OBC */
86 real
*param_globalindex
; /* */
88 real
*log_table
; /* Table for logarithm lookup */
90 real obc_alpha
; /* OBC parameters */
91 real obc_beta
; /* OBC parameters */
92 real obc_gamma
; /* OBC parameters */
93 real gb_doffset
; /* Dielectric offset for Still/HCT/OBC */
94 real gb_epsilon_solvent
; /* */
96 real
*work
; /* Used for parallel summation and in the chain rule, length natoms */
97 real
*buf
; /* Used for parallel summation and in the chain rule, length natoms */
98 real
*dd_work
; /* Used for domain decomposition parallel runs, length natoms */
99 int *count
; /* Used for setting up the special gb nblist, length natoms */
100 gbtmpnbls_t nblist_work
; /* Used for setting up the special gb nblist, dim natoms*nblist_work_nalloc */
101 int nblist_work_nalloc
; /* Length of second dimension of nblist_work */