ERT
- Model updating with Ensemble Smoother
- General automation of reservoir modelling
- Extensive scripting capabilities for Eclipse files
ERT Background
1994 : EnKF introduced for state estimation in oceanography (Geir Evensen)
2003 : EnKF used for combined state and parameter estimation in oil reservoirs (Geir Nævdal)
2005 : EnKF implementation internally at Hydro Research (Geir Evensen)
2007 - 2018 : ERT implementation in Hydro/Statoil/Equinor (Joakim Hove +++)
Trivial example:
Geophysicist
Reservoir engineers
Geologist
ERT encourages / enables:
- repeatable workflows
- interdisciplinary work
- consistency from seismic interpretation to
production profiles.
But - underneath the modelling challenge is unchanged!
Running simulations
ERT has support for running on:
- local workstation
- LSF cluster
- "SSH cluster"
- Torque cluster
Adding new cluster types is quite simple
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 SIMULATION_JOB ECLIPSE100 2016.2 <ECLBASE> OBS_CONFIG observations/observations.txt
The forward model
- Extremely flexible
- Anything which can run in batch
- Runs as separate process
- stdout and stderr are redirected to files
- Comes with a list of builtin jobs - it is simple to add your own
INSTALL_JOB RELPERM jobs/RELPERM
FORWARD_MODEL RELPERM
SIMULATION_JOB RMS rms <iens> 11 my_project rms_export rms_import workflow
SIMULATION_JOB ECL100 2017.2 <ECLBASE>
Python API - extend and reuse I
Workflows: You can configure ERT to run arbitrary code at specific points in the workflow:
-- Load the worklow job:
LOAD_WORKFLOW_JOB job_file.txt VOLUME_JOB
-- Load the actual workflow:
LOAD_WORKFLOW workflow.txt VOLUME_WF
-- Register the workflow to run after simulations
HOOK_WORKFLOW VOLUME_WF POST_SIMULATION
Python API - extend and reuse II
Eclipse binary files: There is an extensive functionality for working with eclipse binary files.
#!/usr/bin/env python from ecl.summary import EclSum import sys
case = EclSum(sys.argv[1])
for key in sys.argv[1:]:
vector = case.numpy_vector(key)
More extensive example at:
https://github.com/datagr/examples/blob/master/libecl/summary/ens_stat
Open source
- Licensed under GPL3
- Copyright by Equinor
- Developed on GitHub: https://github.com/Statoil/ert
Requirements
- Linux workstation(s)
- Forward models must run in batch
Analysis module
The low level analysis code is implemented in a separate module - essential e.g. for this project.
Analysis module
Eclipse IO
Queue system
Uncertain parameters
Observations
OPM/flow
An open source alternative to Eclipse which works as drop-in replacement for Eclipse.
-- ERT easily supports flow:
SIMULATION_JOB FLOW 2018.10 <ECLBASE>
Help with:
- Installing ert and opm/flow
- Setting up a ert setup - internally; possibly based on the DIGIRES results.
- Small programming tasks / improvements / customizations
datagr: ERT/opm based consulting
ERT - Digires
By Joakim Hove
ERT - Digires
- 806