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:

f(x) = ax^2 + bx + c

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)

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:

 

  1. Installing ert and opm/flow
  2. Setting up a ert setup - internally; possibly based on the DIGIRES results.
  3. Small programming tasks / improvements / customizations

 

datagr: ERT/opm based consulting

ERT - Digires

By Joakim Hove