e47f1e0a0f2934083c4a8750770257b18f98be46
[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, 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
60
61 const char *ens_names[ensNR+1] =
62 {
63     "Grid", "Simple", nullptr
64 };
65
66 const char *ei_names[eiNR+1] =
67 {
68     "md", "steep", "cg", "bd", "sd2 - removed", "nm", "l-bfgs", "tpi", "tpic", "sd", "md-vv", "md-vv-avek", nullptr
69 };
70
71 const char *ecutscheme_names[ecutsNR+1] = {
72     "Verlet", "Group", nullptr
73 };
74
75 const char *erefscaling_names[erscNR+1] = {
76     "No", "All", "COM", nullptr
77 };
78
79 const char *eel_names[eelNR+1] = {
80     "Cut-off", "Reaction-Field", "Generalized-Reaction-Field",
81     "PME", "Ewald", "P3M-AD", "Poisson", "Switch", "Shift", "User",
82     "Generalized-Born", "Reaction-Field-nec", "Encad-shift",
83     "PME-User", "PME-Switch", "PME-User-Switch",
84     "Reaction-Field-zero", nullptr
85 };
86
87 const char *eewg_names[eewgNR+1] = {
88     "3d", "3dc", nullptr
89 };
90
91 const char *eljpme_names[eljpmeNR+1] = {
92     "Geometric", "Lorentz-Berthelot", nullptr
93 };
94
95 const char *evdw_names[evdwNR+1] = {
96     "Cut-off", "Switch", "Shift", "User", "Encad-shift",
97     "PME", nullptr
98 };
99
100 const char *econstr_names[econtNR+1] = {
101     "Lincs", "Shake", nullptr
102 };
103
104 const char *eintmod_names[eintmodNR+1] = {
105     "Potential-shift-Verlet", "Potential-shift", "None", "Potential-switch", "Exact-cutoff", "Force-switch", nullptr
106 };
107
108 const char *etcoupl_names[etcNR+1] = {
109     "No", "Berendsen", "Nose-Hoover", "yes", "Andersen", "Andersen-massive", "V-rescale", nullptr
110 }; /* yes is alias for berendsen */
111
112 const char *epcoupl_names[epcNR+1] = {
113     "No", "Berendsen", "Parrinello-Rahman", "Isotropic", "MTTK", nullptr
114 }; /* isotropic is alias for berendsen */
115
116 const char *epcoupltype_names[epctNR+1] = {
117     "Isotropic", "Semiisotropic", "Anisotropic", "Surface-Tension", nullptr
118 };
119
120 const char *edisre_names[edrNR+1] = {
121     "No", "Simple", "Ensemble", nullptr
122 };
123
124 const char *edisreweighting_names[edrwNR+1] = {
125     "Conservative", "Equal", nullptr
126 };
127
128 const char *enbf_names[eNBF_NR+1] = {
129     "", "LJ", "Buckingham", nullptr
130 };
131
132 const char *ecomb_names[eCOMB_NR+1] = {
133     "", "Geometric", "Arithmetic", "GeomSigEps", nullptr
134 };
135
136 const char *esimtemp_names[esimtempNR+1] = {
137     "geometric", "exponential", "linear", nullptr
138 };
139
140 const char *efep_names[efepNR+1] = {
141     "no", "yes", "static", "slow-growth", "expanded", nullptr
142 };
143
144 const char *efpt_names[efptNR+1] = {
145     "fep-lambdas", "mass-lambdas", "coul-lambdas", "vdw-lambdas", "bonded-lambdas", "restraint-lambdas", "temperature-lambdas", nullptr
146 };
147
148 const char *efpt_singular_names[efptNR+1] = {
149     "fep-lambda", "mass-lambda", "coul-lambda", "vdw-lambda", "bonded-lambda", "restraint-lambda", "temperature-lambda", nullptr
150 };
151
152 const char *edHdLPrintEnergy_names[edHdLPrintEnergyNR+1] = {
153     "no", "total", "potential", "yes", nullptr
154 };
155
156 const char *elamstats_names[elamstatsNR+1] = {
157     "no", "metropolis-transition", "barker-transition", "minvar", "wang-landau", "weighted-wang-landau", nullptr
158 };
159
160 const char *elmcmove_names[elmcmoveNR+1] = {
161     "no", "metropolis", "barker", "gibbs", "metropolized-gibbs", nullptr
162 };
163
164 const char *elmceq_names[elmceqNR+1] = {
165     "no", "yes", "wl-delta", "number-all-lambda", "number-steps", "number-samples", "count-ratio", nullptr
166 };
167
168 const char *separate_dhdl_file_names[esepdhdlfileNR+1] = {
169     "yes", "no", nullptr
170 };
171
172 const char *dhdl_derivatives_names[edhdlderivativesNR+1] = {
173     "yes", "no", nullptr
174 };
175
176 const char *esol_names[esolNR+1] = {
177     "No", "SPC", "TIP4p", nullptr
178 };
179
180 const char *edispc_names[edispcNR+1] = {
181     "No", "EnerPres", "Ener", "AllEnerPres", "AllEner", nullptr
182 };
183
184 const char *ecm_names[ecmNR+1] = {
185     "Linear", "Angular", "None", "Linear-acceleration-correction", nullptr
186 };
187
188 const char *eann_names[eannNR+1] = {
189     "No", "Single", "Periodic", nullptr
190 };
191
192 const char *eis_names[eisNR+1] = {
193     "No", "GBSA", nullptr
194 };
195
196 const char *egb_names[egbNR+1] = {
197     "Still", "HCT", "OBC", nullptr
198 };
199
200 const char *esa_names[esaNR+1] = {
201     "Ace-approximation", "None", "Still", nullptr
202 };
203
204 const char *ewt_names[ewtNR+1] = {
205     "9-3", "10-4", "table", "12-6", nullptr
206 };
207
208 const char *epull_names[epullNR+1] = {
209     "umbrella", "constraint", "constant-force", "flat-bottom", "flat-bottom-high", "external-potential", nullptr
210 };
211
212 const char *epullg_names[epullgNR+1] = {
213     "distance", "direction", "cylinder", "direction-periodic", "direction-relative", "angle", "dihedral", "angle-axis", nullptr
214 };
215
216 const char *erotg_names[erotgNR+1] = {
217     "iso", "iso-pf", "pm", "pm-pf", "rm", "rm-pf", "rm2", "rm2-pf", "flex", "flex-t", "flex2", "flex2-t", nullptr
218 };
219
220 const char *erotg_fitnames[erotgFitNR+1] = {
221     "rmsd", "norm", "potential", nullptr
222 };
223
224 const char *eSwapTypes_names[eSwapTypesNR+1] = {
225     "no", "X", "Y", "Z", nullptr
226 };
227
228 const char *eSwapFixedGrp_names[eSwapFixedGrpNR+1] = {
229     "Split0", "Split1", "Solvent", nullptr
230 };
231
232
233 const char *eQMmethod_names[eQMmethodNR+1] = {
234     "AM1", "PM3", "RHF",
235     "UHF", "DFT", "B3LYP", "MP2", "CASSCF", "B3LYPLAN",
236     "DIRECT", nullptr
237 };
238
239 const char *eQMbasis_names[eQMbasisNR+1] = {
240     "STO3G", "STO-3G", "3-21G",
241     "3-21G*", "3-21+G*", "6-21G",
242     "6-31G", "6-31G*", "6-31+G*",
243     "6-311G", nullptr
244 };
245
246 const char *eQMMMscheme_names[eQMMMschemeNR+1] = {
247     "normal", "ONIOM", nullptr
248 };
249
250 const char *gmx_nblist_geometry_names[GMX_NBLIST_GEOMETRY_NR+1] = {
251     "Particle-Particle", "Water3-Particle", "Water3-Water3", "Water4-Particle", "Water4-Water4", "CG-CG", nullptr
252 };
253
254 const char *gmx_nblist_interaction_names[GMX_NBLIST_INTERACTION_NR+1] = {
255     "Standard", "Free_Energy", nullptr
256 };
257
258 const char *gmx_nbkernel_elec_names[GMX_NBKERNEL_ELEC_NR+1] =
259 {
260     "None", "Coulomb", "Reaction-Field", "Cubic-Spline-Table", "Generalized-Born", "Ewald", nullptr
261 };
262
263 const char *gmx_nbkernel_vdw_names[GMX_NBKERNEL_VDW_NR+1] =
264 {
265     "None", "Lennard-Jones", "Buckingham", "Cubic-Spline-Table", "LJEwald", nullptr
266 };