Skip to content

feat: Adding HDF5 support for tableFunction#3656

Open
castelletto1 wants to merge 33 commits into
developfrom
feature/castelletto1/HDFTable
Open

feat: Adding HDF5 support for tableFunction#3656
castelletto1 wants to merge 33 commits into
developfrom
feature/castelletto1/HDFTable

Conversation

@castelletto1

@castelletto1 castelletto1 commented May 9, 2025

Copy link
Copy Markdown
Collaborator

This PR adds HDF5 support to tableFunction, addressing one issue raised in PR #3524.

In addition to HDF5 support, a new function, determineTableInputType, has been introduced to validate the input data for tableFunction and ensure that only one type of input is provided in the xml file. The supported input types are:

  • 1D: One-dimensional data defined directly in the XML file
  • ND: N-dimensional data provided via ASCII files
  • HDF5: N-dimensional data provided via an HDF5 file

The immiscibleTwoPhase_SPE10_layer84 integrated test has been updated to demonstrate how to use the new HDF5 functionality. If approved, we plan to promote the use of HDF5 binary files over ASCII files wherever appropriate across all solvers.

Note: Compressed HDF5 files are not supported at the moment. This limitation should be addressed as soon as possible to fully leverage HDF5 benefits.

Baseline updates are required: new XML children have been added: hdf5CoordinateDatasetNames, hdf5File, and hdf5TableDatasetName.

  • Adding RTD documentation
  • Considering supporting other float types as valid dataset type input

@castelletto1 castelletto1 self-assigned this May 9, 2025
@castelletto1 castelletto1 marked this pull request as draft May 9, 2025 00:58
@rrsettgast

Copy link
Copy Markdown
Contributor

@castelletto1 Can you:

  1. Add unit testing for the new functions
  2. change a few of the integrated tests to use the new functionality.

@castelletto1 castelletto1 added the type: feature New feature or request label May 16, 2025
@castelletto1 castelletto1 added the ci: run code coverage enables running of the code coverage CI jobs label May 16, 2025
@castelletto1 castelletto1 marked this pull request as ready for review May 16, 2025 18:23
@castelletto1 castelletto1 changed the title Feature/castelletto1/hdf table feat: Adding HDF5 support for tableFunction May 16, 2025
@codecov

codecov Bot commented May 16, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.96059% with 57 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.66%. Comparing base (c2768e6) to head (a7756ff).
⚠️ Report is 239 commits behind head on develop.

Files with missing lines Patch % Lines
src/coreComponents/functions/HDF5Utilities.cpp 75.00% 41 Missing ⚠️
src/coreComponents/functions/TableFunction.cpp 71.42% 16 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3656      +/-   ##
===========================================
+ Coverage    57.56%   57.66%   +0.10%     
===========================================
  Files         1235     1238       +3     
  Lines       106973   107363     +390     
===========================================
+ Hits         61578    61911     +333     
- Misses       45395    45452      +57     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@castelletto1 castelletto1 added ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI labels May 16, 2025
@castelletto1 castelletto1 added the flag: requires rebaseline Requires rebaseline branch in integratedTests label May 19, 2025
@jhuang2601

Copy link
Copy Markdown
Contributor

@castelletto1 Can you provide the script or instruction for how to prepare the HDF5 tables (e.g., SPE10_layer84_permeability_porosity.hdf5 in this PR)?

@dkachuma dkachuma requested a review from OmarDuran as a code owner June 10, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: run code coverage enables running of the code coverage CI jobs ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: requires rebaseline Requires rebaseline branch in integratedTests type: feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants