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), Ensemble Smoother with Multiple Data Assimilation (ES-MDA) and Iterative Ensemble Smoother (IES).

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 . "[everest]"

Developing

To start developing the Python code, we suggest installing ert in editable mode into a virtual environment to isolate the install (substitute the appropriate way of sourcing venv for your shell):

# Create and enable a virtualenv
python3 -m venv my_virtualenv
source my_virtualenv/bin/activate

# Update build dependencies
pip install --upgrade pip

# Download and install ert
git clone https://github.com/equinor/ert
cd ert
pip install --editable ".[dev, everest]"

Test setup

Additional development packages must be installed to run the test suite:

pip install -e ".[dev, everest]"
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

pytest -n logical tests/ert/unit_tests -m "not integration_tests"

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

pip install ".[dev]"
sphinx-build -n -v -E -W ./docs/ert ./tmp/ert_docs

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

To automatically reload on changes you may use

sphinx-autobuild docs docs/_build/html

Style requirements

There are a set of style requirements, which are gathered in the pre-commit configuration, to have it automatically run on each commit do:

$ pip install pre-commit
$ pre-commit install

Trouble with setup

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

cd test-data/ert/poly_example
# for non-gui trial run
ert test_run poly.ert
# for gui trial run
ert gui poly.ert

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.

Example usage

Basic ert test

To test if ert itself is working, go to test-data/ert/poly_example and start ert by running poly.ert with ert gui

cd test-data/ert/poly_example
ert gui poly.ert

This opens up the ert graphical user interface. Finally, test ert by starting and successfully running the experiment.

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

ert-11.1.2-py3-none-any.whl (696.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ert-11.1.2-py3-none-any.whl
  • Upload date:
  • Size: 696.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ert-11.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 063777bc9044e61a6f5e8739ba72ddc32b6f689357998df70511b2d9108b422a
MD5 525e64c6a05b0747e4663d1a213e4c97
BLAKE2b-256 ee9c56bd6c1db902802af3a90d5d769b6cb431a3dddd1a855ba5413b7439bb7b

See more details on using hashes here.

Supported by

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