Skip to main content

Ensemble based Reservoir Tool (ERT)

Project description

ert

Build Status Code Style Type checking Run test-data Run polynomial demo Run SPE1 demo License: GPL v3 Code style: black

ERT - Ensemble based Reservoir Tool - is a tool to run ensemble based on reservoir models. ERT was originally devised as tool to do model updating (history matching) with the EnKF method, now the primary method for model updating is the Ensemble Smoother (ES).

$ pip install ert
$ ert --help

or, for the latest development version:

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

The ert program is based on three different repositories:

  1. ecl which contains utilities to read and write Eclipse files.

  2. libres utilities to manage reservoir data, and algorithms do actually do model updating.

  3. ert - this repository - the actual application and all of the GUI.

ERT is now Python 3 only. The last Python 2 compatible release is 2.14

Developing

ERT is Python and C software. To start developing, install it in editable mode:

$ git clone https://github.com/equinor/ert
$ cd ert
$ pip install -e .

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

$ pip install -r dev-requirements.txt
$ pytest tests/

ERT is meant to be installed using setup.py, directly or using pip install ./. The CMakeLists.txt in libres exists, but is used by setup.py to generate the ERT C library (the C library formerly known as libres) and by Github Actions to run C tests.

ERT requires a recent version of pip - hence you are advised to upgrade your pip installation with

$ pip install --upgrade pip

If your pip version is too old the installation of ERT will fail, and the error messages will be incomprehensible.

Testing C code

Install ecl using CMake as a C library. Then:

$ mkdir build
$ cd build
$ cmake ../libres -DBUILD_TESTS=ON
$ cmake --build .
$ ctest --output-on-failure

Building

Use the following commands to start developing from a clean virtualenv

$ pip install -r requirements.txt
$ python setup.py develop

Alternatively, pip install -e . will also setup ERT for development, but it will be more difficult to recompile the C library.

scikit-build is used for compiling the C library. It creates a directory named _skbuild which is reused upon future invocations of either python setup.py develop, or python setup.py build_ext. The latter only rebuilds the C library. In some cases this directory must be removed in order for compilation to succeed.

The C library files get installed into res/.libs, which is where the res module will look for them.

Example usage

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. This is described in the Post installation section of the libres README. 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.

In the location test-data/local/example_case is a small ert case which can be used to verify that your installation is basically sound. The example config file looks like this:

-- This ert configuration file is an example which can be used to check that your
-- local ert installation is basically sane. This example is not meant to be used
-- as an automatically run integration test, rather it is meant to be tested
-- interactively. In addition to the compiled application this will also verify that
-- the various configuration files are reasonably correctly stitched together.
--
-- To actually test this invoke the ert binary you have installed and give the path to
-- this file as argument:
--
--    /path/to/installed/ert/bin/ert example.ert
-- 
-- The example is based on the ECLIPSE100 forward model, that implies that you must
-- configure the local eclipse related details corresponding to your site[1].
-- 
-- NB: the current case has *not* been carefully constructed to demonstrate the
-- capabilities of ert; from a model updating perspective the current case is
-- totally uninteresting.
-- 
-- [1]: This amounts to editing the file ecl_config.yml in the res.fm.ecl python
-- package from the libres installation. See the documentation in the
-- ecl_config.yml example file supplied with the libres distribution, or
-- alternatively the "Post install configuration" section in the libres README. 

NUM_REALIZATIONS 20

QUEUE_SYSTEM LOCAL
QUEUE_OPTION LOCAL MAX_RUNNING 4

RUNPATH      output/simulations/runpath/realisation-%d/iter-%d
ENSPATH      output/storage

ECLBASE   EXAMPLE%d
DATA_FILE eclipse/model/SPE1.DATA
REFCASE   eclipse/refcase/REFCASE

GEN_KW MULT_PORO templates/poro.tmpl   poro.grdecl  parameters/poro.txt

-- This job will copy the file eclipse/input/schedule to the runpath folder. 
SIMULATION_JOB COPY_FILE eclipse/input/schedule  


-- This forward model job requires that you have eclipse version 2016.02
-- installed locally, feel free to modify this to use a different version if
-- that is what you have installed.
SIMULATION_JOB ECLIPSE100 2016.2 <ECLBASE>

OBS_CONFIG observations/observations.txt


-- This tells ert that you want to load all summary vectors starting with 'W'. 
-- 'F' and 'BPR'. To be able to use the wildcard notation this way you need to 
-- specify a REFCASE.

SUMMARY W*
SUMMARY F*
SUMMARY BPR*

NB: Depending on which reservoir simulator versions you have installed locally you might have to change the eclipse version number 2016.2 to something else.

