diff --git a/FileIO/VtkIO/VtuInterface-impl.h b/FileIO/VtkIO/VtuInterface-impl.h
new file mode 100644
index 0000000000000000000000000000000000000000..9a65a171e342ed891ca7bd967fc4300e9b86cbcb
--- /dev/null
+++ b/FileIO/VtkIO/VtuInterface-impl.h
@@ -0,0 +1,79 @@
+/**
+ * \file VtuInterface-impl.h
+ * \author Lars Bilke
+ * \date   2014-09-25
+ * \brief  Implementation of the VtuInterface class.
+ *
+ * \author Wenqing Wang
+ * \date   2015-10-19
+ * \brief  Added parallel output of vtu pieces, and visualisation
+ *         of the vtu picess via pvtu.
+ *
+ * \copyright
+ * Copyright (c) 2012-2015, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ */
+
+#include "VtuInterface.h"
+
+#include <vtkNew.h>
+#include <vtkSmartPointer.h>
+#include <vtkUnstructuredGrid.h>
+
+#include <logog/include/logog.hpp>
+
+#include "InSituLib/VtkMappedMeshSource.h"
+
+namespace FileIO
+{
+
+template<typename UnstructuredGridWriter>
+bool VtuInterface::writeVTU(std::string const &file_name, const int num_partitions)
+{
+	if(!_mesh)
+	{
+		ERR("VtuInterface::write(): No mesh specified.");
+		return false;
+	}
+
+	// See http://www.paraview.org/Bug/view.php?id=13382
+	if(_data_mode == vtkXMLWriter::Appended)
+		WARN("Appended data mode is currently not supported, written file is not valid!");
+
+	vtkNew<InSituLib::VtkMappedMeshSource> vtkSource;
+	vtkSource->SetMesh(_mesh);
+
+	vtkSmartPointer<UnstructuredGridWriter> vtuWriter =
+		vtkSmartPointer<UnstructuredGridWriter>::New();
+
+	vtuWriter->SetInputConnection(vtkSource->GetOutputPort());
+
+	if(_use_compressor && num_partitions == 0)
+		vtuWriter->SetCompressorTypeToZLib();
+
+	vtuWriter->SetDataMode(_data_mode);
+	if (_data_mode == vtkXMLWriter::Appended)
+		vtuWriter->SetEncodeAppendedData(1);
+	if (_data_mode == vtkXMLWriter::Ascii)
+	{
+		// Mapped data structures for OGS to VTK mesh conversion are not fully
+		// implemented and doing so is not trivial. Therefore for ascii output
+		// the mapped unstructured grid is copied to a regular VTK grid.
+		// See http://www.vtk.org/pipermail/vtkusers/2014-October/089400.html
+		vtkSource->Update();
+		vtkSmartPointer<vtkUnstructuredGrid> tempGrid =
+			vtkSmartPointer<vtkUnstructuredGrid>::New();
+		tempGrid->DeepCopy(vtkSource->GetOutput());
+		vtuWriter->SetInputDataObject(tempGrid);
+	}
+
+	vtuWriter->SetFileName(file_name.c_str());
+	if (num_partitions > 0)
+		vtuWriter->SetNumberOfPieces(num_partitions);
+
+	return (vtuWriter->Write() > 0);
+}
+
+}
diff --git a/FileIO/VtkIO/VtuInterface.cpp b/FileIO/VtkIO/VtuInterface.cpp
index b85dccd787dc1640b55bbe2d970e17d7af0f2f0a..a347ed525afef30d008026d991155574edaa342f 100644
--- a/FileIO/VtkIO/VtuInterface.cpp
+++ b/FileIO/VtkIO/VtuInterface.cpp
@@ -16,11 +16,20 @@
 #include <vtkNew.h>
 #include <vtkXMLUnstructuredGridReader.h>
 #include <vtkXMLUnstructuredGridWriter.h>
+#if defined(USE_PETSC) || defined(USE_MPI)
+#include <vtkXMLPUnstructuredGridWriter.h>
+#endif
 #include <vtkSmartPointer.h>
 #include <vtkUnstructuredGrid.h>
 
 #include <logog/include/logog.hpp>
 
+#include <boost/algorithm/string/erase.hpp>
+
+#ifdef USE_PETSC
+#include <petsc.h>
+#endif
+
 #include "BaseLib/FileTools.h"
 #include "InSituLib/VtkMappedMeshSource.h"
 #include "MeshLib/Mesh.h"
