-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace deprecated H5part with H5hut #458
base: develop
Are you sure you want to change the base?
Conversation
int8 PR has been merged into H5hut master. |
Nice effort, but I wonder if any discussion has taken place about the merits of h5hut which AFAIK, is not astro-, or fluid-specific, compared to, for example Gagdet, or some much more recent and physics oriented format such as openPMD for particle physics. H5part had such poor support for meta data convention...I hope h5hut does.
And btw, who will support an h5hut ParaView reader? N.B. Gadget and openPMD already have ParaView readers.
|
I believe the meta-data convention in h5hut is still the same, i.e the resulting HDF5 output files will have the same structure as what we've been writing with H5Part.
|
Pushed a commit with an option to switch between independent and collective, with independent as default. |
As sebastien mentioned, this does not change the IO at all, only upgrades the lib version used. The h5part support in sphexa was using an old version of the code that I have upgraded to h5hut - exact same binary hdf5 file contets, no change to readers. Adding support for something more widely used like gadget or openPMD would be a very good idea - they most likely have more tools available for processing them. I'm sure when someone needs extra functioanlity from sphexa files, they can/will ask for it ;) |
77e13e4
to
e661222
Compare
h5part was copied as a snapshot into sphexa but was out of date and this upgrades the h5part wrapper code to use h5hut instead. H5Hut supports the same particle datasets as h5part, but also adds support for volumentric fields and has a slightly more consistent use of hdf5 datatypes throughout This patch requires the use of (to be released) h5hut version 2.0.0 or the master branch from git Note: NumParticles/Steps etc have changed from unsigned to signed variables
in a recent past, I ran into what seems to be a problem with ParaView v5.13 (earlier versions not tested), when running in parallel, over multiple timesteps, particles gradually disappear. @ChristopherBignamini and I have seen that last week, but because of time pressure, I have not had time to document it. |
I have created a Python script to generate an example H5part and have created a ParaView issue to say that the H5part reader in ParaView does not work in parallel. |
H5part was discontinued many years ago, but the code was copied into the source tree of sphexa and although it works fine when built as an external as part of the project, it ought to be replaced with the newer H5hut library that contains all the functions of H5part, but with additional block data support.
This PR removes H5part, and adds H5hut instead, but not built as part of the source tree. H5hut must be installed on the system using (for example)
Some small changes to the API for access to numparticles and particle data/attributes are reflected in the PR and the access to type safe attributes has been rewritten slightly.
Note - this PR relies on H5hut merge request https://gitlab.psi.ch/H5hut/src/-/merge_requests/7 and should not be merged before the int8 changes have been accepted into H5hut.
Note - users of sphexa will need to change their build environment to add H5hut, so this is a breaking change and all users will need to be notified of the change to their workflow and an sphexe uenv provided for alps systems at CSCS.