diff --git a/BaseLib/MPI.h b/BaseLib/MPI.h
index 3d60e44a61bc12d496983d1c9c2883b32cce63a5..649769740e615b7a0c6a4116a230fc0144e08065 100644
--- a/BaseLib/MPI.h
+++ b/BaseLib/MPI.h
@@ -21,6 +21,26 @@
 namespace BaseLib::MPI
 {
 
+struct Setup
+{
+    Setup(int argc, char* argv[])
+    {
+#ifdef USE_PETSC
+        MPI_Init(&argc, &argv);
+#else
+        (void)argc;
+        (void)argv;
+#endif  // USE_PETSC
+    }
+
+    ~Setup()
+    {
+#ifdef USE_PETSC
+        MPI_Finalize();
+#endif  // USE_PETSC
+    }
+};
+
 #ifdef USE_PETSC
 struct Mpi
 {