exauq-toolbox

The EXAUQ-Toolbox supports advanced emulator development for complex simulations, featuring methods for training multi-level Gaussian Process emulators across model hierarchies, from low-fidelity approximations to high-fidelity exascale simulations.

https://github.com/exa-uq/exauq-toolbox

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

project
Last synced: 6 months ago · JSON representation ·

Repository

The EXAUQ-Toolbox supports advanced emulator development for complex simulations, featuring methods for training multi-level Gaussian Process emulators across model hierarchies, from low-fidelity approximations to high-fidelity exascale simulations.

Basic Info
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 1
  • Open Issues: 43
  • Releases: 7
Topics
project
Created almost 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Support

README.md

EXAscale Uncertainty Quantification Toolbox (EXAUQ-Toolbox)

Tests Python Docs License Code style: black Import sorting: isort pre-commit Last commit DOI

The EXAUQ-Toolbox is a collection of packages and utilities that supports the development of emulators of complex computer simulations. A key feature is support for fitting multi-level Gaussian Process emulators for hierarchies of simulation models. Simulations in the hierarchy are arranged according to differing levels of model fidelity, with the simulation at the top of the hierarchy potentially requiring exascale computing to complete. As well as implementing statistical methods for training multi-level emulators, the EXAUQ-Toolbox takes care of managing the use of multiple computing resources, which would typically be required when running simulations in the multi-fidelity hierarchy. For example, runs of the highest-fidelity simulation may be run on an exascale computer, whereas a lower-fidelity, but cheaper, simulation may be run on a more conventional HPC, or a departmental server.

The EXAUQ-Toolbox welcomes contributors and users to raise issues/ideas. Please do take a look through our support page to see how you can help and how we can help you in the most efficient way!

Software developed by the RSE team at the University of Exeter, UK and funded by the EPRSC (2021-2025) as part of project ExCALIBUR, grant number EP/W007886/1.

Many thanks to the code developers of the toolbox:

Alongside the research team for the algorithms:

Citation

If you use the EXAUQ-Toolbox in your work, please cite the appropriate version via Zenodo:

Hawes, T., Johns, M., White, H., Salter, J., Olivier, E., Kimpton, L., Xiong, X., & Challenor, P. (2025).
EXAUQ-Toolbox [Computer software]. https://doi.org/10.5281/zenodo.15005642

DOI

Installing the latest release version

We strongly recommend using virtual environments (e.g. Conda environments) to manage packages when using the EXAUQ-Toolbox in your work.

To install the exauq package from the toolbox, run the following command (after activating the virtual environment, if necessary):

bash python -m pip install "exauq @ git+https://github.com/EXA-UQ/EXAUQ-Toolbox.git" This will install the latest version of exauq currently on the Git repository. If you already have exauq installed and wish to update it to the latest version, run

bash python -m pip install --force-reinstall "exauq @ git+https://github.com/EXA-UQ/EXAUQ-Toolbox.git"

If you wish to use a specific version of exauq, then simply alter the version at the end of the command.

bash python -m pip install "exauq @ git+https://github.com/EXA-UQ/EXAUQ-Toolbox.git@v0.1.0"

Viewing documentation

Documentation for the EXAUQ-Toolbox is available online at https://exa-uq.github.io/EXAUQ-Toolbox/. To view it, you can run the following command within a terminal (after activating the environment where you installed the toolbox, if relevant):

bash exauq --docs

Developing the package

Installation

EXAUQ-Toolbox is written in Python and uses Poetry for package development and dependency management.

Assuming you have Python and Poetry installed, install Python package dependencies by running the following from the root project folder:

bash poetry install --with=dev

This will install packages into a dedicated virtual environment, according to the versions specified in the poetry.lock file. The exauq package is installed in editable mode. To run Python scripts / tooling within this virtual environment, either use

bash poetry run <command-to-run> # e.g. poetry run python foo.py # e.g. poetry run black

or activate the virtual environment e.g. by creating a nested shell:

bash poetry shell Note: As of Poetry 2.0, the poetry shell command has been removed. If you are using Poetry 2.0 or newer, please refer to the official documentation for guidance on managing virtual environments.

Finally, to use the automatic pre-commit hooks designed for linting, run:

bash pre-commit install

