#1031: write index files for checkpoints --------------------------+------------------------------------------------- Reporter: rhaas | Owner: eschnett Type: enhancement | Status: review Priority: minor | Milestone: Component: Carpet | Version: Resolution: | Keywords: CarpetIOHDF5 --------------------------+-------------------------------------------------
Comment (by rhaas):
Well actually, it did not remove all possible extraneous code :-). One can also get rid of the separate index_dataspace. Having sparse datasets is much simpler than what Ian originally did. I stumbled across them when I did not implement index files quite the way Ian did but simply skipped the H5Dwrite() call in hdf5_create_index.c. Sparse datasets seem to be created if one creates a dataset of a certain size, but then does not actually write data to it (or leaves out holes). So only creating the dataset with the nominal Cactus grid function size but never writing to it makes the file all sparse with all data appearing to have a value of zero when read via H5Dread().
To summarize: The patch removes the separate shape arrays and separate dataspaces for the datasets in index files and creates the index file datasets with the same dataspace as the "heavy" file datasets. It retains the h5shape attribute that was originally introduced for index files even though it is now redundant (since one could call H5Sget_simple_extent_dims on the datasets in the index files).