Skip to main content

Package for reading and writing the result files from the ECLIPSE reservoir simulator

Project description

ecl Build Status

ecl is a package for reading and writing the result files from the Eclipse reservoir simulator. The file types covered are the restart, init, rft, summary and grid files. Both unified and non-unified and formatted and unformatted files are supported.

ecl is mainly developed on Linux and macOS, in addition there is a portability layer which ensures that most of the functionality is available on Windows. The main functionality is written in C/C++, and should typically be linked in in other compiled programs. ecl was initially developed as part of the Ensemble Reservoir Tool, other applications using ecl are the reservoir simulator flow and Resinsight from the OPM project.

Alternative 1: Python only

For small interactive scripts, such as forward models, the recommended way to use ecl is by installing it from PyPI. This method doesn't require setting PYTHONPATH or LD_LIBRARY_PATH environment variables:

$ pip install ecl

Alternative 2: C library only

This is for when you need to link directly with the ecl C library, but don't need the Python bindings. ecl requires a conforming C++11 or later compiler such as GNU GCC, the CMake build system and, optionally, zlib.

$ git clone https://github.com/Equinor/ecl
$ mkdir ecl/build
$ cd ecl/build
$ cmake ..
$ make
$ make install

To install ecl in a non-standard location, add -DCMAKE_INSTALL_PREFIX=/path/to/install to the first cmake command. Remember to set LD_LIBRARY_PATH=/path/to/install/lib64:$LD_LIBRARY_PATH if you do use a non-standard location for your program to find libecl.so.

If you intend to develop and change ecl you should build the tests by passing -DBUILD_TESTS=ON and run the tests with ctest.

Alternative 3: C library with Python bindings

It is also possible to install both the C library and Python bindings using CMake. Note that this alternative is incompatible with ecl installed from PyPI (Alternative 1). As before, we require a conforming C++11 or later compiler, CMake and, optionally, zlib.

$ git clone https://github.com/Equinor/ecl
$ mkdir ecl/build
$ cd ecl/build
$ pip install -r ../requirements.txt
$ cmake .. -DENABLE_PYTHON=ON
$ make
$ make install

You will most likely want to install ecl into a Python virtual environment. First activate the virtualenv, then add the argument -DCMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") to the cmake command when building.

Then, you must tell Python where to find the package[1]:

$ export PYTHONPATH=/path/to/install/lib/python2.7/site-packages:$PYTHONPATH
$ export LD_LIBRARY_PATH=/path/to/install/lib64:$LD_LIBRARY_PATH

Then you can fire up your Python interpreter and try it out:

>>> from ecl.summary import EclSum
>>> import sys

>>> summary = EclSum(sys.argv[1])
>>> fopt = summary.numpy_vector("FOPT")

The installation with Python enabled is described in a YouTube video by Carl Fredrik Berg.

[1]: The exact paths here will depend on your system and Python version. The example given is for a RedHat system with Python version 2.7.

Download files

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

Files for ecl, version 2.10.0
Filename, size File type Python version Upload date Hashes
Filename, size ecl-2.10.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.6 MB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size ecl-2.10.0-cp36-cp36m-manylinux2010_x86_64.whl (2.1 MB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size ecl-2.10.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.6 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size ecl-2.10.0-cp37-cp37m-manylinux2010_x86_64.whl (2.1 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size ecl-2.10.0-cp38-cp38-macosx_10_9_x86_64.whl (1.6 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size ecl-2.10.0-cp38-cp38-manylinux2010_x86_64.whl (2.1 MB) File type Wheel Python version cp38 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page