@@ -61,43 +70,34 @@ MeshLib::Mesh* VtuInterface::readVTUFile(std::string const &file_name)
 
 bool VtuInterface::writeToFile(std::string const &file_name)
 {
-	if(!_mesh)
+#ifdef USE_PETSC
+	// Also for other approach with DDC.
+	// In such case, a MPI_Comm argument is need to this member,
+	// and PETSC_COMM_WORLD shoud be replaced with the argument.  
+	int mpi_rank;
+	MPI_Comm_rank(PETSC_COMM_WORLD, &mpi_rank);
+	const std::string file_name_base = boost::erase_last_copy(file_name, ".vtu");
+
+	const std::string file_name_rank = file_name_base + "_"
+	                                   + std::to_string(mpi_rank) + ".vtu";
+	const bool vtu_status_i = writeVTU<vtkXMLUnstructuredGridWriter>(file_name_rank);
+	bool vtu_status = false;
+	MPI_Allreduce(&vtu_status_i, &vtu_status, 1, MPI_C_BOOL, MPI_LAND, PETSC_COMM_WORLD);
+
+	int mpi_size;
+	MPI_Comm_size(PETSC_COMM_WORLD, &mpi_size);
+	bool pvtu_status = false;
+	if (mpi_rank == 0)
 	{
-		ERR("VtuInterface::write(): No mesh specified.");
-		return false;
+		pvtu_status = writeVTU<vtkXMLPUnstructuredGridWriter>(file_name_base + ".pvtu", mpi_size);
 	}
+	MPI_Bcast(&pvtu_status, 1, MPI_C_BOOL, 0, PETSC_COMM_WORLD);
 
-	// See http://www.paraview.org/Bug/view.php?id=13382
-	if(_data_mode == vtkXMLWriter::Appended)
-		WARN("Appended data mode is currently not supported, written file is not valid!");
-
-	vtkNew<InSituLib::VtkMappedMeshSource> vtkSource;
-	vtkSource->SetMesh(_mesh);
-
-	vtkSmartPointer<vtkXMLUnstructuredGridWriter> vtuWriter =
-		vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
-	vtuWriter->SetInputConnection(vtkSource->GetOutputPort());
-	if(_use_compressor)
-		vtuWriter->SetCompressorTypeToZLib();
-
-	vtuWriter->SetDataMode(_data_mode);
-	if (_data_mode == vtkXMLWriter::Appended)
-		vtuWriter->SetEncodeAppendedData(1);
-	if (_data_mode == vtkXMLWriter::Ascii)
-	{
-		// Mapped data structures for OGS to VTK mesh conversion are not fully
-		// implemented and doing so is not trivial. Therefore for ascii output
-		// the mapped unstructured grid is copied to a regular VTK grid.
-		// See http://www.vtk.org/pipermail/vtkusers/2014-October/089400.html
-		vtkSource->Update();
-		vtkSmartPointer<vtkUnstructuredGrid> tempGrid =
-			vtkSmartPointer<vtkUnstructuredGrid>::New();
-		tempGrid->DeepCopy(vtkSource->GetOutput());
-		vtuWriter->SetInputDataObject(tempGrid);
-	}
+	return vtu_status && pvtu_status;
 
-	vtuWriter->SetFileName(file_name.c_str());
-	return (vtuWriter->Write() > 0);
+#else
+	return writeVTU<vtkXMLUnstructuredGridWriter>(file_name);
+#endif
 }
 
 }
diff --git a/FileIO/VtkIO/VtuInterface.h b/FileIO/VtkIO/VtuInterface.h
index 2e4306fd33a64230512178383484b3578c035af6..284388e9709a2e6a76c0c6d3cf66ecd0daec18c8 100644
--- a/FileIO/VtkIO/VtuInterface.h
+++ b/FileIO/VtkIO/VtuInterface.h
@@ -38,13 +38,19 @@ public:
 	~VtuInterface();
 
 	/// Read an unstructured grid from a VTU file
-	/// \returns The converted mesh or a nullptr if reading failed
+	/// \return The converted mesh or a nullptr if reading failed
 	static MeshLib::Mesh* readVTUFile(std::string const &file_name);
 
 	/// Writes the given mesh to file.
