Skip to content
This repository has been archived by the owner on Jul 19, 2021. It is now read-only.

equinor/libres

Repository files navigation

⚠️ This repository is no longer maintained ⚠️

Libres has merged with it's mothership ERT 👾

libres Libres testing Code style: black

libres is part of the ERT project: Ensemble based Reservoir Tool. It is now available in PyPI:

$ pip install equinor-libres

or, for the latest development version (requires GCC/clang and Python.h):

$ pip install git+https://github.com/equinor/libres.git@master

Development

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

libres 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 libres will fail, and the error messages will be incomprehensible.

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 libres 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 python/res/.libs, which is where the res module will look for them.

Testing Python code

Install the required testing packages and run tests.

$ pip install -r test_requirements.txt
$ pytest

Testing C code

Install ecl using CMake as a C library. Then:

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

Configuration

The site_config file

As part of the installation process libres 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 benefical 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

libres 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 libres:

6.2.1. Eclipse/flow configuration

In the Python distribution installed by libres 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 libres 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.