Skip to content
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

convert cooling tables to ASDF, drop HDF5 dependency #740

Open
BenWibking opened this issue Sep 14, 2024 · 1 comment
Open

convert cooling tables to ASDF, drop HDF5 dependency #740

BenWibking opened this issue Sep 14, 2024 · 1 comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request submodules Pull requests that update Submodules code user experience

Comments

@BenWibking
Copy link
Collaborator

Describe the proposal
Users have a lot of trouble compiling against a working version of HDF5. However, we only use HDF5 to read the cooling tables. It would be good to avoid it altogether. Some HDF5 versions are also buggy, and we've wasted time working around that.

  • The upside: we could use ASDF instead. It supports self-describing arrays and unstructured metadata, and there is both a C++ (https://github.com/eschnett/asdf-cxx) and Python implementation (https://github.com/asdf-format/asdf). We can include the C++ implementation as a submodule, like we do already for AMReX, OpenPMD, and yaml-cpp.
  • The downside: we would have to convert the Grackle HDF5 files to ASDF using a Python script, and then save those tables in our repository.

Describe alternatives you've considered
We could stick with HDF5, or we could use a raw binary format that we implement ourselves (but why do that?)

Additional context
ASDF is used in the astronomical community, and is currently supported by STSci.

@BenWibking BenWibking added enhancement New feature or request dependencies Pull requests that update a dependency file user experience labels Sep 14, 2024
@dosubot dosubot bot added the submodules Pull requests that update Submodules code label Sep 14, 2024
@BenWibking
Copy link
Collaborator Author

This will also require changing perturbations.py to save ASDF files (should be trivial), and then change the code to read in the perturbations in the initial conditions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request submodules Pull requests that update Submodules code user experience
Projects
None yet
Development

No branches or pull requests

1 participant