-	/// \returns True on success, false on error
+	/// \return True on success, false on error
 	bool writeToFile(std::string const &file_name);
 
+	/// Writes the given mesh to vtu file.
+	/// \param file_name      File name.
+	/// \param num_partitions Number of partiions to be merged.
+	/// \return True on success, false on error
+	template<typename UnstructuredGridWriter> bool writeVTU(std::string const &file_name, const int num_partitions = 1);
+
 private:
 	const MeshLib::Mesh* _mesh;
 	int _data_mode;
@@ -53,4 +59,6 @@ private:
 
 }
 
+#include "VtuInterface-impl.h"
+
 #endif /* VTUINTERFACE_H_ */
diff --git a/FileIO/readMeshFromFile.cpp b/FileIO/readMeshFromFile.cpp
index 5e614dd1d414c4fbec5beccac9d88968c1d4ee78..4b899d7def3f45544199216a99f07222ccd0c4bb 100644
--- a/FileIO/readMeshFromFile.cpp
+++ b/FileIO/readMeshFromFile.cpp
@@ -44,8 +44,7 @@ MeshLib::Mesh* readMeshFromFile(const std::string &file_name)
 {
 #ifdef USE_PETSC
 	NodePartitionedMeshReader read_pmesh(PETSC_COMM_WORLD);
-	std::string const file_name_base =
-	    boost::erase_last_copy(file_name, ".vtk");
+	const std::string file_name_base = BaseLib::dropFileExtension(file_name);
 	return read_pmesh.read(file_name_base);
 #else
 	if (BaseLib::hasFileExtension("msh", file_name))
diff --git a/ProcessLib/GroundwaterFlowProcess.h b/ProcessLib/GroundwaterFlowProcess.h
index 99a5026f47e1fab044f7a90c81a1065405ba64db..b800f8a31b2418e54e54a4d40cd6a9049abf3c97 100644
--- a/ProcessLib/GroundwaterFlowProcess.h
+++ b/ProcessLib/GroundwaterFlowProcess.h
@@ -271,9 +271,8 @@ public:
         {
             MeshLib::Location const l(_mesh.getID(),
                                       MeshLib::MeshItemType::Node, i);
-            auto const global_index =
-                _local_to_global_index_map->getGlobalIndex(
-                    l, 0);  // 0 is the component id.
+            auto const global_index = // 0 is the component id.
+              std::abs( _local_to_global_index_map->getGlobalIndex(l, 0) );
             _x->set(global_index,
                    variable.getInitialConditionValue(*_mesh.getNode(i)));
         }
@@ -326,26 +325,6 @@ public:
     {
         DBUG("Postprocessing GroundwaterFlowProcess.");
 
-#ifdef USE_PETSC // Note: this is only a test
-
-        std::vector<PetscScalar>  u(_x->size());
-        _x->getGlobalVector(&u[0]);
-
-        int rank;
-        MPI_Comm_rank(PETSC_COMM_WORLD, &rank);
-        if(rank == 0)
-        {
-            std::string output_file_name = file_name;
-            boost::erase_last(output_file_name, ".vtu");
-            output_file_name.append(".dat");
-            std::ofstream os(output_file_name);
-            os << "SCALARS HEAD double 1"<<endl;
-            os << "LOOKUP_TABLE default"<< endl;
-            for (std::size_t i = 0; i < u.size(); ++i)
-                 os << u[i] << "\n";
-            os.close();
-        }
-#else
         std::string const property_name = "Result";
 
         // Get or create a property vector for results.
@@ -364,14 +343,28 @@ public:
         }
         assert(result && result->size() == _x->size());
 
+#ifdef USE_PETSC
+        std::unique_ptr<double[]> u(new double[_x->size()]);
+        _x->getGlobalVector(u.get());  // get the global solution
+
+        std::size_t const n = _mesh.getNNodes();
+        for (std::size_t i = 0; i < n; ++i)
+        {
+            MeshLib::Location const l(_mesh.getID(),
+                                      MeshLib::MeshItemType::Node, i);
+            auto const global_index = std::abs(  // 0 is the component id.
+                _local_to_global_index_map->getGlobalIndex(l, 0));
+            (*result)[i] = u[global_index];
+        }
+#else
         // Copy result
         for (std::size_t i = 0; i < _x->size(); ++i)
             (*result)[i] = (*_x)[i];
+#endif
 
         // Write output file
         FileIO::VtuInterface vtu_interface(&_mesh, vtkXMLWriter::Binary, true);
         vtu_interface.writeToFile(file_name);
-#endif
     }
 
     void postTimestep(std::string const& file_name, const unsigned /*timestep*/) override
