diff --git a/cpppetsc/src/include/ae108/cpppetsc/Viewer.h b/cpppetsc/src/include/ae108/cpppetsc/Viewer.h
index 6305eb835c0d8b9b7d9f0e39807b9af83bac20d4..a71fbd27e4feb43940505ae66052d7d51341e20f 100644
--- a/cpppetsc/src/include/ae108/cpppetsc/Viewer.h
+++ b/cpppetsc/src/include/ae108/cpppetsc/Viewer.h
@@ -17,6 +17,7 @@
 
 #include "ae108/cpppetsc/UniqueEntity.h"
 #include <petscviewer.h>
+#include <petscviewerhdf5.h>
 
 namespace ae108 {
 namespace cpppetsc {
@@ -34,9 +35,9 @@ public:
   static Viewer fromAsciiFilePath(const char *path);
 
   /**
-   * @brief Creates a PetscViewer that writes to a VTK file at path.
+   * @brief Creates a PetscViewer that writes to an HDF5 file at path.
    */
-  static Viewer fromVtkFilePath(const char *path);
+  static Viewer fromHdf5FilePath(const char *path);
 
   /**
    * @brief Creates a Viewer from the provided viewer (takes ownership).
@@ -74,10 +75,10 @@ Viewer<Policy> Viewer<Policy>::fromAsciiFilePath(const char *path) {
 }
 
 template <class Policy>
-Viewer<Policy> Viewer<Policy>::fromVtkFilePath(const char *path) {
+Viewer<Policy> Viewer<Policy>::fromHdf5FilePath(const char *path) {
   auto viewer = PetscViewer{};
-  Policy::handleError(PetscViewerVTKOpen(Policy::communicator(), path,
-                                         FILE_MODE_WRITE, &viewer));
+  Policy::handleError(PetscViewerHDF5Open(Policy::communicator(), path,
+                                          FILE_MODE_WRITE, &viewer));
   return Viewer(makeUniqueEntity<Policy>(viewer));
 }