diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake
index 120aafd17708781cce94f8163ad0fb1a10306c4e..5861f9dacac2e1aacdeee23ca9ec82bc8e948083 100644
--- a/Applications/Utils/Tests.cmake
+++ b/Applications/Utils/Tests.cmake
@@ -1388,3 +1388,18 @@ AddTest(
     TESTER diff
     DIFF_DATA WESSRivers_cleaned.gml WESSRivers_cleaned.gml
 )
+
+AddTest(
+    NAME ConstructMeshesFromGeometry_square_lines_and_points
+    PATH MeshGeoToolsLib/ConstructMeshesFromGeometry
+    WORKING_DIRECTORY ${Data_BINARY_DIR}/<PATH>
+    EXECUTABLE constructMeshesFromGeometry
+    EXECUTABLE_ARGS -m ${Data_SOURCE_DIR}/<PATH>/square_1x1_quad8_1e2.vtu -g ${Data_SOURCE_DIR}/<PATH>/square_1x1.gml
+    TESTER vtkdiff-mesh
+    DIFF_DATA
+    square_1x1_geometry_origin.vtu square_1x1_geometry_origin.vtu 1e-16
+    square_1x1_geometry_left.vtu   square_1x1_geometry_left.vtu 1e-16
+    square_1x1_geometry_right.vtu  square_1x1_geometry_right.vtu 1e-16
+    square_1x1_geometry_bottom.vtu square_1x1_geometry_bottom.vtu 1e-16
+    square_1x1_geometry_top.vtu    square_1x1_geometry_top.vtu 1e-16
+)
diff --git a/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp b/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp
index 8ae963b1395197df9601097c241befda05985ac9..f71f69583c69da71a09f94f1cb461bcd9aaf6e46 100644
--- a/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp
+++ b/MeshGeoToolsLib/BoundaryElementsAlongPolyline.cpp
@@ -80,14 +80,14 @@ MeshLib::Element* modifyEdgeNodeOrdering(
         {
             std::array nodes = {const_cast<MeshLib::Node*>(e->getNode(1)),
                                 const_cast<MeshLib::Node*>(e->getNode(0))};
-            return new MeshLib::Line(nodes);
+            return new MeshLib::Line(nodes, e->getID());
         }
         if (auto const* e = dynamic_cast<MeshLib::Line3 const*>(&edge))
         {
             std::array nodes = {const_cast<MeshLib::Node*>(e->getNode(1)),
                                 const_cast<MeshLib::Node*>(e->getNode(0)),
                                 const_cast<MeshLib::Node*>(e->getNode(2))};
-            return new MeshLib::Line3(nodes);
+            return new MeshLib::Line3(nodes, e->getID());
         }
         OGS_FATAL("Not implemented for element type {:s}", typeid(edge).name());
     }
@@ -102,18 +102,18 @@ namespace MeshGeoToolsLib
 BoundaryElementsAlongPolyline::BoundaryElementsAlongPolyline(
     MeshLib::Mesh const& mesh, MeshNodeSearcher const& mshNodeSearcher,
     GeoLib::Polyline const& ply)
