Ensemble based Reservoir Tool (ERT)
Project description
ert
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).
Prerequisites
The following is needed to run ert properly
- libblas
- lapack
MacOS already ships with BLAS and LAPACK implementations in its vecLib framework.
Installation
$ 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:
-
ecl which contains utilities to read and write Eclipse files.
-
libres utilities to manage reservoir data, and algorithms do actually do model updating.
-
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
Documentation
Documentation for ert is located at https://ert.readthedocs.io/en/latest/.
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
Basic ert test
To test if ert itself is working, go to test-data/local/poly_example
and start ert by running poly.ert
with ert gui
cd test-data/local/poly_example
ert gui poly.ert
This opens up the ert graphical user interface. Finally, test ert by starting and successfully running the simulation.
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. 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
Built Distributions
File details
Details for the file ert-2.28.0b1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: ert-2.28.0b1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b58dfe711fa0c55583423fdab015381fa32e584bd851bf29cece0704ee8db5c |
|
MD5 | 7ec39929271476468f9a6627c430cb09 |
|
BLAKE2b-256 | 6d73393d43edc85b79b54b9a6eddfa0e826ee81b4e84bfedc3a1f10e1968eae8 |
File details
Details for the file ert-2.28.0b1-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ert-2.28.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.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a316c08da2520a5655c85d2709c3f25ff894b4b430fdab7ac0d36725889a842d |
|
MD5 | e7531721d413a3afc3390f36d09b53e0 |
|
BLAKE2b-256 | f90303c4662d971b5b9159cafe717f2b138d1301403e7b585d67450235a71d56 |
File details
Details for the file ert-2.28.0b1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: ert-2.28.0b1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca17fe9a2db17e44850494f15f33c26b2f5f3c709d6d71ac036837e237a20f09 |
|
MD5 | faa61e8f965cc3c8c14de3dba1ac8b29 |
|
BLAKE2b-256 | a1411b5afecc26b73b0fd69e03ec0a1055210134f7aefb7c51d76065afdc33cc |
File details
Details for the file ert-2.28.0b1-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ert-2.28.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.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9aac4f81c8850b7facce8f8cfdfbb8bba856d9430504ff71ab5ab57b6ba04ed |
|
MD5 | 0f2341a69e073be50214e7615f872985 |
|
BLAKE2b-256 | 5e6ec535a8e47998c2a5819e5f27dd1d86dfc6405a82526f6fd08237b968ba29 |
File details
Details for the file ert-2.28.0b1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: ert-2.28.0b1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3817ad0a08a705e4fba2c5d280f114af14bb46451001e9bb3f42e547ff379431 |
|
MD5 | 09a5342430b8cac653dab3768c3934f4 |
|
BLAKE2b-256 | 35fa0a5314cc309dca17a1b74b7c780c145df8dd389ced3e070f3c086c0fbc88 |
File details
Details for the file ert-2.28.0b1-cp37-cp37m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ert-2.28.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.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5108b24ce786f6fc028ee56ce07d06774bb41544735738908e7e9bf1de12a452 |
|
MD5 | 743701dec99613441718ea85a2b2ba2b |
|
BLAKE2b-256 | d15e0ead0feb3028a761c4afad347fe800db7ac9d11926330501fe8d157c1823 |
File details
Details for the file ert-2.28.0b1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: ert-2.28.0b1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3ef5e32bfae28c563b02c4700960964172bec041a8fc3b930944fb85b10f6ba |
|
MD5 | e39170a601a67d3d58e37220b3122373 |
|
BLAKE2b-256 | 9856480b0be595128411a544b5a14a7a85287efb1b9719b65d38de4998ac93b8 |
File details
Details for the file ert-2.28.0b1-cp36-cp36m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ert-2.28.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.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1aee51f1d1696ccfcc5d2b79c5615f446528fdba170f2857d14948aa8cf0c999 |
|
MD5 | 592d0c15bd8a81e7fdc63f70e9989c30 |
|
BLAKE2b-256 | 2b555921d9e92c4fc0cfa3f24e1e89d4627ad903f2a6107d5643ba1e5beb2907 |