diff --git a/MeshLib/IO/VtkIO/PVDFile.cpp b/MeshLib/IO/VtkIO/PVDFile.cpp
index 2150b5caff9173fa0c4b39fdf80b02ffb014e08a..e8fa6b26faadbdc1659103043b40f04d97970db0 100644
--- a/MeshLib/IO/VtkIO/PVDFile.cpp
+++ b/MeshLib/IO/VtkIO/PVDFile.cpp
@@ -14,6 +14,10 @@
 #include <iomanip>
 #include <limits>
 
+#ifdef USE_PETSC
+#include <mpi.h>
+#endif
+
 #include "BaseLib/Error.h"
 #include "MeshLib/IO/VtkIO/VtuInterface.h"
 
@@ -24,10 +28,19 @@ namespace IO
 void PVDFile::addVTUFile(const std::string& vtu_fname, double timestep)
 {
 #ifdef USE_PETSC
-    auto const vtu_file_name =
-        getVtuFileNameForPetscOutputWithoutExtension(vtu_fname);
+    int mpi_size;
+    MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
+    if (mpi_size == 1)
+    {
+        _datasets.emplace_back(timestep, vtu_fname);
+    }
+    else
+    {
+        auto const vtu_file_name =
+            getVtuFileNameForPetscOutputWithoutExtension(vtu_fname);
 
-    _datasets.emplace_back(timestep, vtu_file_name + ".pvtu");
+        _datasets.emplace_back(timestep, vtu_file_name + ".pvtu");
+    }
 #else
     _datasets.emplace_back(timestep, vtu_fname);
 #endif
diff --git a/MeshLib/IO/VtkIO/VtuInterface.cpp b/MeshLib/IO/VtkIO/VtuInterface.cpp
index 9c8615ee1961d53b0a7ff177a9883661ad090563..56a3b98c8b3fe6fe64d2c1d4e7735671ea7fa596 100644
--- a/MeshLib/IO/VtkIO/VtuInterface.cpp
+++ b/MeshLib/IO/VtkIO/VtuInterface.cpp
@@ -142,12 +142,16 @@ bool VtuInterface::writeToFile(std::filesystem::path const& file_path)
     MPI_Initialized(&mpi_init);
     if (mpi_init == 1)
     {
+        int mpi_size;
+        MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
+        if (mpi_size == 1)
+        {
+            return writeVTU<vtkXMLUnstructuredGridWriter>(file_path.string());
+        }
         auto const vtu_file_name =
             getVtuFileNameForPetscOutputWithoutExtension(file_path.string());
         int rank;
         MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-        int mpi_size;
-        MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
         return writeVTU<vtkXMLPUnstructuredGridWriter>(vtu_file_name + ".pvtu",
                                                        mpi_size, rank);
     }