[petsc-users] HDF5 time step count

Adrian Croucher a.croucher at auckland.ac.nz
Sun Oct 10 20:08:58 CDT 2021


hi Matt,

On 10/11/21 11:59 AM, Matthew Knepley wrote:
> On Sun, Oct 10, 2021 at 6:51 PM Adrian Croucher 
> <a.croucher at auckland.ac.nz <mailto:a.croucher at auckland.ac.nz>> wrote:
>
>     hi
>
>     Is there any way to query the PETSc HDF5 viewer to find the number of
>     time steps in the file?
>
>     A common use case I have is that an HDF5 file from a previous
>     simulation
>     is used to get initial conditions for a subsequent run. The most
>     common
>     thing you want to do is restart from the last set of results in the
>     previous output. To do that you need to know how many time steps
>     there
>     are, so you can set the output index to be the last one.
>
>     I thought maybe I could just query the size of the "time" dataset,
>     but I
>     can't even see any obvious way to do that using the viewer functions.
>
>
> There is nothing in there that does it right now. Do you know how to 
> do it in HDF5?
> If so, I can put it in. Otherwise, I will have to learn more HDF5 :)

I haven't actually tried this myself but it looks like what you do is:

1) get the dataspace for the dataset (in our case the "time" dataset):

hid_t dspace = H5Dget_space(dset);

2) Get the dimensions of the dataspace:

const int ndims = 1;

hsize_t dims[ndims];
H5Sget_simple_extent_dims(dspace, dims, NULL);

The first element of dims should be the number of time steps. Here I've 
assumed the number of dimensions of the time dataset is 1. In general 
you can instead query the rank of the dataspace using 
H5Sget_simple_extent_ndims() to get the rank ndims.

Regards, Adrian

-- 
Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: a.croucher at auckland.ac.nz
tel: +64 (0)9 923 4611

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211011/96717df6/attachment-0001.html>


More information about the petsc-users mailing list