Using a parametrized ECLIPSE model with enkf

From Ert

Jump to: navigation, search


General overview

The enkf application is mainly an application for history matching and uncertainty analysis. It is operated via simple TUI.

Starting up

When you start the enkf application (instructions on how to start/locate the executable and so on can be found here: Workflows for history matching using enkf) you will be presented with the following screen:

svn version : 1867M
compile time: Thu Apr 16 08:12:34 MEST 2009

|             Main menu              |
| c: Manage cases                    |
| r: Run or restart experiment       |
| p: Plot results                    |
| e: Export data to other formats    |
| t: Table of results                |
| ---------------------------------- |
| q: Quit                            |


In addition to the menu you should observe the line:

svn version : 1867M
compile time: Thu Apr 16 08:12:34 MEST 2009

this is the internal enkf version number, and the time this particular version was compiled. If you have problems of some kind, it might be interesting to the developers to know these exact numbers.


The first time you start using enkf on a new model you must initialize the model. This is done as follows: c: Manage cases, this will give the following menu for cases (more details on cases is given further down):

|              Manage cases - current: default             |
| l: List available cases                                  |
| c: Create new case                                       |
| s: Select case                                           |
| -------------------------------------------------------- |
| i: Initialize case from scratch                          |
| a: Initialize case from existing case                    |
| p: Initialize case FOR PREDICTIONS from existing case    |
| -------------------------------------------------------- |
| e: Copy full ensemble to another case                    |
| o: Copy ensemble of parmaters to another case            |
| -------------------------------------------------------- |
| b: Back                                                  |


To initialize a new case you should press i: Initialize case from scratch. This will give the following menu for initialization:

|           Initialize from scratch           |
| 1: Initialize all members/all parameters    |
| 2: Initialize all members/one  parameter    |
| 3: Initialize one member/all parameters     |
| 4: Initialize one member/one parameter      |
| ------------------------------------------- |
| b: Back                                     |

press 1: Initialize all members/all parameters and then b: Back two times to come back to the main menu. In general you should not initialize every time you start enkf; however if you add new parameters, or change distribution/ranges for existing parameters you must reinitialize.


To use the enkf program to run simulations you should type r: Run or restart experiment from the main menu. Then you will come to the run menu, which looks like this:

|                              Run menu [case:default]                               |
| x: Run ensemble experiment                                                         |
| ---------------------------------------------------------------------------------- |
| s: Start EnKF run from beginning                                                   |
| r: Restart EnKF run from arbitrary state                                           |
| ---------------------------------------------------------------------------------- |
| p: Start predictions from end of history                                           |
| ---------------------------------------------------------------------------------- |
| ---------------------------------------------------------------------------------- |
| a: Analyze one step manually                                                       |
| i: Analyze interval manually                                                       |
| ---------------------------------------------------------------------------------- |
| d: Set new value for RUNPATH:/d/felles/bg/scratch/EnKF/joaho/Simulations/Real%d    |
| ---------------------------------------------------------------------------------- |
| b: Back                                                                            |

In this menu the menu options x,s,r,p are the most important, and will be described in some detail below

Run ensemble experiment

What we have called an 'ensemble experiment' is just a simple way to run many simulations easily. When you run an ensemble experiment you are asked which realizations you want to simulate, and then enkf runs through them all. We recommend running ensemble experiments both at the start of the project, to check that your parameters are 'in the right ballpark', and at the end of the project an ensemble experiment should be run to verify the results of the match. Observe the following about ensemble experiments:

  1. The parameters are not updated, this is not History Matching.
  2. The simulations are run through the entire history, and if SCHEDULE_PREDICTION_FILE has been used the predictions part is also simulated.
  3. When the simulations are complete all summary data, and the final state are internalized into the enkf 'database'.
  4. The directories where the simulations are run (see the variable RUNPATH) are 100% normal ECLIPSE simulation directories. By default they are not deleted when the simulation is complete, so you can look at the simulation results with your favourite application for visualization (see documentation of the variables KEEP_RUNPATH/DELETE_RUNPATH for details).

Ensemble experiments at the start of the project

As mentioned above running an ensemble experiment is not History Matching; the parameters are not updated. So - why bother?? For all History Matching projects the most important and also most difficult job is to determine which parameters to adjust. If you are trying to find a match by adjusting parameters which do not affect the reservoir behaviour you do not stand a chance, irrespective of whether you are using a tool for assisted History Matching or you are proceeding manually. Finding a suitable parametrization must be done manually, preferably in cross-disciplinary cooperation. Using an ensemble experiment you can get an indication if your parametrization is in the right ballpark - if your initial realizations show a spread around the observed values you have a good chance of getting a match, on the other hand your chances of getting a good result will be slim if all the initial results are widely different from the observed values.

Typically your first attempt will give results which do not match at all, looking at the results you will get ideas for additional parameters to add to the study, maybe change the uncertainty limits on some of them and so on. Then you run a new experiment until you have got something which you believe might match with some parameter adjustments.

Ensemble experiments to verify the match

As explained in .... the ... So, to verify that the results are indeed good you should reinitialize a case (link:) with the updated parameters and rerun the simulations.

EnKF run for history matching

When you have run ensemble experiments and verified that your choice of parameters is reasonable it is time to start the History Matching where parameters are updated. With the menu alternative 's: Start EnKF run from beginning' the EnKF simulation will start from report step 0 and then integrate forward. Every time new data becomes available all the simulated results are compared with the observed data, and the parameters are updated accordingly. This is the EnKF algorithm. More details on this works can be found here....

If simulation crashes for some reason you can restart it with 'r: Restart EnKF simulation from arbitrary state'.

Start predictions from end of history

Managing cases

This needs to be written.


This needs to be written.

Running screening experiments

This needs to be written.

Running the EnKF algorithm

This needs to be written.

Quality checking of the results

This needs to be written.

Generating and exporting plots

This needs to be written.

Ensemble plot


Observation plot


RFT plot




Generating and exporting tabulated values

This needs to be written.

Exporting data to other formats

This needs to be written.

Loading csv values into excel:

   Unfortunately Excel does not seem to recognize the csv format, and
   it is necessary to go through a text import wizard in excel. To
   import this file you go through the following hoops in excel:

    1. [Data> - [Import external data> - [Import data>

    2. Select the file to import from.

    3. The text import wizard from excel should pop up:

         1. Select (*) Delimited - press next.
         2. Select delimiter "Comma" - press next.
         3. press finish.
      Finally you are asked where in the excel workbook you want to
      insert the data.
Personal tools
Download code