How to run the Volve Oilfield dynamic model in OPM Flow

The Volve Oilfield Simulation model was build on a grid of 108x100x62 cells. The total number of cells in the model is 680400 and the number of active cells is 183,545. The model has 13 wells – 9 Producing, 4 Injecting. The History match is from Jan 2008 to Oct 2016, representing a recovery factor of 46%.

Summary

Detailed description of the .Data file in the Model is available in the articles: Reservoir Simulation Model – Data File description

Different regions in the Volve Oilfield described in the Simulation model

Modifications to Model

The Volve Oilfield simulation model described here was modified to make it compatible with the OPM-Flow Simulation. The primary modifications were in correcting the keyword properties without significantly affecting the Model. The Dynamic model can be downloaded here:

The changes in the .Data file are highlighted in the comparison table. Below is a glimpse of the comparison sheet.

Quality Check the Simulation Run

The correctness of the run was check by comparing the history match of the Oil Rater, Water breakthrough time and the Solution GOR of the field. Individual points in the charts represent the actual field data and the lines represent the simulation results.

Field Oil production rate and Cumulative Oil Produced (Simulated and Actual)
Field Water cut and Solution Gas Oil Ratio (Simulated and Actual)

OPM Flow Parameters File

Modifications were required on the OPM Flow parameters to reduce the time required to run the simulation:

  • enable-tuning=true
  • linsolver=”quasimpes_verbose.json”
  • matrix-add-well-contributions=true
  • max-residual-allowed=1e+03

The OPM-flow parameters files can be downloaded here:

  1. enable-tuning: This parameter instructs OPM flow to read information related to the maximum length of the timestep, the minimum length of a timestep, maximum growth rate of time step and minimum decay rate of time step, etc.
  2. linsolver: The quasi-impes solver is described in the .json file. This solver forms a pressure equation based on diagonal blocks.
  3. matrix-add-well-contributions: Explicitly specifies the influences of wells between cells in the Jacobian and pre-conditioner matrices.
  4. max-residual-allowed: Sets the absolute maximum tolerance for residuals without cutting the time step size. The default is 1e+07. This option avoids wasted linear solves by early exit on diverging nonlinear solves. This prevents the computational cost of the wasted iterations of become significant for expensive preconditioners as CPR. 

Description from the OPM Flow manual

Optimizations from OPM-Flow

A) Cumulative Computational time vs Physical time; B) Computational time vs Daily Physical time

As shown in the figure above, when using the CPR preconditioned (blue) and the default block ILU preconditioner(red), the speedup is large in the period between 0 and 2500 days. The improvement is caused by three effects:

  • The CPR preconditioner allows accurate solutions, which make it possible to converge larger timesteps with the same number of newton iterations (lower left corner).
  • The number of linear iterations for each newton solve is reduced.
  • It reduces the number of failed iterations.

The combined effect is less linear and nonlinear iterations for each a given physical time.

Linear and non linear iterations associated with the solver

Near the end of the simulation between 2500 and 3000 days the improvement is less. In this period the maximum timestep which can be converged is the same for the CPR linear solver and the default solver. In this period many failed steps also happens. 

Significant improvement in Solver time

On a workstation with 20 cores using 8 MPI processors and 2 threads for each MPI processes, the total effect of this modification is the simulation time when from 7451 to 1831 seconds. The time used in assembly went from 616 to 286 seconds, while the linear solve time was reduced from 6363 to 1347 seconds.

The number of newton iterations when from 7471 to 3695, while liner iterations went from 630 to 20 thousand. The percentage of time used on failed operations is at the same time reduced from 20 % to 4%.

We are thankful to Mr Halvor Møll Nilsen, SINTEF for helping us put together the OPM-Flow solver optimizations for this model.

Subscribe for Updates and Conversations

Leave a Reply

Your email address will not be published. Required fields are marked *