diff --git a/SimpleTests/MeshTests/MPI/CMakeLists.txt b/SimpleTests/MeshTests/MPI/CMakeLists.txt
index af279231d216ef579a9bca531d9fbeac59a1b7f0..57b7c0ff29d1b4b08774444d24242f4980400876 100644
--- a/SimpleTests/MeshTests/MPI/CMakeLists.txt
+++ b/SimpleTests/MeshTests/MPI/CMakeLists.txt
@@ -39,6 +39,14 @@ set(FilePath "DATA{${ExternalData_SOURCE_ROOT}/EllipticPETSc/,REGEX:.*}")
 set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/ogs" "${FilePath}/quad_20x10_GroundWaterFlow.prj" --  -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10)
 ExternalData_Add_Test(
     data
-    NAME ParallelFEM_GroundWaterFlow
+    NAME ParallelFEM_GroundWaterFlow2D
+    COMMAND  "mpirun" ${MPITestParameters} ${SolverType}
+)
+
+set(FilePath "DATA{${ExternalData_SOURCE_ROOT}/EllipticPETSc/,REGEX:.*}")
+set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/ogs" "${FilePath}/cube_1e3.prj" --  -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10)
+ExternalData_Add_Test(
+    data
+    NAME ParallelFEM_GroundWaterFlow3D
     COMMAND  "mpirun" ${MPITestParameters} ${SolverType}
 )
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 751115779bab91f53a707992969f836a9ada6b92..a07ed3d129766cbb52a78941e6aaa544c49a5f31 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -75,7 +75,7 @@ if(DEFINED ENV{CI})
 	set(TESTRUNNER_ADDITIONAL_ARGUMENTS ${TESTRUNNER_ADDITIONAL_ARGUMENTS} --gtest_shuffle --gtest_repeat=3)
 endif()
 if(OGS_USE_PETSC)
