2 * This file is part of the GROMACS molecular simulation package.
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.
7 * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
8 * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
9 * and including many others, as listed in the AUTHORS file in the
10 * top-level source directory and at http://www.gromacs.org.
12 * GROMACS is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Lesser General Public License
14 * as published by the Free Software Foundation; either version 2.1
15 * of the License, or (at your option) any later version.
17 * GROMACS is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Lesser General Public License for more details.
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with GROMACS; if not, see
24 * http://www.gnu.org/licenses, or write to the Free Software Foundation,
25 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27 * If you want to redistribute modifications to GROMACS, please
28 * consider that scientific software is very special. Version
29 * control is crucial - bugs must be traceable. We will be happy to
30 * consider code for inclusion in the official distribution, but
31 * derived work must not be called official GROMACS. Details are found
32 * in the README & COPYING files - if they are missing, get the
33 * official version at http://www.gromacs.org.
35 * To help us fund GROMACS development, we humbly ask that you cite
36 * the research papers on the package. Check out http://www.gromacs.org.
42 const char* enum_name(int index
, int max_index
, const char* const names
[])
44 if (index
< 0 || index
>= max_index
)
46 static const char* undef
= "no name defined";
55 const char* yesno_names
[BOOL_NR
+ 1] = { "no", "yes", nullptr };
57 const char* ei_names
[eiNR
+ 1] = { "md", "steep", "cg", "bd", "sd2 - removed",
58 "nm", "l-bfgs", "tpi", "tpic", "sd",
59 "md-vv", "md-vv-avek", "mimic", nullptr };
61 const char* ecutscheme_names
[ecutsNR
+ 1] = { "Verlet", "Group", nullptr };
63 const char* erefscaling_names
[erscNR
+ 1] = { "No", "All", "COM", nullptr };
65 const char* eel_names
[eelNR
+ 1] = { "Cut-off",
67 "Generalized-Reaction-Field (unused)",
75 "Generalized-Born (unused)",
76 "Reaction-Field-nec (unsupported)",
77 "Encad-shift (unused)",
81 "Reaction-Field-zero",
84 const char* eewg_names
[eewgNR
+ 1] = { "3d", "3dc", nullptr };
86 const char* eljpme_names
[eljpmeNR
+ 1] = { "Geometric", "Lorentz-Berthelot", nullptr };
88 const char* evdw_names
[evdwNR
+ 1] = { "Cut-off", "Switch", "Shift", "User", "Encad-shift (unused)",
91 const char* econstr_names
[econtNR
+ 1] = { "Lincs", "Shake", nullptr };
93 const char* eintmod_names
[eintmodNR
+ 1] = {
94 "Potential-shift-Verlet", "Potential-shift", "None", "Potential-switch",
95 "Exact-cutoff", "Force-switch", nullptr
98 const char* etcoupl_names
[etcNR
+ 1] = {
99 "No", "Berendsen", "Nose-Hoover", "yes", "Andersen", "Andersen-massive", "V-rescale", nullptr
100 }; /* yes is alias for berendsen */
102 const char* epcoupl_names
[epcNR
+ 1] = { "No", "Berendsen", "Parrinello-Rahman",
103 "Isotropic", "MTTK", "C-rescale",
104 nullptr }; /* isotropic is alias for berendsen */
106 const char* epcoupltype_names
[epctNR
+ 1] = { "Isotropic", "Semiisotropic", "Anisotropic",
107 "Surface-Tension", nullptr };
109 const char* edisre_names
[edrNR
+ 1] = { "No", "Simple", "Ensemble", nullptr };
111 const char* edisreweighting_names
[edrwNR
+ 1] = { "Conservative", "Equal", nullptr };
113 const char* enbf_names
[eNBF_NR
+ 1] = { "", "LJ", "Buckingham", nullptr };
115 const char* ecomb_names
[eCOMB_NR
+ 1] = { "", "Geometric", "Arithmetic", "GeomSigEps", nullptr };
117 const char* esimtemp_names
[esimtempNR
+ 1] = { "geometric", "exponential", "linear", nullptr };
119 const char* efep_names
[efepNR
+ 1] = { "no", "yes", "static", "slow-growth", "expanded", nullptr };
121 const char* efpt_names
[efptNR
+ 1] = { "fep-lambdas", "mass-lambdas", "coul-lambdas",
122 "vdw-lambdas", "bonded-lambdas", "restraint-lambdas",
123 "temperature-lambdas", nullptr };
125 const char* efpt_singular_names
[efptNR
+ 1] = { "fep-lambda", "mass-lambda",
126 "coul-lambda", "vdw-lambda",
127 "bonded-lambda", "restraint-lambda",
128 "temperature-lambda", nullptr };
130 const char* edHdLPrintEnergy_names
[edHdLPrintEnergyNR
+ 1] = { "no", "total", "potential", "yes", nullptr };
132 const char* elamstats_names
[elamstatsNR
+ 1] = {
133 "no", "metropolis-transition", "barker-transition",
134 "minvar", "wang-landau", "weighted-wang-landau",
138 const char* elmcmove_names
[elmcmoveNR
+ 1] = { "no", "metropolis", "barker",
139 "gibbs", "metropolized-gibbs", nullptr };
141 const char* elmceq_names
[elmceqNR
+ 1] = { "no", "yes",
142 "wl-delta", "number-all-lambda",
143 "number-steps", "number-samples",
144 "count-ratio", nullptr };
146 const char* separate_dhdl_file_names
[esepdhdlfileNR
+ 1] = { "yes", "no", nullptr };
148 const char* dhdl_derivatives_names
[edhdlderivativesNR
+ 1] = { "yes", "no", nullptr };
150 const char* esol_names
[esolNR
+ 1] = { "No", "SPC", "TIP4p", nullptr };
152 const char* edispc_names
[edispcNR
+ 1] = { "No", "EnerPres", "Ener",
153 "AllEnerPres", "AllEner", nullptr };
155 const char* ecm_names
[ecmNR
+ 1] = { "Linear", "Angular", "None", "Linear-acceleration-correction", nullptr };
157 const char* eann_names
[eannNR
+ 1] = { "No", "Single", "Periodic", nullptr };
159 const char* ewt_names
[ewtNR
+ 1] = { "9-3", "10-4", "table", "12-6", nullptr };
161 const char* epull_names
[epullNR
+ 1] = { "umbrella", "constraint", "constant-force",
162 "flat-bottom", "flat-bottom-high", "external-potential",
165 const char* epullg_names
[epullgNR
+ 1] = { "distance", "direction", "cylinder",
166 "direction-periodic", "direction-relative", "angle",
167 "dihedral", "angle-axis", nullptr };
169 const char* erotg_names
[erotgNR
+ 1] = { "iso", "iso-pf", "pm", "pm-pf", "rm",
170 "rm-pf", "rm2", "rm2-pf", "flex", "flex-t",
171 "flex2", "flex2-t", nullptr };
173 const char* erotg_fitnames
[erotgFitNR
+ 1] = { "rmsd", "norm", "potential", nullptr };
175 const char* eSwapTypes_names
[eSwapTypesNR
+ 1] = { "no", "X", "Y", "Z", nullptr };
177 const char* eSwapFixedGrp_names
[eSwapFixedGrpNR
+ 1] = { "Split0", "Split1", "Solvent", nullptr };
179 const char* gmx_nblist_geometry_names
[GMX_NBLIST_GEOMETRY_NR
+ 1] = {
180 "Particle-Particle", "Water3-Particle", "Water3-Water3", "Water4-Particle",
181 "Water4-Water4", "CG-CG", nullptr
184 const char* gmx_nblist_interaction_names
[GMX_NBLIST_INTERACTION_NR
+ 1] = { "Standard",
185 "Free_Energy", nullptr };
187 const char* gmx_nbkernel_elec_names
[GMX_NBKERNEL_ELEC_NR
+ 1] = {
188 "None", "Coulomb", "Reaction-Field", "Cubic-Spline-Table", "Ewald", nullptr
191 const char* gmx_nbkernel_vdw_names
[GMX_NBKERNEL_VDW_NR
+ 1] = { "None", "Lennard-Jones",
192 "Buckingham", "Cubic-Spline-Table",
193 "LJEwald", nullptr };