this will be required to pass the linting checks for PRs.

Updating dependencies

To update Python package dependencies to the latest versions that are consistent with the versioning constraints specified in pyproject.toml, run

bash poetry update

This will update the poetry.lock file.

Owner

  • Name: EXA-UQ
  • Login: EXA-UQ
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this toolbox, please cite it as below."
title: "EXAUQ-Toolbox"
version: "v0.3.2"
doi: 10.5281/zenodo.15005642
date-released: 2025-04-01
repository-code: https://github.com/EXA-UQ/EXAUQ-Toolbox
license: BSD 3-Clause
type: software
authors:
  - family-names: Hawes
    given-names: Thomas
  - family-names: Johns
    given-names: Matthew
  - family-names: White
    given-names: Harrison
  - family-names: Salter
    given-names: James
  - family-names: Olivier
    given-names: Enrico
  - family-names: Kimpton
    given-names: Louise
  - family-names: Xiong
    given-names: Xiaoyu
  - family-names: Challenor
    given-names: Peter

GitHub Events

Total
  • Fork event: 2
  • Create event: 37
  • Issues event: 37
  • Release event: 6
  • Watch event: 5
  • Delete event: 38
  • Issue comment event: 18
  • Push event: 132
  • Public event: 1
  • Gollum event: 5
  • Pull request review comment event: 27
  • Pull request review event: 100
  • Pull request event: 71
Last Year
  • Fork event: 2
  • Create event: 37
  • Issues event: 37
  • Release event: 6
  • Watch event: 5
  • Delete event: 38
  • Issue comment event: 18
  • Push event: 132
  • Public event: 1
  • Gollum event: 5
  • Pull request review comment event: 27
  • Pull request review event: 100
  • Pull request event: 71

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 20
  • Total pull requests: 29
  • Average time to close issues: 4 months
  • Average time to close pull requests: 14 days
  • Total issue authors: 4
  • Total pull request authors: 6
  • Average comments per issue: 0.6
  • Average comments per pull request: 0.03
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 11
Past Year
  • Issues: 19
  • Pull requests: 29
  • Average time to close issues: 3 months
  • Average time to close pull requests: 14 days
  • Issue authors: 4
  • Pull request authors: 6
  • Average comments per issue: 0.63
  • Average comments per pull request: 0.03
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 11
Top Authors
Issue Authors
  • mbjohns (10)
  • HarryTWhite (5)
  • HarryWhiteRSE (4)
  • thawes-rse (4)
  • JSalter90 (1)
  • HWTest-coder (1)
Pull Request Authors
  • mbjohns (14)
  • HarryWhiteRSE (10)
  • github-actions[bot] (6)
  • dependabot[bot] (6)
  • JSalter90 (3)
  • thawes-rse (1)
  • HWTest-coder (1)
  • HarryTWhite (1)
  • roman-zvir (1)
Top Labels
Issue Labels
Documentation (9) Good first issue (9) Enhancement (8) Bug (6) CI / Automation (4) Info (3) Testing (2) dependencies (2)
Pull Request Labels
dependencies (8) Bug (7) Good first issue (7) Documentation (7) python (5) CI / Automation (4) Enhancement (3) Testing (2) Info (2)

Dependencies

poetry.lock pypi
  • 150 dependencies
pyproject.toml pypi
  • black ^24.10.0 develop
  • isort ^5.13.2 develop
  • mkapi ^2.1.0 develop
  • mkdocs ^1.5.3 develop
  • mkdocs-gen-files ^0.5.0 develop
  • mkdocs-literate-nav ^0.6.1 develop
  • mkdocs-material ^9.5.18 develop
  • mkdocs-section-index ^0.3.9 develop
  • mkdocstrings ^0.25.2 develop
  • notebook ^7.2.2 develop
  • pre-commit ^4.0.1 develop
  • pygments ^2.17.2 develop
  • cmd2 >=2.4.0
  • fabric >=3.2.0
  • mogp-emulator >=0.7.0
  • numpy >=1.24.0
  • python >=3.10,<3.14
  • scipy >=1.10.0
.github/workflows/linting-checks.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/update-poetry-lock.yml actions
  • abatilo/actions-poetry v2 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peter-evans/create-pull-request v4 composite
.github/workflows/documentation_upload.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v4 composite