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
50 typedef struct gbtmpnbls
*gbtmpnbls_t
;
52 /* Struct to hold all the information for GB */
55 int nr
; /* number of atoms, length of arrays below */
56 int n12
; /* number of 1-2 (bond) interactions */
57 int n13
; /* number of 1-3 (angle) terms */
58 int n14
; /* number of 1-4 (torsion) terms */
59 int nlocal
; /* Length of local arrays (with DD) */
61 /* Arrays below that end with _globalindex are used for setting up initial values of
62 * all gb parameters and values. They all have length natoms, which for DD is the
64 * Values are then taken from these arrays to local copies, that have names without
65 * _globalindex, in the routine make_local_gb(), which is called once for single
66 * node runs, and for DD at every call to dd_partition_system
69 real
*gpol
; /* Atomic polarisation energies */
70 real
*gpol_globalindex
; /* */
71 real
*gpol_still_work
; /* Work array for Still model */
72 real
*gpol_hct_work
; /* Work array for HCT/OBC models */
73 real
*bRad
; /* Atomic Born radii */
74 real
*vsolv
; /* Atomic solvation volumes */
75 real
*vsolv_globalindex
; /* */
76 real
*gb_radius
; /* Radius info, copied from atomtypes */
77 real
*gb_radius_globalindex
;
79 int *use
; /* Array that till if this atom does GB */
80 int *use_globalindex
; /* Global array for parallelization */
82 real es
; /* Solvation energy and derivatives */
83 real
*asurf
; /* Atomic surface area */
84 rvec
*dasurf
; /* Surface area derivatives */
85 real as
; /* Total surface area */
87 real
*drobc
; /* Parameters for OBC chain rule calculation */
88 real
*param
; /* Precomputed factor rai*atype->S_hct for HCT/OBC */
89 real
*param_globalindex
; /* */
91 real
*log_table
; /* Table for logarithm lookup */
93 real obc_alpha
; /* OBC parameters */
94 real obc_beta
; /* OBC parameters */
95 real obc_gamma
; /* OBC parameters */
96 real gb_doffset
; /* Dielectric offset for Still/HCT/OBC */
97 real gb_epsilon_solvent
; /* */
98 real epsilon_r
; /* Used for inner dielectric */
100 real
*work
; /* Used for parallel summation and in the chain rule, length natoms */
101 real
*buf
; /* Used for parallel summation and in the chain rule, length natoms */
102 real
*dd_work
; /* Used for domain decomposition parallel runs, length natoms */
103 int *count
; /* Used for setting up the special gb nblist, length natoms */
104 gbtmpnbls_t nblist_work
; /* Used for setting up the special gb nblist, dim natoms*nblist_work_nalloc */
105 int nblist_work_nalloc
; /* Length of second dimension of nblist_work */