diff --git a/NumLib/DOF/LocalToGlobalIndexMap.cpp b/NumLib/DOF/LocalToGlobalIndexMap.cpp
index 21fdc1c5d607640376a12d1181e25d3818ebdae3..c435af4b98211ca7dd2c884bc85c8c30efe0e58a 100644
--- a/NumLib/DOF/LocalToGlobalIndexMap.cpp
+++ b/NumLib/DOF/LocalToGlobalIndexMap.cpp
@@ -196,7 +196,7 @@ LocalToGlobalIndexMap::LocalToGlobalIndexMap(
 
 LocalToGlobalIndexMap::LocalToGlobalIndexMap(
     std::vector<std::unique_ptr<MeshLib::MeshSubsets>>&& mesh_subsets,
-    std::vector<std::size_t> const& global_component_ids,
+    std::vector<int> const& global_component_ids,
     std::vector<MeshLib::Element*> const& elements,
     NumLib::MeshComponentMap&& mesh_component_map)
     : _mesh_subsets(std::move(mesh_subsets)),
@@ -211,7 +211,7 @@ LocalToGlobalIndexMap::LocalToGlobalIndexMap(
             "There are %d mesh subsets and %d components.",
             mesh_subsets.size(), global_component_ids.size());
 
-    for (std::size_t i = 0; i < global_component_ids.size(); ++i)
+    for (int i = 0; i < global_component_ids.size(); ++i)
     {
         auto const& mss = *_mesh_subsets[i];
 
@@ -241,7 +241,7 @@ LocalToGlobalIndexMap* LocalToGlobalIndexMap::deriveBoundaryConstrainedMap(
         OGS_FATAL("Expected non-empty vector of component ids.");
 
     // Create a subset of the current mesh component map.
-    std::vector<std::size_t> global_component_ids;
+    std::vector<int> global_component_ids;
 
     for (auto component_id : component_ids)
         global_component_ids.push_back(
@@ -253,7 +253,7 @@ LocalToGlobalIndexMap* LocalToGlobalIndexMap::deriveBoundaryConstrainedMap(
     // Create copies of the mesh_subsets for each of the global components.
     // The last component is moved after the for-loop.
     std::vector<std::unique_ptr<MeshLib::MeshSubsets>> all_mesh_subsets;
-    for (std::size_t i = 0; i < global_component_ids.size() - 1; ++i)
+    for (int i = 0; i < static_cast<int>(global_component_ids.size()) - 1; ++i)
         all_mesh_subsets.emplace_back(new MeshLib::MeshSubsets{*mesh_subsets});
     all_mesh_subsets.emplace_back(std::move(mesh_subsets));
 
diff --git a/NumLib/DOF/LocalToGlobalIndexMap.h b/NumLib/DOF/LocalToGlobalIndexMap.h
index 460d7b73a41e0e373adefd98ddaf91b4627bb266..a5357bbb66836f5c5e1e78ba4e84a29680cfd144 100644
--- a/NumLib/DOF/LocalToGlobalIndexMap.h
+++ b/NumLib/DOF/LocalToGlobalIndexMap.h
@@ -170,7 +170,7 @@ private:
     /// this construtor.
     explicit LocalToGlobalIndexMap(
         std::vector<std::unique_ptr<MeshLib::MeshSubsets>>&& mesh_subsets,
-        std::vector<std::size_t> const& global_component_ids,
+        std::vector<int> const& global_component_ids,
         std::vector<MeshLib::Element*> const& elements,
         NumLib::MeshComponentMap&& mesh_component_map);
 
@@ -190,8 +190,7 @@ private:
 
     /// The global component id for the specific variable (like velocity) and a
     /// component (like x, or y, or z).
-    std::size_t getGlobalComponent(int const variable_id,
-                                   int const component_id) const
+    int getGlobalComponent(int const variable_id, int const component_id) const
     {
         return _variable_component_offsets[variable_id] + component_id;
     }
diff --git a/NumLib/DOF/MeshComponentMap.cpp b/NumLib/DOF/MeshComponentMap.cpp
index 0859266c0c61a4974d1adbb16de53e0d90bc1ca9..401a383447657c947db61b007cc15e044fb9f04a 100644
--- a/NumLib/DOF/MeshComponentMap.cpp
+++ b/NumLib/DOF/MeshComponentMap.cpp
@@ -146,7 +146,7 @@ MeshComponentMap::MeshComponentMap(
 #endif // end of USE_PETSC
 
 MeshComponentMap MeshComponentMap::getSubset(
-    std::vector<std::size_t> const& component_ids,
+    std::vector<int> const& component_ids,
     MeshLib::MeshSubsets const& mesh_subsets) const
 {
     // New dictionary for the subset.
@@ -158,13 +158,13 @@ MeshComponentMap MeshComponentMap::getSubset(
         // Lookup the locations in the current mesh component map and
         // insert the full lines into the subset dictionary.
         for (std::size_t j = 0; j < mesh_subset->getNumberOfNodes(); j++)
-            for (std::size_t component_id : component_ids)
+            for (auto component_id : component_ids)
                 subset_dict.insert(
                     getLine(Location(mesh_id, MeshLib::MeshItemType::Node,
                                      mesh_subset->getNodeID(j)),
                             component_id));
         for (std::size_t j = 0; j < mesh_subset->getNumberOfElements(); j++)
-            for (std::size_t component_id : component_ids)
+            for (auto component_id : component_ids)
                 subset_dict.insert(
                     getLine(Location(mesh_id, MeshLib::MeshItemType::Cell,
                                      mesh_subset->getElementID(j)),
diff --git a/NumLib/DOF/MeshComponentMap.h b/NumLib/DOF/MeshComponentMap.h
index 730510d19d03c2673406c12285a291a2f1f1a691..9248a7461582397a83c271ef48d4b3dfe1484ac4 100644
--- a/NumLib/DOF/MeshComponentMap.h
+++ b/NumLib/DOF/MeshComponentMap.h
@@ -49,7 +49,7 @@ public:
     ///
     /// \param component_ids  The vector of global components id.
     /// \param components components that should remain in the created subset
-    MeshComponentMap getSubset(std::vector<std::size_t> const& component_ids,
+    MeshComponentMap getSubset(std::vector<int> const& component_ids,
                                MeshLib::MeshSubsets const& components) const;
 
     /// The number of dofs including the those located in the ghost nodes.
diff --git a/Tests/NumLib/TestMeshComponentMap.cpp b/Tests/NumLib/TestMeshComponentMap.cpp
index 71bf2b83790f69e596b3a6fe3d8d638df639144a..213cc41a5103c2fc9ed0ad50ce2264a837fcf626 100644
--- a/Tests/NumLib/TestMeshComponentMap.cpp
+++ b/Tests/NumLib/TestMeshComponentMap.cpp
@@ -160,7 +160,7 @@ TEST_F(NumLibMeshComponentMapTest, DISABLED_SubsetOfNodesByComponent)
     MeshLib::MeshSubset const some_nodes_mesh_subset(*mesh, &some_nodes);
     MeshLib::MeshSubsets const selected_component{&some_nodes_mesh_subset};
 
-    std::size_t const selected_component_id = 1;
+    int const selected_component_id = 1;
 
     // Subset the original cmap.
     MeshComponentMap cmap_subset =
@@ -196,7 +196,7 @@ TEST_F(NumLibMeshComponentMapTest, DISABLED_SubsetOfNodesByLocation)
     MeshLib::MeshSubset const some_nodes_mesh_subset(*mesh, &some_nodes);
     MeshLib::MeshSubsets const selected_component{&some_nodes_mesh_subset};
 
-    std::size_t const selected_component_id = 1;
+    int const selected_component_id = 1;
 
     // Subset the original cmap.
     MeshComponentMap cmap_subset =
@@ -233,7 +233,7 @@ TEST_F(NumLibMeshComponentMapTest, DISABLED_MulticomponentVariable)
     MeshLib::MeshSubsets const selected_component{&some_nodes_mesh_subset};
 
     // Subset the original cmap.
-    std::vector<std::size_t> const selected_component_ids = {0, 1};
+    std::vector<int> const selected_component_ids = {0, 1};
     MeshComponentMap cmap_subset =
         cmap->getSubset(selected_component_ids, selected_component);
 
@@ -271,7 +271,7 @@ TEST_F(NumLibMeshComponentMapTest,
     MeshLib::MeshSubsets const selected_component{&some_nodes_mesh_subset};
 
     // Subset the original cmap.
-    std::vector<std::size_t> const selected_component_ids = {1};
+    std::vector<int> const selected_component_ids = {1};
     MeshComponentMap cmap_subset =
         cmap->getSubset(selected_component_ids, selected_component);