Make temperature and pressure coupling enums enum classes
authorPascal Merz <pascal.merz@me.com>
Tue, 9 Feb 2021 10:06:15 +0000 (10:06 +0000)
committerAndrey Alekseenko <al42and@gmail.com>
Tue, 9 Feb 2021 10:06:15 +0000 (10:06 +0000)
commit4d5aeff9c1ac037fcf6c7b65ed37b905eba00afa
tree8a51ffca52030c8710f76ea775cdae26b1a8b013
parentf6d04f4314a9e65a7b949b9c88693b928ea44d4c
Make temperature and pressure coupling enums enum classes

This makes the plain enums denoting the temperature and pressure
coupling enums enum classes. Most of this change is simple renaming,
changing etcXXX into TemperatureCoupling::XXX, and epcXXX into
PressureCoupling::XXX.

As these are the first of many enums in md_enums.h being refactored
into enum classes, this also introduces some reusable functionality,
including a templated function mapping enums to a string representing
the functionality, and helper functions used when reading inputrec
from file or comparing inputrec instances.

This keeps explicit static_casts from / to int in two places: When
serializing the inputrec, and when transferring the values over
multiple simulations.
36 files changed:
docs/doxygen/lib/modularsimulator.md
src/gromacs/domdec/domdec_setup.cpp
src/gromacs/domdec/partition.cpp
src/gromacs/fileio/enxio.cpp
src/gromacs/fileio/readinp.cpp
src/gromacs/fileio/readinp.h
src/gromacs/fileio/tpxio.cpp
src/gromacs/gmxpreprocess/grompp.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/mdlib/calc_verletbuf.cpp
src/gromacs/mdlib/constr.cpp
src/gromacs/mdlib/coupling.cpp
src/gromacs/mdlib/coupling.h
src/gromacs/mdlib/energyoutput.cpp
src/gromacs/mdlib/energyoutput.h
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/mdebin_bar.cpp
src/gromacs/mdlib/perf_est.cpp
src/gromacs/mdlib/tests/energyoutput.cpp
src/gromacs/mdlib/tests/leapfrogtestdata.cpp
src/gromacs/mdlib/update.cpp
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/replicaexchange.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdtypes/inputrec.cpp
src/gromacs/mdtypes/inputrec.h
src/gromacs/mdtypes/md_enums.cpp
src/gromacs/mdtypes/md_enums.h
src/gromacs/modularsimulator/modularsimulator.cpp
src/gromacs/modularsimulator/velocityscalingtemperaturecoupling.cpp
src/gromacs/modularsimulator/velocityscalingtemperaturecoupling.h
src/gromacs/nbnxm/pairlist_tuning.cpp
src/gromacs/taskassignment/decidegpuusage.cpp
src/gromacs/tools/report_methods.cpp
src/gromacs/utility/compare.h
src/gromacs/utility/iserializer.h