3 * This source code is part of
7 * 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-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
33 * GRoups of Organic Molecules in ACtion for Science
43 /* note: these enums should correspond to the names in gmxlib/names.c */
46 epbcXYZ, epbcNONE, epbcXY, epbcSCREW, epbcNR
50 etcNO, etcBERENDSEN, etcNOSEHOOVER, etcYES, etcANDERSEN, etcANDERSENMASSIVE, etcVRESCALE, etcNR
51 }; /* yes is an alias for berendsen */
53 #define ETC_ANDERSEN(e) (((e) == etcANDERSENMASSIVE) || ((e) == etcANDERSEN))
56 epcNO, epcBERENDSEN, epcPARRINELLORAHMAN, epcISOTROPIC, epcMTTK, epcNR
57 }; /* isotropic is an alias for berendsen */
59 /* trotter decomposition extended variable parts */
61 etrtNONE, etrtNHC, etrtBAROV, etrtBARONHC, etrtNHC2, etrtBAROV2, etrtBARONHC2,
62 etrtVELOCITY1, etrtVELOCITY2, etrtPOSITION, etrtSKIPALL, etrtNR
65 /* sequenced parts of the trotter decomposition */
67 ettTSEQ0, ettTSEQ1, ettTSEQ2, ettTSEQ3, ettTSEQ4, ettTSEQMAX
71 epctISOTROPIC, epctSEMIISOTROPIC, epctANISOTROPIC,
72 epctSURFACETENSION, epctNR
76 erscNO, erscALL, erscCOM, erscNR
80 ecutsGROUP, ecutsVERLET, ecutsNR
84 * eelNOTUSED1 used to be GB, but to enable generalized born with different
85 * forms of electrostatics (RF, switch, etc.) in the future it is now selected
86 * separately (through the implicit_solvent option).
89 eelCUT, eelRF, eelGRF, eelPME, eelEWALD, eelP3M_AD,
90 eelPOISSON, eelSWITCH, eelSHIFT, eelUSER, eelGB_NOTUSED, eelRF_NEC, eelENCADSHIFT,
91 eelPMEUSER, eelPMESWITCH, eelPMEUSERSWITCH, eelRF_ZERO, eelNR
96 eewg3D, eewg3DC, eewgNR
99 #define EEL_RF(e) ((e) == eelRF || (e) == eelGRF || (e) == eelRF_NEC || (e) == eelRF_ZERO )
101 #define EEL_PME(e) ((e) == eelPME || (e) == eelPMESWITCH || (e) == eelPMEUSER || (e) == eelPMEUSERSWITCH || (e) == eelP3M_AD)
102 #define EEL_FULL(e) (EEL_PME(e) || (e) == eelPOISSON || (e) == eelEWALD)
104 #define EEL_SWITCHED(e) ((e) == eelSWITCH || (e) == eelSHIFT || (e) == eelENCADSHIFT || (e) == eelPMESWITCH || (e) == eelPMEUSERSWITCH)
106 #define EEL_USER(e) ((e) == eelUSER || (e) == eelPMEUSER || (e) == (eelPMESWITCH))
108 #define EEL_IS_ZERO_AT_CUTOFF(e) (EEL_SWITCHED(e) || (e) == eelRF_ZERO)
110 #define EEL_MIGHT_BE_ZERO_AT_CUTOFF(e) (EEL_IS_ZERO_AT_CUTOFF(e) || (e) == eelUSER || (e) == eelPMEUSER)
113 evdwCUT, evdwSWITCH, evdwSHIFT, evdwUSER, evdwENCADSHIFT, evdwNR
116 #define EVDW_SWITCHED(e) ((e) == evdwSWITCH || (e) == evdwSHIFT || (e) == evdwENCADSHIFT)
118 #define EVDW_IS_ZERO_AT_CUTOFF(e) EVDW_SWITCHED(e)
120 #define EVDW_MIGHT_BE_ZERO_AT_CUTOFF(e) (EVDW_IS_ZERO_AT_CUTOFF(e) || (e) == evdwUSER)
123 ensGRID, ensSIMPLE, ensNR
126 /* 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
127 energy for temperature control */
130 eiMD, eiSteep, eiCG, eiBD, eiSD2, eiNM, eiLBFGS, eiTPI, eiTPIC, eiSD1, eiVV, eiVVAK, eiNR
132 #define EI_VV(e) ((e) == eiVV || (e) == eiVVAK)
133 #define EI_MD(e) ((e) == eiMD || EI_VV(e))
134 #define EI_SD(e) ((e) == eiSD1 || (e) == eiSD2)
135 #define EI_RANDOM(e) (EI_SD(e) || (e) == eiBD)
136 /*above integrators may not conserve momenta*/
137 #define EI_DYNAMICS(e) (EI_MD(e) || EI_SD(e) || (e) == eiBD)
138 #define EI_ENERGY_MINIMIZATION(e) ((e) == eiSteep || (e) == eiCG || (e) == eiLBFGS)
139 #define EI_TPI(e) ((e) == eiTPI || (e) == eiTPIC)
141 #define EI_STATE_VELOCITY(e) (EI_MD(e) || EI_SD(e))
144 econtLINCS, econtSHAKE, econtNR
148 edrNone, edrSimple, edrEnsemble, edrNR
152 edrwConservative, edrwEqual, edrwNR
155 /* Combination rule things */
157 eCOMB_NONE, eCOMB_GEOMETRIC, eCOMB_ARITHMETIC, eCOMB_GEOM_SIG_EPS, eCOMB_NR
162 eNBF_NONE, eNBF_LJ, eNBF_BHAM, eNBF_NR
165 /* simulated tempering methods */
167 esimtempGEOMETRIC, esimtempEXPONENTIAL, esimtempLINEAR, esimtempNR
171 efepNO, efepYES, efepSTATIC, efepSLOWGROWTH, efepEXPANDED, efepNR
173 /* if efepNO, there are no evaluations at other states.
174 if efepYES, treated equivalently to efepSTATIC.
175 if efepSTATIC, then lambdas do not change during the simulation.
176 if efepSLOWGROWTH, then the states change monotonically throughout the simulation.
177 if efepEXPANDED, then expanded ensemble simulations are occuring.
180 /* FEP coupling types */
182 efptFEP,efptMASS,efptCOUL,efptVDW,efptBONDED,efptRESTRAINT,efptTEMPERATURE,efptNR
185 /* How the lambda weights are calculated:
186 elamstatsMETROPOLIS = using the metropolis criteria
187 elamstatsBARKER = using the Barker critera for transition weights - also called unoptimized Bennett
188 elamstatsMINVAR = using Barker + minimum variance for weights
189 elamstatsWL = Wang-Landu (using visitation counts)
190 elamstatsWWL = Weighted Wang-Landau (using optimized gibbs weighted visitation counts)
193 elamstatsNO, elamstatsMETROPOLIS, elamstatsBARKER, elamstatsMINVAR, elamstatsWL, elamstatsWWL, elamstatsNR
196 #define ELAMSTATS_EXPANDED(e) ((e) > elamstatsNO)
198 #define EWL(e) ((e) == elamstatsWL || (e) == elamstatsWWL)
200 /* How moves in lambda are calculated:
201 elmovemcMETROPOLIS - using the Metropolis criteria, and 50% up and down
202 elmovemcBARKER - using the Barker criteria, and 50% up and down
203 elmovemcGIBBS - computing the transition using the marginalized probabilities of the lambdas
204 elmovemcMETGIBBS - computing the transition using the metropolized version of Gibbs (Monte Carlo Strategies in Scientific computing, Liu, p. 134)
207 elmcmoveNO,elmcmoveMETROPOLIS, elmcmoveBARKER, elmcmoveGIBBS, elmcmoveMETGIBBS, elmcmoveNR
210 /* how we decide whether weights have reached equilibrium
211 elmceqNO - never stop, weights keep going
212 elmceqYES - fix the weights from the beginning; no movement
213 elmceqWLDELTA - stop when the WL-delta falls below a certain level
214 elmceqNUMATLAM - stop when we have a certain number of samples at every step
215 elmceqSTEPS - stop when we've run a certain total number of steps
216 elmceqSAMPLES - stop when we've run a certain total number of samples
217 elmceqRATIO - stop when the ratio of samples (lowest to highest) is sufficiently large
220 elmceqNO,elmceqYES,elmceqWLDELTA,elmceqNUMATLAM,elmceqSTEPS,elmceqSAMPLES,elmceqRATIO,elmceqNR
223 /* separate_dhdl_file selection */
226 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
227 esepdhdlfileYES, esepdhdlfileNO, esepdhdlfileNR
230 /* dhdl_derivatives selection */
233 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
234 edhdlderivativesYES, edhdlderivativesNO, edhdlderivativesNR
239 esolNO, esolSPC, esolTIP4P, esolNR
242 /* Dispersion correction */
244 edispcNO, edispcEnerPres, edispcEner, edispcAllEnerPres, edispcAllEner, edispcNR
247 /* Shell types, for completion stuff */
249 eshellCSH, eshellBASH, eshellZSH, eshellNR
252 /* Center of mass motion selection */
254 ecmLINEAR, ecmANGULAR, ecmNO, ecmNR
257 /* New version of simulated annealing */
259 eannNO, eannSINGLE, eannPERIODIC, eannNR
262 /* Implicit solvent algorithms */
264 eisNO, eisGBSA, eisNR
267 /* Algorithms for calculating GB radii */
269 egbSTILL, egbHCT, egbOBC, egbNR
273 esaAPPROX, esaNO, esaSTILL, esaNR
278 ewt93, ewt104, ewtTABLE, ewt126, ewtNR
283 epullNO, epullUMBRELLA, epullCONSTRAINT, epullCONST_F, epullNR
287 epullgDIST, epullgDIR, epullgCYL, epullgPOS, epullgDIRPBC, epullgNR
290 #define PULL_CYL(pull) ((pull)->eGeom == epullgCYL)
292 /* Enforced rotation groups */
294 erotgISO , erotgISOPF ,
295 erotgPM , erotgPMPF ,
296 erotgRM , erotgRMPF ,
297 erotgRM2 , erotgRM2PF ,
298 erotgFLEX , erotgFLEXT ,
299 erotgFLEX2, erotgFLEX2T,
304 erotgFitRMSD, erotgFitNORM, erotgFitPOT, erotgFitNR
309 eQMmethodAM1, eQMmethodPM3, eQMmethodRHF,
310 eQMmethodUHF, eQMmethodDFT, eQMmethodB3LYP, eQMmethodMP2, eQMmethodCASSCF, eQMmethodB3LYPLAN,
311 eQMmethodDIRECT, eQMmethodNR
315 eQMbasisSTO3G, eQMbasisSTO3G2, eQMbasis321G,
316 eQMbasis321Gp, eQMbasis321dGp, eQMbasis621G,
317 eQMbasis631G, eQMbasis631Gp, eQMbasis631dGp,
318 eQMbasis6311G, eQMbasisNR
322 eQMMMschemenormal,eQMMMschemeoniom,eQMMMschemeNR
326 eMultentOptName, eMultentOptNo, eMultentOptLast, eMultentOptNR
330 eAdressOff,eAdressConst, eAdressXSplit, eAdressSphere, eAdressNR
334 eAdressICOff, eAdressICThermoForce, eAdressICNR
338 eAdressSITEcom,eAdressSITEcog, eAdressSITEatom, eAdressSITEatomatom, eAdressSITENR
345 #endif /* ENUMS_H_ */