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
83 /* Coulomb / VdW interaction modifiers.
84 * grompp replaces eintmodPOTSHIFT_VERLET by eintmodPOTSHIFT or eintmodNONE.
87 eintmodPOTSHIFT_VERLET, eintmodPOTSHIFT, eintmodNONE, eintmodNR
91 * eelNOTUSED1 used to be GB, but to enable generalized born with different
92 * forms of electrostatics (RF, switch, etc.) in the future it is now selected
93 * separately (through the implicit_solvent option).
96 eelCUT, eelRF, eelGRF, eelPME, eelEWALD, eelP3M_AD,
97 eelPOISSON, eelSWITCH, eelSHIFT, eelUSER, eelGB_NOTUSED, eelRF_NEC, eelENCADSHIFT,
98 eelPMEUSER, eelPMESWITCH, eelPMEUSERSWITCH, eelRF_ZERO, eelNR
103 eewg3D, eewg3DC, eewgNR
106 #define EEL_RF(e) ((e) == eelRF || (e) == eelGRF || (e) == eelRF_NEC || (e) == eelRF_ZERO )
108 #define EEL_PME(e) ((e) == eelPME || (e) == eelPMESWITCH || (e) == eelPMEUSER || (e) == eelPMEUSERSWITCH || (e) == eelP3M_AD)
109 #define EEL_FULL(e) (EEL_PME(e) || (e) == eelPOISSON || (e) == eelEWALD)
111 #define EEL_SWITCHED(e) ((e) == eelSWITCH || (e) == eelSHIFT || (e) == eelENCADSHIFT || (e) == eelPMESWITCH || (e) == eelPMEUSERSWITCH)
113 #define EEL_USER(e) ((e) == eelUSER || (e) == eelPMEUSER || (e) == (eelPMESWITCH))
115 #define EEL_IS_ZERO_AT_CUTOFF(e) (EEL_SWITCHED(e) || (e) == eelRF_ZERO)
117 #define EEL_MIGHT_BE_ZERO_AT_CUTOFF(e) (EEL_IS_ZERO_AT_CUTOFF(e) || (e) == eelUSER || (e) == eelPMEUSER)
120 evdwCUT, evdwSWITCH, evdwSHIFT, evdwUSER, evdwENCADSHIFT, evdwNR
123 #define EVDW_SWITCHED(e) ((e) == evdwSWITCH || (e) == evdwSHIFT || (e) == evdwENCADSHIFT)
125 #define EVDW_IS_ZERO_AT_CUTOFF(e) EVDW_SWITCHED(e)
127 #define EVDW_MIGHT_BE_ZERO_AT_CUTOFF(e) (EVDW_IS_ZERO_AT_CUTOFF(e) || (e) == evdwUSER)
130 ensGRID, ensSIMPLE, ensNR
133 /* 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
134 energy for temperature control */
137 eiMD, eiSteep, eiCG, eiBD, eiSD2, eiNM, eiLBFGS, eiTPI, eiTPIC, eiSD1, eiVV, eiVVAK, eiNR
139 #define EI_VV(e) ((e) == eiVV || (e) == eiVVAK)
140 #define EI_MD(e) ((e) == eiMD || EI_VV(e))
141 #define EI_SD(e) ((e) == eiSD1 || (e) == eiSD2)
142 #define EI_RANDOM(e) (EI_SD(e) || (e) == eiBD)
143 /*above integrators may not conserve momenta*/
144 #define EI_DYNAMICS(e) (EI_MD(e) || EI_SD(e) || (e) == eiBD)
145 #define EI_ENERGY_MINIMIZATION(e) ((e) == eiSteep || (e) == eiCG || (e) == eiLBFGS)
146 #define EI_TPI(e) ((e) == eiTPI || (e) == eiTPIC)
148 #define EI_STATE_VELOCITY(e) (EI_MD(e) || EI_SD(e))
151 econtLINCS, econtSHAKE, econtNR
155 edrNone, edrSimple, edrEnsemble, edrNR
159 edrwConservative, edrwEqual, edrwNR
162 /* Combination rule things */
164 eCOMB_NONE, eCOMB_GEOMETRIC, eCOMB_ARITHMETIC, eCOMB_GEOM_SIG_EPS, eCOMB_NR
169 eNBF_NONE, eNBF_LJ, eNBF_BHAM, eNBF_NR
172 /* simulated tempering methods */
174 esimtempGEOMETRIC, esimtempEXPONENTIAL, esimtempLINEAR, esimtempNR
178 efepNO, efepYES, efepSTATIC, efepSLOWGROWTH, efepEXPANDED, efepNR
180 /* if efepNO, there are no evaluations at other states.
181 if efepYES, treated equivalently to efepSTATIC.
182 if efepSTATIC, then lambdas do not change during the simulation.
183 if efepSLOWGROWTH, then the states change monotonically throughout the simulation.
184 if efepEXPANDED, then expanded ensemble simulations are occuring.
187 /* FEP coupling types */
189 efptFEP,efptMASS,efptCOUL,efptVDW,efptBONDED,efptRESTRAINT,efptTEMPERATURE,efptNR
192 /* How the lambda weights are calculated:
193 elamstatsMETROPOLIS = using the metropolis criteria
194 elamstatsBARKER = using the Barker critera for transition weights - also called unoptimized Bennett
195 elamstatsMINVAR = using Barker + minimum variance for weights
196 elamstatsWL = Wang-Landu (using visitation counts)
197 elamstatsWWL = Weighted Wang-Landau (using optimized gibbs weighted visitation counts)
200 elamstatsNO, elamstatsMETROPOLIS, elamstatsBARKER, elamstatsMINVAR, elamstatsWL, elamstatsWWL, elamstatsNR
203 #define ELAMSTATS_EXPANDED(e) ((e) > elamstatsNO)
205 #define EWL(e) ((e) == elamstatsWL || (e) == elamstatsWWL)
207 /* How moves in lambda are calculated:
208 elmovemcMETROPOLIS - using the Metropolis criteria, and 50% up and down
209 elmovemcBARKER - using the Barker criteria, and 50% up and down
210 elmovemcGIBBS - computing the transition using the marginalized probabilities of the lambdas
211 elmovemcMETGIBBS - computing the transition using the metropolized version of Gibbs (Monte Carlo Strategies in Scientific computing, Liu, p. 134)
214 elmcmoveNO,elmcmoveMETROPOLIS, elmcmoveBARKER, elmcmoveGIBBS, elmcmoveMETGIBBS, elmcmoveNR
217 /* how we decide whether weights have reached equilibrium
218 elmceqNO - never stop, weights keep going
219 elmceqYES - fix the weights from the beginning; no movement
220 elmceqWLDELTA - stop when the WL-delta falls below a certain level
221 elmceqNUMATLAM - stop when we have a certain number of samples at every step
222 elmceqSTEPS - stop when we've run a certain total number of steps
223 elmceqSAMPLES - stop when we've run a certain total number of samples
224 elmceqRATIO - stop when the ratio of samples (lowest to highest) is sufficiently large
227 elmceqNO,elmceqYES,elmceqWLDELTA,elmceqNUMATLAM,elmceqSTEPS,elmceqSAMPLES,elmceqRATIO,elmceqNR
230 /* separate_dhdl_file selection */
233 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
234 esepdhdlfileYES, esepdhdlfileNO, esepdhdlfileNR
237 /* dhdl_derivatives selection */
240 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
241 edhdlderivativesYES, edhdlderivativesNO, edhdlderivativesNR
246 esolNO, esolSPC, esolTIP4P, esolNR
249 /* Dispersion correction */
251 edispcNO, edispcEnerPres, edispcEner, edispcAllEnerPres, edispcAllEner, edispcNR
254 /* Shell types, for completion stuff */
256 eshellCSH, eshellBASH, eshellZSH, eshellNR
259 /* Center of mass motion selection */
261 ecmLINEAR, ecmANGULAR, ecmNO, ecmNR
264 /* New version of simulated annealing */
266 eannNO, eannSINGLE, eannPERIODIC, eannNR
269 /* Implicit solvent algorithms */
271 eisNO, eisGBSA, eisNR
274 /* Algorithms for calculating GB radii */
276 egbSTILL, egbHCT, egbOBC, egbNR
280 esaAPPROX, esaNO, esaSTILL, esaNR
285 ewt93, ewt104, ewtTABLE, ewt126, ewtNR
290 epullNO, epullUMBRELLA, epullCONSTRAINT, epullCONST_F, epullNR
294 epullgDIST, epullgDIR, epullgCYL, epullgPOS, epullgDIRPBC, epullgNR
297 #define PULL_CYL(pull) ((pull)->eGeom == epullgCYL)
299 /* Enforced rotation groups */
301 erotgISO , erotgISOPF ,
302 erotgPM , erotgPMPF ,
303 erotgRM , erotgRMPF ,
304 erotgRM2 , erotgRM2PF ,
305 erotgFLEX , erotgFLEXT ,
306 erotgFLEX2, erotgFLEX2T,
311 erotgFitRMSD, erotgFitNORM, erotgFitPOT, erotgFitNR
316 eQMmethodAM1, eQMmethodPM3, eQMmethodRHF,
317 eQMmethodUHF, eQMmethodDFT, eQMmethodB3LYP, eQMmethodMP2, eQMmethodCASSCF, eQMmethodB3LYPLAN,
318 eQMmethodDIRECT, eQMmethodNR
322 eQMbasisSTO3G, eQMbasisSTO3G2, eQMbasis321G,
323 eQMbasis321Gp, eQMbasis321dGp, eQMbasis621G,
324 eQMbasis631G, eQMbasis631Gp, eQMbasis631dGp,
325 eQMbasis6311G, eQMbasisNR
329 eQMMMschemenormal,eQMMMschemeoniom,eQMMMschemeNR
333 eMultentOptName, eMultentOptNo, eMultentOptLast, eMultentOptNR
336 /* flat-bottom posres geometries */
338 efbposresZERO, efbposresSPHERE, efbposresCYLINDER, efbposresX, efbposresY, efbposresZ,
343 eAdressOff,eAdressConst, eAdressXSplit, eAdressSphere, eAdressNR
347 eAdressICOff, eAdressICThermoForce, eAdressICNR
351 eAdressSITEcom,eAdressSITEcog, eAdressSITEatom, eAdressSITEatomatom, eAdressSITENR
358 #endif /* ENUMS_H_ */