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