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
40 /* note: these enums should correspond to the names in gmxlib/names.c */
43 epbcXYZ, epbcNONE, epbcXY, epbcSCREW, epbcNR
47 etcNO, etcBERENDSEN, etcNOSEHOOVER, etcYES, etcANDERSEN, etcANDERSENINTERVAL, etcVRESCALE, etcNR
48 }; /* yes is an alias for berendsen */
51 epcNO, epcBERENDSEN, epcPARRINELLORAHMAN, epcISOTROPIC, epcMTTK, epcNR
52 }; /* isotropic is an alias for berendsen */
54 /* trotter decomposition extended variable parts */
56 etrtNONE, etrtNHC, etrtBAROV, etrtBARONHC, etrtNHC2, etrtBAROV2, etrtBARONHC2,
57 etrtVELOCITY1, etrtVELOCITY2, etrtPOSITION, etrtSKIPALL, etrtNR
60 /* sequenced parts of the trotter decomposition */
62 ettTSEQ0, ettTSEQ1, ettTSEQ2, ettTSEQ3, ettTSEQ4, ettTSEQMAX
66 epctISOTROPIC, epctSEMIISOTROPIC, epctANISOTROPIC,
67 epctSURFACETENSION, epctNR
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).
80 eelCUT, eelRF, eelGRF, eelPME, eelEWALD, eelP3M_AD,
81 eelPOISSON, eelSWITCH, eelSHIFT, eelUSER, eelGB_NOTUSED, eelRF_NEC, eelENCADSHIFT,
82 eelPMEUSER, eelPMESWITCH, eelPMEUSERSWITCH, eelRF_ZERO, eelNR
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 || (e) == eelP3M_AD)
93 #define EEL_FULL(e) (EEL_PME(e) || (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)
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)
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 */
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))
132 econtLINCS, econtSHAKE, econtNR
136 edrNone, edrSimple, edrEnsemble, edrNR
140 edrwConservative, edrwEqual, edrwNR
143 /* Combination rule things */
145 eCOMB_NONE, eCOMB_GEOMETRIC, eCOMB_ARITHMETIC, eCOMB_GEOM_SIG_EPS, eCOMB_NR
150 eNBF_NONE, eNBF_LJ, eNBF_BHAM, eNBF_NR
155 efepNO, efepYES, efepNR
158 /* separate_dhdl_file selection */
161 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
162 sepdhdlfileYES, sepdhdlfileNO, sepdhdlfileNR
165 /* dhdl_derivatives selection */
168 /* NOTE: YES is the first one. Do NOT interpret this one as a gmx_bool */
169 dhdlderivativesYES, dhdlderivativesNO, dhdlderivativesNR
174 esolNO, esolSPC, esolTIP4P, esolNR
177 /* Dispersion correction */
179 edispcNO, edispcEnerPres, edispcEner, edispcAllEnerPres, edispcAllEner, edispcNR
182 /* Shell types, for completion stuff */
184 eshellCSH, eshellBASH, eshellZSH, eshellNR
187 /* Center of mass motion selection */
189 ecmLINEAR, ecmANGULAR, ecmNO, ecmNR
192 /* New version of simulated annealing */
194 eannNO, eannSINGLE, eannPERIODIC, eannNR
197 /* Implicit solvent algorithms */
199 eisNO, eisGBSA, eisNR
202 /* Algorithms for calculating GB radii */
204 egbSTILL, egbHCT, egbOBC, egbNR
208 esaAPPROX, esaNO, esaSTILL, esaNR
213 ewt93, ewt104, ewtTABLE, ewt126, ewtNR
218 epullNO, epullUMBRELLA, epullCONSTRAINT, epullCONST_F, epullNR
222 epullgDIST, epullgDIR, epullgCYL, epullgPOS, epullgDIRPBC, epullgNR
225 #define PULL_CYL(pull) ((pull)->eGeom == epullgCYL)
227 /* Enforced rotation groups */
229 erotgISO , erotgISOPF ,
230 erotgPM , erotgPMPF ,
231 erotgRM , erotgRMPF ,
232 erotgRM2 , erotgRM2PF ,
233 erotgFLEX , erotgFLEXT ,
234 erotgFLEX2, erotgFLEX2T,
239 erotgFitRMSD, erotgFitNORM, erotgFitPOT, erotgFitNR
244 eQMmethodAM1, eQMmethodPM3, eQMmethodRHF,
245 eQMmethodUHF, eQMmethodDFT, eQMmethodB3LYP, eQMmethodMP2, eQMmethodCASSCF, eQMmethodB3LYPLAN,
246 eQMmethodDIRECT, eQMmethodNR
250 eQMbasisSTO3G, eQMbasisSTO3G2, eQMbasis321G,
251 eQMbasis321Gp, eQMbasis321dGp, eQMbasis621G,
252 eQMbasis631G, eQMbasis631Gp, eQMbasis631dGp,
253 eQMbasis6311G, eQMbasisNR
257 eQMMMschemenormal,eQMMMschemeoniom,eQMMMschemeNR
261 eMultentOptName, eMultentOptNo, eMultentOptLast, eMultentOptNR
265 eAdressOff,eAdressConst, eAdressXSplit, eAdressSphere, eAdressNR
269 eAdressICOff, eAdressICThermoForce, eAdressICNR
273 eAdressSITEcom,eAdressSITEcog, eAdressSITEatom, eAdressSITEatomatom, eAdressSITENR