# VTKHDF usage

**URL:** https://discourse.paraview.org/t/vtkhdf-usage/17697
**Category:** ParaView Support
**Created:** [August 25, 2026, 8:05am UTC](https://discourse.paraview.org/t/vtkhdf-usage/17697 "2026-08-25T08:05:38Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![jfavre](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/j/b5ac83/32.png) [@jfavre](https://discourse.paraview.org/u/jfavre)
#### Post date: [August 25, 2026, 8:05am UTC](https://discourse.paraview.org/t/vtkhdf-usage/17697/1 "2026-08-25T08:05:38Z")

</div>

I am evaluating the possibility of converting my data I/O to using the VTKHDF format.

I am using ParaView v6.2.0-RC1. My datasets are made of single-block unstructured grids (either hexs, or quads)

I can use the following command without issues. ParaView writes all my data

> SaveData(‘vol.vtkhdf’, proxy=vol, WriteAllTimeSteps=1, SplitByTimeSteps=1)

Reading the surface element data does not satisfy all my requirements:  
the true values of my timesteps are lost. TimestepValues are simply in the range [0, N-1]

When writing a timeseries, a “master” file without a numbered index is written. Yet, ParaView cannot automatically detect it is a VTK HDF file, even though it has a .vtkhdf extension. So I wonder what is the real purpose of the master file, and how it can be used. Attempting to open it directly with a VTKHDFReader() results in an error.

While opening my quad mesh files singularly succeeds without error (meshes are small, around 25 M cells), opening my hexahedral mesh files breaks with errors (I suspect connectivity list uses 32-bit integers, but my meshes are big (around 300 M cells)

> ( 358.186s) [pvserver] vtkHDFUtilities.cxx:222 ERR| (nullptr): Error H5Dread start: 0, count: 2361934848  
> ( 358.186s) [pvserver] vtkHDFReader.cxx:116 ERR| (nullptr): Cannot read the Connectivity\_0\_ array from file  
> ( 358.186s) [pvserver] vtkHDFReader.cxx:1223 ERR| vtkHDFReader (0x2e678210): Cannot read the Connectivity array

One last question. My mesh is static overtime, but I don’t see an option to specify that in SaveData(). I thought there had been some support for that. What am I missing to activate that?

Thanks in advance for the feedback.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [August 25, 2026, 8:53am UTC](https://discourse.paraview.org/t/vtkhdf-usage/17697/2 "2026-08-25T08:53:32Z")

</div>

> Yet, ParaView cannot automatically detect it is a VTK HDF file, even though it has a .vtkhdf extension. So I wonder what is the real purpose of the master file, and how it can be used. Attempting to open it directly with a VTKHDFReader() results in an error.

Im unable to reproduce this, it works well for me.

You should open this master file and you should NOT open the file series.  
You should not even use `SplitByTimeSteps` unless you have a specific need for it tbh.

In any case, please share steps to reproduce the issue.

> One last question. My mesh is static overtime, but I don’t see an option to specify that in SaveData(). I thought there had been some support for that. What am I missing to activate that?

Its automatic, assuming your data is properly static (GetMeshMTime() does not change over time).  
If it is not, you can force it using “ForceStaticMesh” filter.

---

<div class="post-metadata">

### Author: ![CsatiZoltan](https://discourse.paraview.org/user_avatar/discourse.paraview.org/csatizoltan/32/6997_2.png) [@CsatiZoltan](https://discourse.paraview.org/u/CsatiZoltan)
#### Post date: [August 25, 2026, 3:34pm UTC](https://discourse.paraview.org/t/vtkhdf-usage/17697/3 "2026-08-25T15:34:04Z")

</div>

I also experiment with VTKHDF and my experience is the same: it seems that the `vtkHDFWriter` does not yet support writing static meshes: [#19888](https://gitlab.kitware.com/vtk/vtk/-/work_items/19888). However, you can easily do it yourself. As far as I understand, VTKHDF **is** an HDF5 file, which must satisfy the [specification](https://docs.vtk.org/en/latest/vtk_file_formats/vtkhdf_file_format/vtkhdf_specifications.html) so that it can be read by ParaView. It means that you can use an existing HDF5 library to write your data into a .vtkhdf file. An important implication of this is that if you want to write your data while the simulation is running, you can now do it easily with an HDF5 library, no need to introduce the heavy VTK dependency. Technically, you could write binary XML VTK files “by hand” without VTK, that’s what we did, but it is error-prone and not easy in MPI parallel mode. And forget the in-memory compression without the VTK library…

There is a nice [tutorial](https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts/-/tree/main/tutorial) on how to create VTKHDF files from Python, using h5py (by the way, h5py comes with the ParaView binary release, so writing VTKHDF with pvpython works out of the box). But the same logic applies to write it from other languages, just respect the specification. There is a section in the tutorial for writing static meshes, and an [associated script](https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts/-/blob/main/tutorial/scripts/step4.py).

VTKHDF has more and more features, check out the [implementation status](https://docs.vtk.org/en/latest/vtk_file_formats/vtkhdf_file_format/vtkhdf_status.html).

If you want to convert an existing XML-based grid to the VTKHDF format, there is a [script](https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts/-/blob/main/vtkxml-to-vtkhdf/vtkxml-to-vtkhdf.py) for that, although I don’t know if it supports static meshes.

Other blog posts I found useful:

- [introductory blog post on VTKHDF](https://www.kitware.com/vtk-hdf-reader/)
- [How to write time dependent data in VTKHDF files](https://www.kitware.com/how-to-write-time-dependent-data-in-vtkhdf-files/)

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [August 26, 2026, 8:51am UTC](https://discourse.paraview.org/t/vtkhdf-usage/17697/4 "2026-08-26T08:51:05Z")

</div>

> [@CsatiZoltan](#):
>
> [#19888](https://gitlab.kitware.com/vtk/vtk/-/work_items/19888)

Already fixed.
