Use optional instead of magic numbers in preprocessing
[alexxy/gromacs.git] / src / gromacs / gmxpreprocess / nm2type.cpp
index e76a357e0a4e7a3bcf5843688ad2381517388c17..5b54ef7f7fb07ee25c96c3e32b4cb413ac4c2ae2 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2008, The GROMACS development team.
  * Copyright (c) 2013,2014,2015,2016,2017 by the GROMACS development team.
- * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
+ * Copyright (c) 2018,2019,2020,2021, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -334,14 +334,19 @@ int nm2type(int                     nnm,
             double      mm   = nm2t[best].m;
             const char* type = nm2t[best].type;
 
-            int k;
-            if ((k = atype->atomTypeFromName(type)) == NOTSET)
+            auto atomType = atype->atomTypeFromName(type);
+            int  k;
+            if (!atomType.has_value())
             {
                 atoms->atom[i].qB = alpha;
                 atoms->atom[i].m = atoms->atom[i].mB = mm;
                 k                                    = atype->addType(
                         tab, atoms->atom[i], type, InteractionOfType({}, {}), atoms->atom[i].type, atomnr);
             }
+            else
+            {
+                k = *atomType;
+            }
             atoms->atom[i].type  = k;
             atoms->atom[i].typeB = k;
             atoms->atom[i].q     = qq;