To actually test this go to the test-data/local/example_case directory and start ert by giving the full path to the installed binary:

   cd test-data/local/example_case
   /local/ert/install/bin/ert example.ert

Then the ert gui should come up and you can press the Run simulations button. In addition to the gui there is a simple text interface which can be invoked with the --text option.

Configuration

The site_config file

As part of the installation process ERT will install a file called site-config in share/ert/site-config; when ert starts this file will be loaded before the users personal config file. For more extensive use of ert it might be beneficial to customize the site-config file to your personal site.

To customize, you need to set the environment variable ERT_SITE_CONFIG to point to an alternative file that will be used.

6.2 Forward models

ERT contains basic functionality for forward models to run the reservoir simulators Eclipse/flow and the geomodelling program RMS. Exactly how these programs depend on the setup on your site and you must make some modifications to two files installed with ERT:

6.2.1. Eclipse/flow configuration

In the Python distribution installed by ERT there is a file res/fm/ecl/ecl_config.yml which is used to configure the eclipse/flow versions are available at the location. You can provide an alternative configuration file by setting the environment variable ECL_SITE_CONFIG.

6.2.2. RMS configuration

In the Python distribution installed by ERT there is a file: res/fm/rms/rms_config.yml which contains some site specific RMS configuration. You should provide an alternative file with your local path to the rms wrapper script supplied by Roxar by setting the environment variable RMS_SITE_CONFIG to point to the alternative file.

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 Distributions

ert-2.25.0b1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

ert-2.25.0b1-cp39-cp39-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

ert-2.25.0b1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

ert-2.25.0b1-cp38-cp38-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

ert-2.25.0b1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

ert-2.25.0b1-cp37-cp37m-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

ert-2.25.0b1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

ert-2.25.0b1-cp36-cp36m-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file ert-2.25.0b1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for ert-2.25.0b1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 04bb8207cc9ff2fa8610873fdf69d6f38a9e8d1e4b2f897f6116332c29ccfdf9
MD5 3488c959f847098acd67f3cd7b175862
BLAKE2b-256 c4ee4dce6b06cbe02b420911114c4bf5f33353ea1359a66ff74f2259f2c26859

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: ert-2.25.0b1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for ert-2.25.0b1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 87060a83def233f5c4fbf51221658177d55aa6dfada9d226f43a9469771127b1
MD5 be7af3865fdd2711cb6070aa06fb8756
BLAKE2b-256 6771ff819ec59f8630e59e0fafab12ed8214bbaec140fce0d00268a9d8baaa9e

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for ert-2.25.0b1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a32b9070837c24534607adf444f630208552c6595f4f11af52d6e9fc6661a8ac
MD5 ec87ebfe31ea2f23fa3cde153b0e87d7
BLAKE2b-256 ff0a8faa5407feac0a7ea04a0e37691383ae474ce0d85bb1d40c48c36cf3c694

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: ert-2.25.0b1-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for ert-2.25.0b1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b72e2e3ce27357baf66174ac56a7ff16608b3c3d9fd36f727e606a8443f3800
MD5 a4fd09a8365762a47ce7225d77273d59
BLAKE2b-256 6d8a9747bd80ad92a4b3c4ca6c2008f2853be11ece83340f1351ce59c76ffd79

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for ert-2.25.0b1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 875a88bf9ac088ec179b22a505378aca537b0fb099b57926a5605de23a171978
MD5 a1621b7603b636a3db71d47ddcda2c6e
BLAKE2b-256 551c5af1518899c4d852a506d918c81b6272a09a3b02d7ad70803fafebde3d0b

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: ert-2.25.0b1-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for ert-2.25.0b1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ed8cdde104d6af35cfdeb3f02201c9bda3ce047eaf394b95fe13d84a4898c858
MD5 12e82f1daf87f52e3db9eef5f587d155
BLAKE2b-256 40db0674323eaa52086fd9585bff3c74f9f8fdf61593efb13dc0af86c9d955cd

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for ert-2.25.0b1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c9fe525de476fd1e7d6d5db686c793a48f0305e42b36716eec116133a4c9bbf7
MD5 b7758d3e8e8eea0324e175b7cd7b9e5f
BLAKE2b-256 68b7d499810c647e1041c4da8ccc4c79dbe34c1c323df912e77aaa1216d2c33f

See more details on using hashes here.

File details

Details for the file ert-2.25.0b1-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: ert-2.25.0b1-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for ert-2.25.0b1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2173abb2c2d7df92ca49de02dbb99589722c5ca13c9d75d6c02620a9f72f3a87
MD5 0532b2ce7a01fc10a7e7575afafbf84e
BLAKE2b-256 e55ddfaa83dc8376d5d0ef99465de1bc17e103d98f1d341080031207b7356ef8

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