Implemented changes to preprocessor to work with MiMiC QM/MM
[alexxy/gromacs.git] / src / gromacs / mdtypes / md_enums.cpp
1 /*
2  * This file is part of the GROMACS molecular simulation package.
3  *
4  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
5  * Copyright (c) 2001-2004, The GROMACS development team.
6  * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
7  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
8  * and including many others, as listed in the AUTHORS file in the
9  * top-level source directory and at http://www.gromacs.org.
10  *
11  * GROMACS is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public License
13  * as published by the Free Software Foundation; either version 2.1
14  * of the License, or (at your option) any later version.
15  *
16  * GROMACS is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with GROMACS; if not, see
23  * http://www.gnu.org/licenses, or write to the Free Software Foundation,
24  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
25  *
26  * If you want to redistribute modifications to GROMACS, please
27  * consider that scientific software is very special. Version
28  * control is crucial - bugs must be traceable. We will be happy to
29  * consider code for inclusion in the official distribution, but
30  * derived work must not be called official GROMACS. Details are found
31  * in the README & COPYING files - if they are missing, get the
32  * official version at http://www.gromacs.org.
33  *
34  * To help us fund GROMACS development, we humbly ask that you cite
35  * the research papers on the package. Check out http://www.gromacs.org.
36  */
37 #include "gmxpre.h"
38
39 #include "md_enums.h"
40
41 const char *enum_name(int index, int max_index, const char *names[])
42 {
43     if (index < 0 || index >= max_index)
44     {
45         static const char *undef = "no name defined";
46         return undef;
47     }
48     else
49     {
50         return names[index];
51     }
52 }
53
54 const char *yesno_names[BOOL_NR+1] =
55 {
56     "no", "yes", nullptr
57 };
58
59 const char *ens_names[ensNR+1] =
60 {
61     "Grid", "Simple", nullptr
62 };
63
64 const char *ei_names[eiNR+1] =
65 {
66     "md", "steep", "cg", "bd", "sd2 - removed", "nm", "l-bfgs", "tpi", "tpic", "sd", "md-vv", "md-vv-avek", "mimic", nullptr
67 };
68
69 const char *ecutscheme_names[ecutsNR+1] = {
70     "Verlet", "Group", nullptr
71 };
72
73 const char *erefscaling_names[erscNR+1] = {
74     "No", "All", "COM", nullptr
75 };
76
77 const char *eel_names[eelNR+1] = {
78     "Cut-off", "Reaction-Field", "Generalized-Reaction-Field",
79     "PME", "Ewald", "P3M-AD", "Poisson", "Switch", "Shift", "User",
80     "Generalized-Born (unused)", "Reaction-Field-nec", "Encad-shift",
81     "PME-User", "PME-Switch", "PME-User-Switch",
82     "Reaction-Field-zero", nullptr
83 };
84
85 const char *eewg_names[eewgNR+1] = {
86     "3d", "3dc", nullptr
87 };
88
89 const char *eljpme_names[eljpmeNR+1] = {
90     "Geometric", "Lorentz-Berthelot", nullptr
91 };
92
93 const char *evdw_names[evdwNR+1] = {
94     "Cut-off", "Switch", "Shift", "User", "Encad-shift",
95     "PME", nullptr
96 };
97
98 const char *econstr_names[econtNR+1] = {
99     "Lincs", "Shake", nullptr
100 };
101
102 const char *eintmod_names[eintmodNR+1] = {
103     "Potential-shift-Verlet", "Potential-shift", "None", "Potential-switch", "Exact-cutoff", "Force-switch", nullptr
104 };
105
106 const char *etcoupl_names[etcNR+1] = {
107     "No", "Berendsen", "Nose-Hoover", "yes", "Andersen", "Andersen-massive", "V-rescale", nullptr
108 }; /* yes is alias for berendsen */
109
110 const char *epcoupl_names[epcNR+1] = {
111     "No", "Berendsen", "Parrinello-Rahman", "Isotropic", "MTTK", nullptr
112 }; /* isotropic is alias for berendsen */
113
114 const char *epcoupltype_names[epctNR+1] = {
115     "Isotropic", "Semiisotropic", "Anisotropic", "Surface-Tension", nullptr
116 };
117
118 const char *edisre_names[edrNR+1] = {
119     "No", "Simple", "Ensemble", nullptr
120 };
121
122 const char *edisreweighting_names[edrwNR+1] = {
123     "Conservative", "Equal", nullptr
124 };
125
126 const char *enbf_names[eNBF_NR+1] = {
127     "", "LJ", "Buckingham", nullptr
128 };
129
130 const char *ecomb_names[eCOMB_NR+1] = {
131     "", "Geometric", "Arithmetic", "GeomSigEps", nullptr
132 };
133
134 const char *esimtemp_names[esimtempNR+1] = {
135     "geometric", "exponential", "linear", nullptr
136 };
137
138 const char *efep_names[efepNR+1] = {
139     "no", "yes", "static", "slow-growth", "expanded", nullptr
140 };
141
142 const char *efpt_names[efptNR+1] = {
143     "fep-lambdas", "mass-lambdas", "coul-lambdas", "vdw-lambdas", "bonded-lambdas", "restraint-lambdas", "temperature-lambdas", nullptr
144 };
145
146 const char *efpt_singular_names[efptNR+1] = {
147     "fep-lambda", "mass-lambda", "coul-lambda", "vdw-lambda", "bonded-lambda", "restraint-lambda", "temperature-lambda", nullptr
148 };
149
150 const char *edHdLPrintEnergy_names[edHdLPrintEnergyNR+1] = {
151     "no", "total", "potential", "yes", nullptr
152 };
153
154 const char *elamstats_names[elamstatsNR+1] = {
155     "no", "metropolis-transition", "barker-transition", "minvar", "wang-landau", "weighted-wang-landau", nullptr
156 };
157
158 const char *elmcmove_names[elmcmoveNR+1] = {
159     "no", "metropolis", "barker", "gibbs", "metropolized-gibbs", nullptr
160 };
161
162 const char *elmceq_names[elmceqNR+1] = {
163     "no", "yes", "wl-delta", "number-all-lambda", "number-steps", "number-samples", "count-ratio", nullptr
164 };
165
166 const char *separate_dhdl_file_names[esepdhdlfileNR+1] = {
167     "yes", "no", nullptr
168 };
169
170 const char *dhdl_derivatives_names[edhdlderivativesNR+1] = {
171     "yes", "no", nullptr
172 };
173
174 const char *esol_names[esolNR+1] = {
175     "No", "SPC", "TIP4p", nullptr
176 };
177
178 const char *edispc_names[edispcNR+1] = {
179     "No", "EnerPres", "Ener", "AllEnerPres", "AllEner", nullptr
180 };
181
182 const char *ecm_names[ecmNR+1] = {
183     "Linear", "Angular", "None", "Linear-acceleration-correction", nullptr
184 };
185
186 const char *eann_names[eannNR+1] = {
187     "No", "Single", "Periodic", nullptr
188 };
189
190 const char *ewt_names[ewtNR+1] = {
191     "9-3", "10-4", "table", "12-6", nullptr
192 };
193
194 const char *epull_names[epullNR+1] = {
195     "umbrella", "constraint", "constant-force", "flat-bottom", "flat-bottom-high", "external-potential", nullptr
196 };
197
198 const char *epullg_names[epullgNR+1] = {
199     "distance", "direction", "cylinder", "direction-periodic", "direction-relative", "angle", "dihedral", "angle-axis", nullptr
200 };
201
202 const char *erotg_names[erotgNR+1] = {
203     "iso", "iso-pf", "pm", "pm-pf", "rm", "rm-pf", "rm2", "rm2-pf", "flex", "flex-t", "flex2", "flex2-t", nullptr
204 };
205
206 const char *erotg_fitnames[erotgFitNR+1] = {
207     "rmsd", "norm", "potential", nullptr
208 };
209
210 const char *eSwapTypes_names[eSwapTypesNR+1] = {
211     "no", "X", "Y", "Z", nullptr
212 };
213
214 const char *eSwapFixedGrp_names[eSwapFixedGrpNR+1] = {
215     "Split0", "Split1", "Solvent", nullptr
216 };
217
218
219 const char *eQMmethod_names[eQMmethodNR+1] = {
220     "AM1", "PM3", "RHF",
221     "UHF", "DFT", "B3LYP", "MP2", "CASSCF", "B3LYPLAN",
222     "DIRECT", nullptr
223 };
224
225 const char *eQMbasis_names[eQMbasisNR+1] = {
226     "STO3G", "STO-3G", "3-21G",
227     "3-21G*", "3-21+G*", "6-21G",
228     "6-31G", "6-31G*", "6-31+G*",
229     "6-311G", nullptr
230 };
231
232 const char *eQMMMscheme_names[eQMMMschemeNR+1] = {
233     "normal", "ONIOM", nullptr
234 };
235
236 const char *gmx_nblist_geometry_names[GMX_NBLIST_GEOMETRY_NR+1] = {
237     "Particle-Particle", "Water3-Particle", "Water3-Water3", "Water4-Particle", "Water4-Water4", "CG-CG", nullptr
238 };
239
240 const char *gmx_nblist_interaction_names[GMX_NBLIST_INTERACTION_NR+1] = {
241     "Standard", "Free_Energy", nullptr
242 };
243
244 const char *gmx_nbkernel_elec_names[GMX_NBKERNEL_ELEC_NR+1] =
245 {
246     "None", "Coulomb", "Reaction-Field", "Cubic-Spline-Table", "Ewald", nullptr
247 };
248
249 const char *gmx_nbkernel_vdw_names[GMX_NBKERNEL_VDW_NR+1] =
250 {
251     "None", "Lennard-Jones", "Buckingham", "Cubic-Spline-Table", "LJEwald", nullptr
252 };