Skip to main content

Ensemble based Reservoir Tool (ERT)

Project description

Build Status PyPI - Python Version Code Style Type checking codecov License: GPL v3

ert - Ensemble based Reservoir Tool - is designed for running ensembles of dynamical models such as reservoir models, in order to do sensitivity analysis and data assimilation. ert supports data assimilation using the Ensemble Smoother (ES) and Ensemble Smoother with Multiple Data Assimilation (ES-MDA).

Installation

pip install ert
ert --help

or, for the latest development version:

pip install git+https://github.com/equinor/ert.git@main
ert --help

For examples and help with configuration, see the ert Documentation.

Everest™

The primary goal of the Everest tool is to find optimal well planning and production strategies by utilizing an ensemble of reservoir models (e.g., an ensemble of geologically-consistent models). This will enable robust decisions about drilling schedule and well placement, in order to achieve results of significant practical value.

pip install ert[everest]

Developing

We use uv to have one synchronized development environment for all packages. See installing uv. We recommend installing uv using your system's package manager, or into a small dedicated virtual environment.

Once uv is installed, you can get a development environment by running:

git clone https://github.com/equinor/ert
cd ert
uv sync --all-groups

Test setup

The tests can be run with pytest directly, but this is very slow:

uv run pytest tests/

There are many kinds of tests in the tests directory, while iterating on your code you can run a fast subset of the tests with by using the rapid checks from the justfile:

uv run just rapid-tests

You can also run all of the checks in parallel with

uv run just check-all

Git LFS must be installed to get all the files. This is packaged as git-lfs on Ubuntu, Fedora or macOS Homebrew. For Equinor TGX users, it is preinstalled.

If you have not used git-lfs before, you might have to make changes to your global Git config for git-lfs to work properly.

git lfs install

test-data/ert/block_storage is a submodule and must be checked out.

git submodule update --init --recursive

If you checked out submodules without having git lfs installed, you can force git lfs to run in all submodules with:

git submodule foreach "git lfs pull"

Build documentation

You can build the documentation after installation by running

uv run just build-docs

and then open the generated ./ert_docs/index.html or ./everest_docs/index.html in a browser.

To automatically reload on changes you may use

uv run sphinx-autobuild docs/ert docs/ert/_build/html

for ert and

uv run sphinx-autobuild docs/everest docs/everest/_build/html

for everest.

Style requirements

There are a set of style requirements, which are gathered in the pre-commit configuration. After running uv sync --all-groups, pre-commit is already available. To have it automatically run on each commit:

uv run pre-commit install

There is also a pre-push hook configured in pre-commit to run a collection of relatively fast tests, to install this hook:

uv run pre-commit install --hook-type pre-push

Trouble with setup

As a simple test of your ert installation, you may try to run one of the examples, for instance:

uv run just poly

This opens up the ert graphical user interface with a simple example using polynomials (see ./test-data/ert/poly_example).

Finally, test ert by starting and successfully running the experiment.

Notes

The default maximum number of open files is normally relatively low on MacOS and some Linux distributions. This is likely to make tests crash with mysterious error-messages. You can inspect the current limits in your shell by issuing the command ulimit -a. In order to increase maximum number of open files, run ulimit -n 16384 (or some other large number) and put the command in your .profile to make it persist.

ert with a reservoir simulator

To actually get ert to work at your site you need to configure details about your system; at the very least this means you must configure where your reservoir simulator is installed. In addition you might want to configure e.g. queue system in the site-config file, but that is not strictly necessary for a basic test.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ert-21.0.6-py3-none-any.whl (781.4 kB view details)

Uploaded Python 3

File details

Details for the file ert-21.0.6-py3-none-any.whl.

File metadata

  • Download URL: ert-21.0.6-py3-none-any.whl
  • Upload date:
  • Size: 781.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ert-21.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a68c6c6d1f8929d104ad41a84bc4ae543a0b52fbbd5db1919a47b401e31a09bc
MD5 ceb4dd8a3bb253765976aef1d8d76abb
BLAKE2b-256 7170e6c9e55bbebe9240c4bc2c4202a7eb3ac72083dcbced1bcd96884d4d5761

See more details on using hashes here.

Provenance

The following attestation bundles were made for ert-21.0.6-py3-none-any.whl:

Publisher: build_and_test.yml on equinor/ert

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page