Skip to content

Make BOUT++ a separate package.#6

Merged
mikekryjak merged 37 commits into
mainfrom
boutpp-package
Jan 22, 2026
Merged

Make BOUT++ a separate package.#6
mikekryjak merged 37 commits into
mainfrom
boutpp-package

Conversation

@oparry-ukaea
Copy link
Copy Markdown
Contributor

@oparry-ukaea oparry-ukaea commented Jul 17, 2025

Adds a package file for BOUT++ and makes it a dependency of the Hermes-3 package.

Resolves #3.
Resolves #9.

ToDo:

  • Remove adios, netcdf (?), petsc, sundials dependencies from hermes-3 (set in boutpp directly)
  • Set the right dependencies for boutpp+python
  • Set maintainer(s) for boutpp
  • Bout updates to avoid CMakeLists patch
  • Check variant defaults match BOUT CMake defaults.
  • Limit PETSc to 3.23 as per bout docs (boutpp@5.0.0 further restricted to PETSc <= 3.17)
  • Limit SUNDIALS to 6.7.0 as per bout docs (Seems to build fine with 7.0, though!)
  • Remove pvode variant
    - [ ] Add "coverage" variant (conflicts if compiler isn't gcc or clang); defaults to off
  • Disable strumpack variant for now?? numpy build fails; looks like this issue

Skipping coverage variant, for now; can be added later if necessary.

@oparry-ukaea
Copy link
Copy Markdown
Contributor Author

N.B. fa6fefc can be reverted if using a version of bout with the changes from boutproject/BOUT-dev#3101

@oparry-ukaea oparry-ukaea marked this pull request as ready for review December 19, 2025 16:56
Comment thread packages/boutpp/package.py Outdated
Comment thread packages/boutpp/package.py Outdated
Copy link
Copy Markdown
Contributor

@mikekryjak mikekryjak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on this @oparry-ukaea, it really seems like you've managed to capture almost all of the default behaviour properly (at least as far as I can tell). I checked by running a simulation with this version and with my existing installation and comparing the BOUT++ console dump. I am yet to compare the configure console output.

Comment thread packages/boutpp/package.py
Comment thread packages/hermes-3/package.py
Comment thread packages/boutpp/package.py
"python",
"raja",
"scorep",
"sundials",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both SUNDIALS and PETSc need to be fixed to the latest version in the CMake. Upgrading these versions is not always trivial.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUNDIALS now limited to versions between 2.6 and 6.7.0 as per the bout docs.
PETSc now limited to 3.7:3.23 as per the bout (5.2.0) docs (I also needed to restrict boutpp@5.0.0 to PETSc <= 3.17 to make it build).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think SUNDIALS 7 and PETSc 3.24 do work, although that will depend on the BOUT++ version

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to change it if you're reasonably confident; it certainly seems to build fine with sundials@7.0.0, but I haven't run the tests.

… those options up to PETSc instead. +hypre and +slepc are left in to trigger the corresponding BOUT_USE definitions.
@oparry-ukaea
Copy link
Copy Markdown
Contributor Author

Think this is ready to merge.

@mikekryjak mikekryjak merged commit ed517ba into main Jan 22, 2026
@mikekryjak mikekryjak deleted the boutpp-package branch January 22, 2026 14:22
oparry-ukaea added a commit to oparry-ukaea/hermes-3 that referenced this pull request Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle PETSc variants properly Build hermes-3 and BOUT++ as separate packages

3 participants