-    : _mesh(mesh), _ply(ply)
+    : _ply(ply)
 {
     // search nodes and elements located along the polyline
     auto node_ids_on_poly = mshNodeSearcher.getMeshNodeIDs(ply);
-    MeshLib::ElementSearch es(_mesh);
+    MeshLib::ElementSearch es(mesh);
     es.searchByNodeIDs(node_ids_on_poly);
     auto const& ele_ids_near_ply = es.getSearchedElementIDs();
 
     // check all edges of the elements near the polyline
     for (auto ele_id : ele_ids_near_ply)
     {
-        auto* e = _mesh.getElement(ele_id);
+        auto* e = mesh.getElement(ele_id);
         // skip line elements
         if (e->getDimension() == 1)
         {
diff --git a/MeshGeoToolsLib/BoundaryElementsAlongPolyline.h b/MeshGeoToolsLib/BoundaryElementsAlongPolyline.h
index 3043e0a33e53020994225612c7af692108f4d32e..6d2c5238a86520233bb73b82170ef4ba73c84512 100644
--- a/MeshGeoToolsLib/BoundaryElementsAlongPolyline.h
+++ b/MeshGeoToolsLib/BoundaryElementsAlongPolyline.h
@@ -46,9 +46,6 @@ public:
     /// destructor
     virtual ~BoundaryElementsAlongPolyline();
 
-    /// return the mesh object
-    MeshLib::Mesh const& getMesh() const { return _mesh; }
-
     /**
      * Deploying this method the user can get access to the underlying
      * GeoLib::Polyline.
@@ -67,7 +64,6 @@ public:
     }
 
 private:
-    MeshLib::Mesh const& _mesh;
     GeoLib::Polyline const& _ply;
     std::vector<MeshLib::Element*> _boundary_elements;
 };
diff --git a/MeshGeoToolsLib/BoundaryElementsAtPoint.cpp b/MeshGeoToolsLib/BoundaryElementsAtPoint.cpp
index 472b938cd6bf65cb7d88775eb9ecf83fb82b6188..015f8e32db5707885a1e3823fb03c41f9d86f437 100644
--- a/MeshGeoToolsLib/BoundaryElementsAtPoint.cpp
+++ b/MeshGeoToolsLib/BoundaryElementsAtPoint.cpp
@@ -26,7 +26,7 @@ namespace MeshGeoToolsLib
 BoundaryElementsAtPoint::BoundaryElementsAtPoint(
     MeshLib::Mesh const& mesh, MeshNodeSearcher const& mshNodeSearcher,
     GeoLib::Point const& point, const bool multiple_nodes_allowed)
-    : _mesh(mesh), _point(point)
+    : _point(point)
 {
     auto const node_ids = mshNodeSearcher.getMeshNodeIDs(_point);
 
@@ -62,7 +62,7 @@ BoundaryElementsAtPoint::BoundaryElementsAtPoint(
     if (node_ids.size() == 1)
     {
         std::array<MeshLib::Node*, 1> const nodes = {
-            {const_cast<MeshLib::Node*>(_mesh.getNode(node_ids[0]))}};
+            {const_cast<MeshLib::Node*>(mesh.getNode(node_ids[0]))}};
 
         _boundary_elements.push_back(new MeshLib::Point{nodes, node_ids[0]});
         return;
@@ -103,7 +103,7 @@ BoundaryElementsAtPoint::BoundaryElementsAtPoint(
         MathLib::sqrDist(*mesh_nodes[nearest_node_id], point));
 
     std::array<MeshLib::Node*, 1> const nodes = {
-        {const_cast<MeshLib::Node*>(_mesh.getNode(nearest_node_id))}};
+        {const_cast<MeshLib::Node*>(mesh.getNode(nearest_node_id))}};
 
     _boundary_elements.push_back(new MeshLib::Point{nodes, nearest_node_id});
 }
diff --git a/MeshGeoToolsLib/BoundaryElementsAtPoint.h b/MeshGeoToolsLib/BoundaryElementsAtPoint.h
index 4894112cd09413e214f92941c4552d05b20d2039..ac28fdf2f14472b54c5daa6606460d24b8dfc220 100644
--- a/MeshGeoToolsLib/BoundaryElementsAtPoint.h
+++ b/MeshGeoToolsLib/BoundaryElementsAtPoint.h
@@ -46,11 +46,6 @@ public:
 
     ~BoundaryElementsAtPoint();
 
-    MeshLib::Mesh const& getMesh() const
-    {
-        return _mesh;
-    }
-
     GeoLib::Point const& getPoint() const
     {
         return _point;
@@ -63,7 +58,6 @@ public:
     }
 
 private:
-    MeshLib::Mesh const& _mesh;
     GeoLib::Point const& _point;
     std::vector<MeshLib::Element*> _boundary_elements;
 };
diff --git a/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp b/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp
index a28c042ff16a99f836489d6c5d9b28cb37f20e3c..4cb8cc7d560fd139fb7d1c57658af7d8c557550e 100644
--- a/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp
+++ b/MeshGeoToolsLib/BoundaryElementsOnSurface.cpp
@@ -20,18 +20,18 @@ namespace MeshGeoToolsLib
 BoundaryElementsOnSurface::BoundaryElementsOnSurface(
     MeshLib::Mesh const& mesh, MeshNodeSearcher const& mshNodeSearcher,
     GeoLib::Surface const& sfc)
-    : _mesh(mesh), _sfc(sfc)
+    : _sfc(sfc)
 {
     // search elements near the surface
     auto node_ids_on_sfc = mshNodeSearcher.getMeshNodeIDs(sfc);
-    MeshLib::ElementSearch es(_mesh);
+    MeshLib::ElementSearch es(mesh);
     es.searchByNodeIDs(node_ids_on_sfc);
     auto& ele_ids_near_sfc = es.getSearchedElementIDs();
 
     // get a list of faces made of the nodes
     for (auto ele_id : ele_ids_near_sfc)
     {
-        auto* e = _mesh.getElement(ele_id);
+        auto* e = mesh.getElement(ele_id);
         // skip internal elements
         if (!e->isBoundaryElement())
         {
diff --git a/MeshGeoToolsLib/BoundaryElementsOnSurface.h b/MeshGeoToolsLib/BoundaryElementsOnSurface.h
index bf92f5107b59b06c3ff0c5bc933b8cb702306e5f..962b1b7f37183d3d3ffe27d4db9aaa596acee223 100644
--- a/MeshGeoToolsLib/BoundaryElementsOnSurface.h
+++ b/MeshGeoToolsLib/BoundaryElementsOnSurface.h
@@ -45,9 +45,6 @@ public:
     /// destructor
     virtual ~BoundaryElementsOnSurface();
 
-    /// return the mesh object
-    MeshLib::Mesh const& getMesh() const {return _mesh;}
-
     /**
      * Deploying this method the user can get access to the underlying
      * GeoLib::Surface.
@@ -61,7 +58,6 @@ public:
     std::vector<MeshLib::Element*> const& getBoundaryElements() const {return _boundary_elements;}
 
 private:
-    MeshLib::Mesh const& _mesh;
     GeoLib::Surface const& _sfc;
     std::vector<MeshLib::Element*> _boundary_elements;
 };
diff --git a/MeshGeoToolsLib/BoundaryElementsSearcher.cpp b/MeshGeoToolsLib/BoundaryElementsSearcher.cpp
index 7344a803131b938bbc7c5cf0e37cfb5fcc74ef94..aabc3e88d1930b3b2dc0eace6a2e7da0b1ff88bc 100644
--- a/MeshGeoToolsLib/BoundaryElementsSearcher.cpp
+++ b/MeshGeoToolsLib/BoundaryElementsSearcher.cpp
@@ -25,7 +25,7 @@ namespace MeshGeoToolsLib
 {
 BoundaryElementsSearcher::BoundaryElementsSearcher(
     MeshLib::Mesh const& mesh, MeshNodeSearcher const& mshNodeSearcher)
-    : _mesh(mesh), _mshNodeSearcher(mshNodeSearcher)
+    : mesh(mesh), _mshNodeSearcher(mshNodeSearcher)
 {
 }
 
@@ -86,7 +86,7 @@ BoundaryElementsSearcher::getBoundaryElements(GeoLib::GeoObject const& geoObj,
                 get_cached_item = &BoundaryElementsAtPoint::getPoint;
             return MeshGeoToolsLib::getBoundaryElements(
                 _boundary_elements_at_point, get_cached_item,
-                *dynamic_cast<const GeoLib::Point*>(&geoObj), _mesh,
+                *dynamic_cast<const GeoLib::Point*>(&geoObj), mesh,
                 _mshNodeSearcher, multiple_nodes_allowed);
         }
         break;
@@ -97,7 +97,7 @@ BoundaryElementsSearcher::getBoundaryElements(GeoLib::GeoObject const& geoObj,
                 get_cached_item = &BoundaryElementsAlongPolyline::getPolyline;
             return MeshGeoToolsLib::getBoundaryElements(
                 _boundary_elements_along_polylines, get_cached_item,
-                *dynamic_cast<const GeoLib::Polyline*>(&geoObj), _mesh,
+                *dynamic_cast<const GeoLib::Polyline*>(&geoObj), mesh,
                 _mshNodeSearcher, false);
         }
         break;
@@ -107,7 +107,7 @@ BoundaryElementsSearcher::getBoundaryElements(GeoLib::GeoObject const& geoObj,
                 get_cached_item = &BoundaryElementsOnSurface::getSurface;
             return MeshGeoToolsLib::getBoundaryElements(
                 _boundary_elements_along_surfaces, get_cached_item,
-                *dynamic_cast<const GeoLib::Surface*>(&geoObj), _mesh,
+                *dynamic_cast<const GeoLib::Surface*>(&geoObj), mesh,
                 _mshNodeSearcher, false);
         }
         break;
diff --git a/MeshGeoToolsLib/BoundaryElementsSearcher.h b/MeshGeoToolsLib/BoundaryElementsSearcher.h
index 6840b07bab9b5ac028c2fd3551d1dbcd2fe366c7..19ceacbdeede401164b25a85b40e82f69642ec29 100644
--- a/MeshGeoToolsLib/BoundaryElementsSearcher.h
+++ b/MeshGeoToolsLib/BoundaryElementsSearcher.h
@@ -60,7 +60,7 @@ public:
     std::vector<MeshLib::Element*> const& getBoundaryElements(
         GeoLib::GeoObject const& geoObj, bool const multiple_nodes_allowed);
 
-    MeshLib::Mesh const& _mesh;
+    MeshLib::Mesh const& mesh;
 
 private:
     MeshNodeSearcher const& _mshNodeSearcher;
diff --git a/MeshGeoToolsLib/ConstructMeshesFromGeometries.cpp b/MeshGeoToolsLib/ConstructMeshesFromGeometries.cpp
index ed65130d65871cfbff73a50399baaa8706f5211f..583e36593c808f3443a079ffc1379e0d5dca9f2f 100644
--- a/MeshGeoToolsLib/ConstructMeshesFromGeometries.cpp
+++ b/MeshGeoToolsLib/ConstructMeshesFromGeometries.cpp
@@ -68,29 +68,26 @@ constructAdditionalMeshesFromGeometries(
             DBUG("Creating mesh from geometry {:s} {:s}.", vec_name,
                  geometry_name);
 
-#ifdef USE_PETSC
-            // this mesh isn't yet a NodePartitionedMesh
             auto subdomain_mesh = createMeshFromElementSelection(
                 meshNameFromGeometry(vec_name, geometry_name),
                 MeshLib::cloneElements(
                     boundary_element_searcher.getBoundaryElements(
                         geometry, multiple_nodes_allowed)));
 
-            // the bulk_mesh, that is a NodePartitionedMesh, is needed to
+#ifdef USE_PETSC
+            // The subdomain_mesh is not yet a NodePartitionedMesh.
+            // The bulk_mesh, which is a NodePartitionedMesh, is needed to
             // construct the subdomain NodePartitionedMesh
             auto const* bulk_mesh =
                 dynamic_cast<MeshLib::NodePartitionedMesh const*>(
-                    &boundary_element_searcher._mesh);
+                    &boundary_element_searcher.mesh);
 
             additional_meshes.push_back(
                 MeshLib::transformMeshToNodePartitionedMesh(
                     bulk_mesh, subdomain_mesh.get()));
 #else
-            additional_meshes.emplace_back(createMeshFromElementSelection(
-                meshNameFromGeometry(vec_name, geometry_name),
-                MeshLib::cloneElements(
-                    boundary_element_searcher.getBoundaryElements(
-                        geometry, multiple_nodes_allowed))));
+            // Nothing special to be done in the serial case.
+            additional_meshes.emplace_back(std::move(subdomain_mesh));
 #endif
         }
     }
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1.gml b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1.gml
new file mode 100644
index 0000000000000000000000000000000000000000..d959c7c34c6d9f3fd6e4b7e2c0bb1c774630c77e
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1.gml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml-stylesheet type="text/xsl" href="OpenGeoSysGLI.xsl"?>
+
+<OpenGeoSysGLI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogs="http://www.opengeosys.org">
+    <name>square_1x1_geometry</name>
+    <points>
+        <point id="0" x="0" y="0" z="0" name="origin"/>
+        <point id="1" x="0" y="1" z="0"/>
+        <point id="2" x="1" y="0" z="0"/>
+        <point id="3" x="1" y="1" z="0"/>
+    </points>
+
+    <polylines>
+        <polyline id="0" name="left">
+            <pnt>0</pnt>
+            <pnt>1</pnt>
+        </polyline>
+        <polyline id="1" name="right">
+            <pnt>2</pnt>
+            <pnt>3</pnt>
+        </polyline>
+        <polyline id="2" name="bottom">
+            <pnt>0</pnt>
+            <pnt>2</pnt>
+        </polyline>
+        <polyline id="3" name="top">
+            <pnt>1</pnt>
+            <pnt>3</pnt>
+        </polyline>
+    </polylines>
+</OpenGeoSysGLI>
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_bottom.vtu b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_bottom.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..353d7d25bedf77ebc1d372deec30eac3f49535b0
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_bottom.vtu
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="21"                   NumberOfCells="10"                  >
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="0"                    RangeMax="139"                  offset="0"                   />
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="0"                    RangeMax="9"                    offset="236"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1"                    offset="356"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1040"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1372"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1492"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _qAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAeQAAAAAAAAB7AAAAAAAAAH0AAAAAAAAAfwAAAAAAAACBAAAAAAAAAIMAAAAAAAAAhQAAAAAAAACHAAAAAAAAAIkAAAAAAAAAiwAAAAAAAAA=UAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAJAAAAAAAAAA==+AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACamZmZmZm5PwAAAAAAAAAAAAAAAAAAAACamZmZmZnJPwAAAAAAAAAAAAAAAAAAAAAzMzMzMzPTPwAAAAAAAAAAAAAAAAAAAACamZmZmZnZPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAzMzMzMzPjPwAAAAAAAAAAAAAAAAAAAABmZmZmZmbmPwAAAAAAAAAAAAAAAAAAAACamZmZmZnpPwAAAAAAAAAAAAAAAAAAAADNzMzMzMzsPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAACamZmZmZmpPwAAAAAAAAAAAAAAAAAAAAA0MzMzMzPDPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADQPwAAAAAAAAAAAAAAAAAAAABmZmZmZmbWPwAAAAAAAAAAAAAAAAAAAADNzMzMzMzcPwAAAAAAAAAAAAAAAAAAAACamZmZmZnhPwAAAAAAAAAAAAAAAAAAAADMzMzMzMzkPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADoPwAAAAAAAAAAAAAAAAAAAAA0MzMzMzPrPwAAAAAAAAAAAAAAAAAAAABmZmZmZmbuPwAAAAAAAAAAAAAAAAAAAAA=8AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAAAABAAAAAAAAAAIAAAAAAAAADAAAAAAAAAACAAAAAAAAAAMAAAAAAAAADQAAAAAAAAADAAAAAAAAAAQAAAAAAAAADgAAAAAAAAAEAAAAAAAAAAUAAAAAAAAADwAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAEAAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAEQAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAEgAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAEwAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAFAAAAAAAAAA=UAAAAAAAAAADAAAAAAAAAAYAAAAAAAAACQAAAAAAAAAMAAAAAAAAAA8AAAAAAAAAEgAAAAAAAAAVAAAAAAAAABgAAAAAAAAAGwAAAAAAAAAeAAAAAAAAAA==CgAAAAAAAAAVFRUVFRUVFRUV
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_left.vtu b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_left.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..745def4647e54e942bcc58eb3dbbd69fa35a8d38
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_left.vtu
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="21"                   NumberOfCells="10"                  >
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="0"                    RangeMax="311"                  offset="0"                   />
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="0"                    RangeMax="90"                   offset="236"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="1"                    offset="356"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1040"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1372"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1492"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _qAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAFgAAAAAAAAAhAAAAAAAAACwAAAAAAAAANwAAAAAAAABCAAAAAAAAAE0AAAAAAAAAWAAAAAAAAABjAAAAAAAAAG4AAAAAAAAAegAAAAAAAACPAAAAAAAAAKQAAAAAAAAAuQAAAAAAAADOAAAAAAAAAOMAAAAAAAAA+AAAAAAAAAANAQAAAAAAACIBAAAAAAAANwEAAAAAAAA=UAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAFAAAAAAAAAAeAAAAAAAAACgAAAAAAAAAMgAAAAAAAAA8AAAAAAAAAEYAAAAAAAAAUAAAAAAAAABaAAAAAAAAAA==+AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqZmZmZmbk/AAAAAAAAAAAAAAAAAAAAAJqZmZmZmck/AAAAAAAAAAAAAAAAAAAAADMzMzMzM9M/AAAAAAAAAAAAAAAAAAAAAJqZmZmZmdk/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAADMzMzMzM+M/AAAAAAAAAAAAAAAAAAAAAGZmZmZmZuY/AAAAAAAAAAAAAAAAAAAAAJqZmZmZmek/AAAAAAAAAAAAAAAAAAAAAM3MzMzMzOw/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAJqZmZmZmak/AAAAAAAAAAAAAAAAAAAAADQzMzMzM8M/AAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAGZmZmZmZtY/AAAAAAAAAAAAAAAAAAAAAM3MzMzMzNw/AAAAAAAAAAAAAAAAAAAAAJqZmZmZmeE/AAAAAAAAAAAAAAAAAAAAAMzMzMzMzOQ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOg/AAAAAAAAAAAAAAAAAAAAADQzMzMzM+s/AAAAAAAAAAAAAAAAAAAAAGZmZmZmZu4/AAAAAAAAAAA=8AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAAAABAAAAAAAAAAIAAAAAAAAADAAAAAAAAAACAAAAAAAAAAMAAAAAAAAADQAAAAAAAAADAAAAAAAAAAQAAAAAAAAADgAAAAAAAAAEAAAAAAAAAAUAAAAAAAAADwAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAEAAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAEQAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAEgAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAEwAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAFAAAAAAAAAA=UAAAAAAAAAADAAAAAAAAAAYAAAAAAAAACQAAAAAAAAAMAAAAAAAAAA8AAAAAAAAAEgAAAAAAAAAVAAAAAAAAABgAAAAAAAAAGwAAAAAAAAAeAAAAAAAAAA==CgAAAAAAAAAVFRUVFRUVFRUV
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_origin.vtu b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_origin.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..03fc506c11d9906bedf6ab450c01822cffca3623
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_origin.vtu
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="1"                    NumberOfCells="1"                   >
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="0"                    RangeMax="0"                    offset="0"                   />
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="0"                    RangeMax="0"                    offset="24"                  />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="0"                    offset="48"                  />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="92"                  />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="116"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="140"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _CAAAAAAAAAAAAAAAAAAAAA==CAAAAAAAAAAAAAAAAAAAAA==GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=CAAAAAAAAAAAAAAAAAAAAA==CAAAAAAAAAABAAAAAAAAAA==AQAAAAAAAAAB
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_right.vtu b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_right.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..6c6cb10bfd6a23983cbe32dda3f0df254d84e170
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_right.vtu
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="21"                   NumberOfCells="10"                  >
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="10"                   RangeMax="330"                  offset="0"                   />
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="9"                    RangeMax="99"                   offset="236"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1.4142135624"         offset="356"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1040"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1372"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1492"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _qAAAAAAAAAAKAAAAAAAAABUAAAAAAAAAIAAAAAAAAAArAAAAAAAAADYAAAAAAAAAQQAAAAAAAABMAAAAAAAAAFcAAAAAAAAAYgAAAAAAAABtAAAAAAAAAHgAAAAAAAAAjQAAAAAAAACiAAAAAAAAALcAAAAAAAAAzAAAAAAAAADhAAAAAAAAAPYAAAAAAAAACwEAAAAAAAAgAQAAAAAAADUBAAAAAAAASgEAAAAAAAA=UAAAAAAAAAAJAAAAAAAAABMAAAAAAAAAHQAAAAAAAAAnAAAAAAAAADEAAAAAAAAAOwAAAAAAAABFAAAAAAAAAE8AAAAAAAAAWQAAAAAAAABjAAAAAAAAAA==+AEAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwP5qZmZmZmbk/AAAAAAAAAAAAAAAAAADwP5qZmZmZmck/AAAAAAAAAAAAAAAAAADwPzMzMzMzM9M/AAAAAAAAAAAAAAAAAADwP5qZmZmZmdk/AAAAAAAAAAAAAAAAAADwPwAAAAAAAOA/AAAAAAAAAAAAAAAAAADwPzMzMzMzM+M/AAAAAAAAAAAAAAAAAADwP2ZmZmZmZuY/AAAAAAAAAAAAAAAAAADwP5qZmZmZmek/AAAAAAAAAAAAAAAAAADwP83MzMzMzOw/AAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwP5qZmZmZmak/AAAAAAAAAAAAAAAAAADwPzQzMzMzM8M/AAAAAAAAAAAAAAAAAADwPwAAAAAAANA/AAAAAAAAAAAAAAAAAADwP2ZmZmZmZtY/AAAAAAAAAAAAAAAAAADwP83MzMzMzNw/AAAAAAAAAAAAAAAAAADwP5qZmZmZmeE/AAAAAAAAAAAAAAAAAADwP8zMzMzMzOQ/AAAAAAAAAAAAAAAAAADwPwAAAAAAAOg/AAAAAAAAAAAAAAAAAADwPzQzMzMzM+s/AAAAAAAAAAAAAAAAAADwP2ZmZmZmZu4/AAAAAAAAAAA=8AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAAAABAAAAAAAAAAIAAAAAAAAADAAAAAAAAAACAAAAAAAAAAMAAAAAAAAADQAAAAAAAAADAAAAAAAAAAQAAAAAAAAADgAAAAAAAAAEAAAAAAAAAAUAAAAAAAAADwAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAEAAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAEQAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAEgAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAEwAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAFAAAAAAAAAA=UAAAAAAAAAADAAAAAAAAAAYAAAAAAAAACQAAAAAAAAAMAAAAAAAAAA8AAAAAAAAAEgAAAAAAAAAVAAAAAAAAABgAAAAAAAAAGwAAAAAAAAAeAAAAAAAAAA==CgAAAAAAAAAVFRUVFRUVFRUV
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_top.vtu b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_top.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..7345ebb94b08f951c0d1ffeea5369512551544d9
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_geometry_top.vtu
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="21"                   NumberOfCells="10"                  >
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="appended" RangeMin="110"                  RangeMax="340"                  offset="0"                   />
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="appended" RangeMin="90"                   RangeMax="99"                   offset="236"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="1"                    RangeMax="1.4142135624"         offset="356"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1040"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1372"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1492"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _qAAAAAAAAABuAAAAAAAAAG8AAAAAAAAAcAAAAAAAAABxAAAAAAAAAHIAAAAAAAAAcwAAAAAAAAB0AAAAAAAAAHUAAAAAAAAAdgAAAAAAAAB3AAAAAAAAAHgAAAAAAAAASwEAAAAAAABMAQAAAAAAAE0BAAAAAAAATgEAAAAAAABPAQAAAAAAAFABAAAAAAAAUQEAAAAAAABSAQAAAAAAAFMBAAAAAAAAVAEAAAAAAAA=UAAAAAAAAABaAAAAAAAAAFsAAAAAAAAAXAAAAAAAAABdAAAAAAAAAF4AAAAAAAAAXwAAAAAAAABgAAAAAAAAAGEAAAAAAAAAYgAAAAAAAABjAAAAAAAAAA==+AEAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAACamZmZmZm5PwAAAAAAAPA/AAAAAAAAAACamZmZmZnJPwAAAAAAAPA/AAAAAAAAAAAzMzMzMzPTPwAAAAAAAPA/AAAAAAAAAACamZmZmZnZPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADgPwAAAAAAAPA/AAAAAAAAAAAzMzMzMzPjPwAAAAAAAPA/AAAAAAAAAABmZmZmZmbmPwAAAAAAAPA/AAAAAAAAAACamZmZmZnpPwAAAAAAAPA/AAAAAAAAAADNzMzMzMzsPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAACamZmZmZmpPwAAAAAAAPA/AAAAAAAAAAA0MzMzMzPDPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADQPwAAAAAAAPA/AAAAAAAAAABmZmZmZmbWPwAAAAAAAPA/AAAAAAAAAADNzMzMzMzcPwAAAAAAAPA/AAAAAAAAAACamZmZmZnhPwAAAAAAAPA/AAAAAAAAAADMzMzMzMzkPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADoPwAAAAAAAPA/AAAAAAAAAAA0MzMzMzPrPwAAAAAAAPA/AAAAAAAAAABmZmZmZmbuPwAAAAAAAPA/AAAAAAAAAAA=8AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAAAABAAAAAAAAAAIAAAAAAAAADAAAAAAAAAACAAAAAAAAAAMAAAAAAAAADQAAAAAAAAADAAAAAAAAAAQAAAAAAAAADgAAAAAAAAAEAAAAAAAAAAUAAAAAAAAADwAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAEAAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAEQAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAEgAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAEwAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAFAAAAAAAAAA=UAAAAAAAAAADAAAAAAAAAAYAAAAAAAAACQAAAAAAAAAMAAAAAAAAAA8AAAAAAAAAEgAAAAAAAAAVAAAAAAAAABgAAAAAAAAAGwAAAAAAAAAeAAAAAAAAAA==CgAAAAAAAAAVFRUVFRUVFRUV
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_quad8_1e2.vtu b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_quad8_1e2.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..32a0c26bd0dc9a87fa9d9075370f82e41e0058a3
--- /dev/null
+++ b/Tests/Data/MeshGeoToolsLib/ConstructMeshesFromGeometry/square_1x1_quad8_1e2.vtu
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="341" NumberOfCells="100">
+      <PointData>
+      </PointData>
+      <CellData>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary" RangeMin="0" RangeMax="1.4142135624">
+          AQAAAACAAAD4HwAAAwQAAA==eJx1WEuK3TAQnDsl+9wmd0pu8I6Q9awEEzAEBgRZvEEhWDgYHSHMM81QP+1ULlqtakvq7qcnP75/ex8/vni8Cf7pMX4Ffhf8GvdgZwj+9TH+BvtT8J8v7+NfWHcFXPddc483wUsHz++CX+Me7AzBSwdvfwpeOvh1V8A1zqgD401w1IH5XXDUge0MwVEHtj8FRx143RVw/a9LB483wWvu+V3w0sHbGYKXDt7+FLx08OuugOs5xv+B8SY4/g/M74KXDt7OEBz/B7Y/Bcf/gdddAf/wi3XweBMc9WV+FxznbGcIjvck25+C4z3J666A6z2N54LxJjieC+Z3wcsPb2cIjueC7U/B8Vzwuivg+i6VDh5vgpcOnt8FLx28nSF4zb39KXjp4NddAdd3GO8HxpvgeD8wvwteOng7Q3C8H9j+FBzvB153BVzzjtLB403w0sHzu+Clg7czBC8dvP0peM39uivgH99ZB483wfGeZH4XvHTwdobg+B+z/Sk47pPXXcHOLeii3z8//HwO56rOEdvbYt7G/Gu/rzG/Yf61398xD2D+NX+L7yXzH+Zf/sR3xe93j/ev1/OI95TX54zn2fuzgg63mFdznGue6g7/X2yxHmF+xT3VKcyvuKf6hfkV91TXML/inuodv9891kFezyPWR16fM9ZN3p8VdKi4ax1xjS3EXess5tc81V/Mx7hrXcZ8jLvWa8zHuGsdx3yMu9Z3fr+78PHeZj2P4P8M+pzCx3ue/VlBh1usm/jerbgzH/NGvqe3WG8yv+bMxzzzVeLu7XfhV9z9fu/Cr7h7f0bY7x7rXK/nEetfr88Z62Lvzwo61HnXOpHfTzzvWkf793YL/CZ8PO9adzMfz7vW48zH8651OvPxvGv97ve7Cx/zVdbzCP7PoM8pfMxv2Z8VdKj3XutizoPwndC+gc+btsBvwsf/UvsMzMf9aP+B+TjXvgTzMa/TfoXf7y58zOtYzyP4P4M+p/Axr2N/VtDhFvsAnM/iPa99Ep//brF/wny857Wvwny857Xfwny857UPw3y857U/4/e7x76N1/OI/Ryvzxn7PN6fFXS4xb5H7QP9fA79lsrruI7ZYr+I+RV35uN7tkvcvf0u/Iq73+9d+KWX92eE/e6xT8X8irv3fwZ9ztjX8v6soEO979rn4foS33ftg/l6dAv8Jnx837Vvxnx837Wfxnx837XPxnx837X/5ve7C7/i5PU8gv8z6HMKH+s49mcFHW6xr4XvyUfcU9+P+dfYYj+Q+RX31CdkfsU99Q+ZX3FPfUXmV9xTv9Hvd499SK/nEfuTXp8z9i29PyvoUHndkvgyfo1N8IoX45h3cZ/wTXB8h3jdPfh5BH9Owf8Dtpa8yQ==
+        </DataArray>
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="binary" RangeMin="0" RangeMax="340">
+          AQAAAACAAAAAGQAAuwQAAA==eJxdl0XUkFUYBvno7s6f7u7+aUFsVGxssRW7JezuFluxMcDG7ha7G7u7Fj6z+OZuZvXMas57zq1S5f9XhPXDeuHB4WHhKeEh2lUNG8hzaHhEeJp87KqFDeU5PDwqPEM+dtXDRvIcGS4Mz5KPXY2wsTxHh4vDc+RjVzNsIs+i8JjwPPnY1QqbyrMkPC68QD52tcNm8hwbnhBeJB+7OmFzeY4PTwovkY9d3bCFPCeGJ4dL5aMzemkVtgzp7fTwivBU7eiltTz0dmZ4lXzs6KWNPPR2dniNfOzopa089HZueJ187OilnTz0dn54vXzs6KW9PPR2YXijfOzopYM89HZxeLN87Oilozz0dml4q3zs6KWTPPR2WXibfOzorkKepeHl4R3y0Rm9dAk7h/R2dbgyvFI7eukqD71dG94tHzt66SYPvS0L75WPHb10l4febgjvl48dvfSQh95uClfJx45eespDb7eED8nHjl56yUNvy8NH5GNHL73lobfbw8fkY0cvfeShtzvDJ+RjVxH2lYfeVoRPyUdn9NI/7BfS2z3hs+Fd2tHLAHno7b7wefnY0ctAeejtgfBF+djRyyB56O3B8GX52NHLYHlWhQ+Hq+VjRy9D5KG3R8PX5GNHL0PlobfHwzfkY0cvw+ShtyfDt+RjRy/D5aG3p8N35GNHdyPkobdnwvfkozN6GRWODOnthfDD8Dnt6GW0PPT2UvixfOzoZYw89PZK+Kl87OhlrDz09mr4uXzs6GWcPPT2eviFfOzoZbw89PZm+JV87Ohlgjz09nb4jXzs6GWiPPT2bvidfOzopVIeens//EE+dnQ3SR56+yD8ST46o5cp4eSQ3j4Jfw0/0o5epspDb5+Fv8vHjl6myUNva8I/5WNHL9Plobcvw7/lY0cvM+Sht6/Df+VjRy9ryUNv34ZFUfaxo5eZ8tDb92G1ouxjRy+z5KG3H8MaRdnHrjJcWx56+zmsVZR97Ohutjz09ktYpyj76Ixe1g3XCentj7B+9r9pRy/ryUNvf4UNi7KPHb2sLw+9/RM2Lso+dvSygTz0xke9aVH2saOXDeWht6rZNefDX5R39LKRPPRWPWxZlH3s6GWOPPRWM2wtHzt62VgeeqsdtpWPHb1sIg+91Q3by8eO7jaVh97qhR3lozN62SycG9Jbo7Bz2KAo7+hlc3norUnYVT529LKFPPTWLOwuHzt62VIeemsR9pSPHb1sJQ+9tQp7y8eOXraWh97ahH3lY0cv28hDb+3C/vKxo5d58tBbh3CgfOzoZVt56K1TOFg+dnS3nTz0VhEOlY/O6GWHcPuQ3rqFI8IuRXlHLzvKQ289wlHysaOXneSht17hGPnY0cvO8tBbn3CcfOzoZRd56K1fOEE+dvQyXx56GxBWyseOXnaVh94GhZPlYzcv3E0eehsSTpWPHb3sLg+9DQuny8eO7vaQh96Gc+/lozN62SvcM6S30dzbcGRR3tHL3vLQ29hwtnzs6GUfeehtPPdaPnb0sq889DaRey0fO3pZIA+9TeJey8eOXvaTh96mcK/lY0cv+8tDb9O41/Kxo5cD5KG3Gdxr+djRy4Hy0NtM7rV87OjuIHnobRb3Wr7/ABCELb4=
+        </DataArray>
+        <DataArray type="Int64" Name="offsets" format="binary" RangeMin="8" RangeMax="800">
+          AQAAAACAAAAgAwAApgAAAA==eJwtxRFghAAAAMC2SRiGYRg+huFjGIZhGIZh+BiGYRiGYfgYhoPu5MLgETl24tSZX85d+O3SlWs3bt259+DRH0+evXj15t2HT399+Xbw8xQ6cuzEqTO/nLvw26Ur127cunPvwaM/njx78erNuw+f/vry7eD3KXTk2IlTZ345d+G3S1eu3bh1596DR388efbi1Zt3Hz799eXbwd9T6MixE/8DLbMvQA==
+        </DataArray>
+        <DataArray type="UInt8" Name="types" format="binary" RangeMin="23" RangeMax="23">
+          AQAAAACAAABkAAAADAAAAA==eJwTF6c9AADGKQj9
+        </DataArray>
+        <DataArray type="Int64" Name="faces" format="binary" RangeMin="0" RangeMax="0">
+          AQAAAACAAAAgAwAAEAAAAA==eJxjYBgFo2AU4AIAAyAAAQ==
+        </DataArray>
+        <DataArray type="Int64" Name="faceoffsets" format="binary" RangeMin="1" RangeMax="100">
+          AQAAAACAAAAgAwAArwAAAA==eJwtxdciAgAAAEAjkYRskazskpUtFJGRUbYI//8NHrp7ueamhha3OuA2B93uDofc6bC7HHG3e9zrqPvc7wEPesjDHvGoYx7zuOOecMKTnvK0ZzzrpOc87wUvesnLXnHKaa864zWve8Ob3nLW297xrve87wMf+sg5H/vEp8674DOfu+gLX7rkK1/7xrcu+873fvCjK676yc9+8avf/O4Pf7rmL3+77h//+s//+ewTuw==
+        </DataArray>
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake
index b9d12cd01b9ad8d5cab18f7ac93776988ad0deae..4badb7feb472e14ec0a7a8166ebde2d4ff73ba21 100644
--- a/scripts/cmake/test/AddTest.cmake
+++ b/scripts/cmake/test/AddTest.cmake
@@ -518,7 +518,7 @@ Use six arguments version of AddTest with absolute and relative tolerances"
         math(EXPR DiffDataLengthMod3 "${DiffDataLength} % 3")
         if(${DiffDataLengthMod3} EQUAL 0)
             math(EXPR DiffDataLastIndex "${DiffDataLength}-1")
-            foreach(DiffDataIndex RANGE 0 ${DiffDataLastIndex} 4)
+            foreach(DiffDataIndex RANGE 0 ${DiffDataLastIndex} 3)
                 list(GET AddTest_DIFF_DATA "${DiffDataIndex}"
                      REFERENCE_VTK_FILE
                 )