Made src/kernel/repl_ex.c legible
[gromacs.git] / include / types / enums.h
bloba12c3074446a701ca5f5a4842da98bf8efb0361e
1 /*
2 *
3 * This source code is part of
4 *
5 * G R O M A C S
6 *
7 * GROningen MAchine for Chemical Simulations
8 *
9 * VERSION 3.2.0
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-2004, 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 * GRoups of Organic Molecules in ACtion for Science
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
40 /* note: these enums should correspond to the names in gmxlib/names.c */
42 enum {
43 epbcXYZ, epbcNONE, epbcXY, epbcSCREW, epbcNR
46 enum {
47 etcNO, etcBERENDSEN, etcNOSEHOOVER, etcYES, etcANDERSEN, etcANDERSENINTERVAL, etcVRESCALE, etcNR
48 }; /* yes is an alias for berendsen */
50 enum {
51 epcNO, epcBERENDSEN, epcPARRINELLORAHMAN, epcISOTROPIC, epcMTTK, epcNR
52 }; /* isotropic is an alias for berendsen */
54 /* trotter decomposition extended variable parts */
55 enum {
56 etrtNONE, etrtNHC, etrtBAROV, etrtBARONHC, etrtNHC2, etrtBAROV2, etrtBARONHC2,
57 etrtVELOCITY1, etrtVELOCITY2, etrtPOSITION, etrtSKIPALL, etrtNR
60 /* sequenced parts of the trotter decomposition */
61 enum {
62 ettTSEQ0, ettTSEQ1, ettTSEQ2, ettTSEQ3, ettTSEQ4, ettTSEQMAX
65 enum {
66 epctISOTROPIC, epctSEMIISOTROPIC, epctANISOTROPIC,
67 epctSURFACETENSION, epctNR
70 enum {
71 erscNO, erscALL, erscCOM, erscNR
75 * eelNOTUSED1 used to be GB, but to enable generalized born with different
76 * forms of electrostatics (RF, switch, etc.) in the future it is now selected
77 * separately (through the implicit_solvent option).
79 enum {
80 eelCUT, eelRF, eelGRF, eelPME, eelEWALD, eelPPPM,
81 eelPOISSON, eelSWITCH, eelSHIFT, eelUSER, eelGB_NOTUSED, eelRF_NEC, eelENCADSHIFT,
82 eelPMEUSER, eelPMESWITCH, eelPMEUSERSWITCH, eelRF_ZERO, eelNR
85 /* Ewald geometry */
86 enum {
87 eewg3D, eewg3DC, eewgNR
90 #define EEL_RF(e) ((e) == eelRF || (e) == eelGRF || (e) == eelRF_NEC || (e) == eelRF_ZERO )
92 #define EEL_PME(e) ((e) == eelPME || (e) == eelPMESWITCH || (e) == eelPMEUSER || (e) == eelPMEUSERSWITCH)
93 #define EEL_FULL(e) (EEL_PME(e) || (e) == eelPPPM || (e) == eelPOISSON || (e) == eelEWALD)
95 #define EEL_SWITCHED(e) ((e) == eelSWITCH || (e) == eelSHIFT || (e) == eelENCADSHIFT || (e) == eelPMESWITCH || (e) == eelPMEUSERSWITCH)
97 #define EEL_IS_ZERO_AT_CUTOFF(e) (EEL_SWITCHED(e) || (e) == eelRF_ZERO)
99 #define EEL_MIGHT_BE_ZERO_AT_CUTOFF(e) (EEL_IS_ZERO_AT_CUTOFF(e) || (e) == eelUSER || (e) == eelPMEUSER)
101 enum {
102 evdwCUT, evdwSWITCH, evdwSHIFT, evdwUSER, evdwENCADSHIFT, evdwNR
105 #define EVDW_SWITCHED(e) ((e) == evdwSWITCH || (e) == evdwSHIFT || (e) == evdwENCADSHIFT)
107 #define EVDW_IS_ZERO_AT_CUTOFF(e) EVDW_SWITCHED(e)
109 #define EVDW_MIGHT_BE_ZERO_AT_CUTOFF(e) (EVDW_IS_ZERO_AT_CUTOFF(e) || (e) == evdwUSER)
111 enum {
112 ensGRID, ensSIMPLE, ensNR
115 /* eiVV is normal velocity verlet -- eiVVAK uses 1/2*(KE(t-dt/2)+KE(t+dt/2)) as the kinetic energy, and the half step kinetic
116 energy for temperature control */
118 enum {
119 eiMD, eiSteep, eiCG, eiBD, eiSD2, eiNM, eiLBFGS, eiTPI, eiTPIC, eiSD1, eiVV, eiVVAK, eiNR
121 #define EI_VV(e) ((e) == eiVV || (e) == eiVVAK)
122 #define EI_SD(e) ((e) == eiSD1 || (e) == eiSD2)
123 #define EI_RANDOM(e) (EI_SD(e) || (e) == eiBD)
124 /*above integrators may not conserve momenta*/
125 #define EI_DYNAMICS(e) ((e) == eiMD || EI_SD(e) || (e) == eiBD || EI_VV(e))
126 #define EI_ENERGY_MINIMIZATION(e) ((e) == eiSteep || (e) == eiCG || (e) == eiLBFGS)
127 #define EI_TPI(e) ((e) == eiTPI || (e) == eiTPIC)
129 #define EI_STATE_VELOCITY(e) ((e) == eiMD || EI_VV(e) || EI_SD(e))
131 enum {
132 econtLINCS, econtSHAKE, econtNR
135 enum {
136 edrNone, edrSimple, edrEnsemble, edrNR
139 enum {
140 edrwConservative, edrwEqual, edrwNR
143 /* Combination rule things */
144 enum {
145 eCOMB_NONE, eCOMB_GEOMETRIC, eCOMB_ARITHMETIC, eCOMB_GEOM_SIG_EPS, eCOMB_NR
148 /* NBF selection */
149 enum {
150 eNBF_NONE, eNBF_LJ, eNBF_BHAM, eNBF_NR
153 /* FEP selection */
154 enum {
155 efepNO, efepYES, efepNR
158 /* separate_dhdl_file selection */
159 enum
161 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
162 sepdhdlfileYES, sepdhdlfileNO, sepdhdlfileNR
165 /* dhdl_derivatives selection */
166 enum
168 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
169 dhdlderivativesYES, dhdlderivativesNO, dhdlderivativesNR
172 /* Solvent model */
173 enum {
174 esolNO, esolSPC, esolTIP4P, esolNR
177 /* Dispersion correction */
178 enum {
179 edispcNO, edispcEnerPres, edispcEner, edispcAllEnerPres, edispcAllEner, edispcNR
182 /* Shell types, for completion stuff */
183 enum {
184 eshellCSH, eshellBASH, eshellZSH, eshellNR
187 /* Center of mass motion selection */
188 enum {
189 ecmLINEAR, ecmANGULAR, ecmNO, ecmNR
192 /* New version of simulated annealing */
193 enum {
194 eannNO, eannSINGLE, eannPERIODIC, eannNR
197 /* Implicit solvent algorithms */
198 enum {
199 eisNO, eisGBSA, eisNR
202 /* Algorithms for calculating GB radii */
203 enum {
204 egbSTILL, egbHCT, egbOBC, egbNR
207 enum {
208 esaAPPROX, esaNO, esaSTILL, esaNR
211 /* Wall types */
212 enum {
213 ewt93, ewt104, ewtTABLE, ewt126, ewtNR
216 /* Pull stuff */
217 enum {
218 epullNO, epullUMBRELLA, epullCONSTRAINT, epullCONST_F, epullNR
221 enum {
222 epullgDIST, epullgDIR, epullgCYL, epullgPOS, epullgDIRPBC, epullgNR
225 #define PULL_CYL(pull) ((pull)->eGeom == epullgCYL)
227 /* QMMM */
228 enum {
229 eQMmethodAM1, eQMmethodPM3, eQMmethodRHF,
230 eQMmethodUHF, eQMmethodDFT, eQMmethodB3LYP, eQMmethodMP2, eQMmethodCASSCF, eQMmethodB3LYPLAN,
231 eQMmethodDIRECT, eQMmethodNR
234 enum {
235 eQMbasisSTO3G, eQMbasisSTO3G2, eQMbasis321G,
236 eQMbasis321Gp, eQMbasis321dGp, eQMbasis621G,
237 eQMbasis631G, eQMbasis631Gp, eQMbasis631dGp,
238 eQMbasis6311G, eQMbasisNR
241 enum {
242 eQMMMschemenormal,eQMMMschemeoniom,eQMMMschemeNR
245 enum {
246 eMultentOptName, eMultentOptNo, eMultentOptLast, eMultentOptNR
249 #ifdef __cplusplus
251 #endif