diff --git a/FileIO/readMeshFromFile.cpp b/FileIO/readMeshFromFile.cpp index 57c1ee4119b533f439fe5b1ef689940f416d9774..3a203b722339613387097e0c60680cb20e6abdba 100644 --- a/FileIO/readMeshFromFile.cpp +++ b/FileIO/readMeshFromFile.cpp @@ -15,6 +15,10 @@ * @author Karsten Rink */ +#ifdef USE_PETSC +#include <petscksp.h> +#endif + // ThirdParty/logog #include "logog/include/logog.hpp" @@ -29,11 +33,20 @@ #include "Legacy/MeshIO.h" #include "FileIO/VtkIO/VtuInterface.h" #include "readMeshFromFile.h" +// +#ifdef USE_PETSC +#include "MPI_IO/NodePartitionedMeshReader.h" +#include "MeshLib/NodePartitionedMesh.h" +#endif namespace FileIO { MeshLib::Mesh* readMeshFromFile(const std::string &file_name) { +#ifdef USE_PETSC + NodePartitionedMeshReader read_pmesh(PETSC_COMM_WORLD); + return read_pmesh.read(file_name); +#else if (BaseLib::hasFileExtension("msh", file_name)) { Legacy::MeshIO meshIO; @@ -42,6 +55,7 @@ MeshLib::Mesh* readMeshFromFile(const std::string &file_name) if (BaseLib::hasFileExtension("vtu", file_name)) return VtuInterface::readVTUFile(file_name); +#endif ERR("readMeshFromFile(): Unknown mesh file format in file %s.", file_name.c_str()); return nullptr;