-	set(TEST_FILTER_MPI --gtest_filter=-MPITest*:*Assembler*:*MeshSubsets*:*PointVec*:*InsertZeroPointsInGrid*)
+	set(TEST_FILTER_MPI --gtest_filter=-MPITest*:*Assembler*:*MeshSubsets*:*PointVec*:*InsertZeroPointsInGrid*:InSituMesh.MappedMeshSourceRoundtrip)
 	add_custom_target(tests
 		mpirun -np 1 $<TARGET_FILE:testrunner> ${TESTRUNNER_ADDITIONAL_ARGUMENTS} ${TEST_FILTER_MPI}
 		DEPENDS testrunner
diff --git a/Tests/Data/EllipticPETSc/cube_1e3.prj.md5 b/Tests/Data/EllipticPETSc/cube_1e3.prj.md5
new file mode 100644
index 0000000000000000000000000000000000000000..4d90124f4b27516f954f3a3073ca6a50a60a6e3a
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1e3.prj.md5
@@ -0,0 +1 @@
+51d3982fadd418c03c14e8ed118510b0
diff --git a/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected.pvtu.md5 b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected.pvtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..1c0d79f92c8f475e5be2cf6dc61d3104f179bad7
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected.pvtu.md5
@@ -0,0 +1 @@
+4dc7f4f860e2d1d94251af43d0f07e47
diff --git a/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_0.vtu.md5 b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_0.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..62d858dd37c77a2c6459623024fe4fd5e62c8deb
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_0.vtu.md5
@@ -0,0 +1 @@
+afa5cde3558626bba0ace584947e912b
diff --git a/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_1.vtu.md5 b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_1.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..df7884faf7a866bb6df9d6fd060c676fcaeeab44
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_1.vtu.md5
@@ -0,0 +1 @@
+de202ae9ea232a65fe39f221144c8a37
diff --git a/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_2.vtu.md5 b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_2.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..f1988c69a5eab3459a6db16205da313d00dc61bf
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_2.vtu.md5
@@ -0,0 +1 @@
+3131eb2578d0e57ebbcca606ba46f283
diff --git a/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_visual.pvtu.md5 b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_visual.pvtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..2b34f779f0588ee6a60fafef5425537638db9e5a
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1e3_pcs_0_ts_1_expected_visual.pvtu.md5
@@ -0,0 +1 @@
+5a6726fb2142a57d401fa553d4374c8e
diff --git a/Tests/Data/EllipticPETSc/cube_1x1x1.gml.md5 b/Tests/Data/EllipticPETSc/cube_1x1x1.gml.md5
new file mode 100644
index 0000000000000000000000000000000000000000..699d887fc64ec1459248f5b9c6232734afdac118
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1x1x1.gml.md5
@@ -0,0 +1 @@
+1a31691ad2af86018942cd34feb80b8d
diff --git a/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3.vtu.md5 b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..ba8cd3ba224c86dc36e2ba63fc1305b5a08efa0b
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3.vtu.md5
@@ -0,0 +1 @@
+93edceded9619355818b263d82187254
diff --git a/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_cfg3.bin.md5 b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_cfg3.bin.md5
new file mode 100644
index 0000000000000000000000000000000000000000..f6517b74ff3393b53d6efe88c6745a25e85440e9
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_cfg3.bin.md5
@@ -0,0 +1 @@
+bc06a4c006e9e52de81661326af0a661
diff --git a/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_ele3.bin.md5 b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_ele3.bin.md5
new file mode 100644
index 0000000000000000000000000000000000000000..da794df1202cfc6544898cc301733168930578d7
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_ele3.bin.md5
@@ -0,0 +1 @@
+86bee4c193fd3eb1cd3c6763ca9baaac
diff --git a/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_ele_g3.bin.md5 b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_ele_g3.bin.md5
new file mode 100644
index 0000000000000000000000000000000000000000..db9e642c417ae74f36703370fd5d2e4362c9e9a7
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_ele_g3.bin.md5
@@ -0,0 +1 @@
+34c859ccc558369b42858fce5b1b883a
diff --git a/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_nod3.bin.md5 b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_nod3.bin.md5
new file mode 100644
index 0000000000000000000000000000000000000000..792059c6572058b10aa40656eb2814f7256d77f5
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/cube_1x1x1_hex_1e3_partitioned_msh_nod3.bin.md5
@@ -0,0 +1 @@
+638cd9a14726006b108f429b7e4e95e8
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow.vtu.md5 b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..44477647c7282c92362ff917655886bc99a09f98
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow.vtu.md5
@@ -0,0 +1 @@
+5def96fad11b40ac3aa3922804d483a2
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected.pvtu.md5 b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected.pvtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..19dc56a075e4dcfc6c0eb7be078c63d17156df21
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected.pvtu.md5
@@ -0,0 +1 @@
+e43258acc375fefa0ccd6cfe00880106
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_0.vtu.md5 b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_0.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..7383bd644e819530bf37324b2e13ec3d4d888919
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_0.vtu.md5
@@ -0,0 +1 @@
+fa08a100756b8b3f86b2e104921b968c
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_1.vtu.md5 b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_1.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..0d80f7be59d57ac67f6ed784004b21b50f904817
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_1.vtu.md5
@@ -0,0 +1 @@
+e8a2adc49ad74991e4a78deb6ab885f7
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_2.vtu.md5 b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_2.vtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..014265814d15cd1293d1858c5f87032ea4673861
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_2.vtu.md5
@@ -0,0 +1 @@
+319076ed42e87d91671f37bd6c3958df
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_visual.pvtu.md5 b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_visual.pvtu.md5
new file mode 100644
index 0000000000000000000000000000000000000000..19dc56a075e4dcfc6c0eb7be078c63d17156df21
--- /dev/null
+++ b/Tests/Data/EllipticPETSc/quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_expected_visual.pvtu.md5
@@ -0,0 +1 @@
+e43258acc375fefa0ccd6cfe00880106
diff --git a/Tests/Data/EllipticPETSc/quad_20x10_result_result_expected.dat.md5 b/Tests/Data/EllipticPETSc/quad_20x10_result_result_expected.dat.md5
deleted file mode 100644
index f195acfd369bee046c394ff4d42064577bba8bb4..0000000000000000000000000000000000000000
--- a/Tests/Data/EllipticPETSc/quad_20x10_result_result_expected.dat.md5
+++ /dev/null
@@ -1 +0,0 @@
-1e7992425efeb712d1b7c497396f3cc3