DeepSim User Manual


Thank you for installing DeepSim  on your phone or tablet. DeepSim is designed to be an intuitive reservoir simulator. Even though DeepSim is designed to be intuitive in its use, sometimes things might not be immediately clear. The purpose of this manual is to help you on your way as soon as possible. For technical details on you are referred to the coming technical reference manual.

Note: this manual in currently a work in progress. If a particular section is not available yet, please check back later, most likely the missing sections will have been added.

Main menu

When DeepSim is opened, you will be greeted by the main menu. A picture of the main menu is provided in the figure below:

The main menu provides a two line summary of the current simulation setup. Specifically it list the grid dimensions  the number of components that are going to be used in the simulation.

Below the setup summary, there are seven buttons that will take you to subsequent screens. These screens are:

  • Change setup
  • Simulate
  • Results – Graphs
  • Results – 3D viewer
  • Results – Export to CSV
  • Import / Export model
  • About

The “Change setup” button will take you to the setup screen. From there you can change anything in the current simulation setup.

The “Simulate” button will take you the simulation menu, from which you can start or resume simulation runs.

The “Results – Graphs” menu can be used to show current simulation results in the form of graphs at both the well and field scale level.

The “Results – 3D viewer” screen, you can view the simulation outcomes in 3D.

The “Results – Export to CSV” screen will allow you to export simulation results for selected wells (or field level) in the CSV (comma separated values) format. The resulting CSV files can be post-processed in tools like Excel or Matlab.

The “Import / Export model” button will allow you to save the current setup or load a previous setup from file.

Finally the “About” button will show you version info and link for more information.

Each screen will be described in more detail in later sections.

Simulation menu


From the simulation menu you can either start a new simulation, or extend a currently ongoing simulation.

The simulation menu will look like the figure below:

The simulation screen contains the following elements:

  • Graph showing field oil and water rates
  • Information about current recovery factors
  • A progress bar
  • A spinner button with the intended simulation length
  • A “Go!” button.

Starting a new simulation or resuming an existing one.

To start or resume a simulation, simply select the length of time you wish to simulate for and press the “Go!” button. The “Go!” button will either start new simulation or resume an existing simulation.

The “Go!” button will start a new simulation if something has changed in the simulation setup since the last simulation run. The “Go!” button will resume an existing simulation if nothing has changed since the previous simulation run.

Live progress information while simulating

While a simulation is ongoing DeepSim will show a dialog to indicate that the simulation is in progress. The following information will be shown while the simulation is ongoing:

  • The graph will show field level produced oil and water rates.
  • The text showing recovery factors for oil and gas will be updated.
  • The cumulative amount of oil/gas/water will be updated.

Simulation in the background

Simulation can take a significant amount of time. If you wish to do something else while waiting, DeepSim will continue the simulation even if DeepSim is not running in the foreground.

Setup menu


The setup menu provides access to a number of sub-menus, that will allow you to change all variables in the simulation model.

The current setup options are:

  • Grid – number of blocks, block size and orientation
  • Rock Properties – perms, porosities and rock compressibility
  • Relative permeability
  • Capillary pressures – oil-water and gas-oil pc curves
  • PVT – to select which components to simulate
  • Initialization – initial fluid properties (contacts, pressure, temperature, composition)
  • Aquifers – to add linear or radial aquifer on edge of the grid
  • Wells – to add or remove new producer or injector wells.

Each of the submenus will be discussed in detail below.


In the grid menu, you can setup up the simulation model geometry. To set up a box  model (DeepSim’s user interface only supports box models at this time – even though the underlying computation engine supports arbitrary models) you are required to enter the following data (in this order):

  • Size of an individual grid block in x, y, z direction.
  • Number of grid blocks in x, y and z direction
  • Rotation of the grid w.r.t. x, y and z axis.

First three fields cover allow you to input the size of an individual grid block in x-, y-, and z-directions. In DeepSim the axis orientation is as follows:

  • x-axis points out of the screen, toward the user
  • y-axis points from left to right
  • z-axis points down.


Rock properties


The rock properties menu allows you to change permeabilities, porosities and rock compressibilities.

Each property can be set to a different values per grid block layer. This allows you to build so-called layer-cake models.

Setting permeabilities

To set the permeability in a certain direction (either x, y, or z direction), chose the corresponding tab. Deepsim will then display the permeability per layer. To change a permeability simply tap on the number and type in a new value.

For convenience, three options are available to quickly set the permeabilities for all layers. First there are the ‘Copy from perm x/y/x’ buttons. Clicking on these buttons will open a dialog asking for a multiplier that is applied after copying all values.

Secondly there is a button called “Set to a constant”. Selecting this button will open a dialog window that asks for a permeability value. After selecting a value, all layers will be assigned this permeability value.

Setting porosities and compressibilities

To set the porosity or pore volume compressibility, chose the corresponding tab in the Rock properties menu. Deepsim will then display the porosity of compressibility per layer.

Porosity is defined as \phi=\frac{\textnormal{GBV}}{\textnormal{GBV}}, where GBV is the Grid block fluid volume, GRV is the gross rock volume and \phi is the porosity.

Rock compressibility (denoted by c_\phi) is given by:

c_\phi = \frac{1}{\phi}\frac{\partial\phi}{\partial p}

For convenience all porosities or compressibilities can be set in one go. This can be done by pressing the “Set to a constant” button . Selecting this button will open a dialog window that asks for a  value. After selecting a value, all layers will be assigned this  value.

Relative permeabilities

The volume flux per phase depends on the relative permeability. In the relative permeabilities menu you can set the relative permeability for each phase as a function of the phase saturation.

For this purpose three tabs are available, a water tab, an oil tab and a gas tab. Once a tab is selected, the currently used relative permeability is plotted as a function of the phase saturation.

To change the relative permeability behavior, you can change the Corey-parameters below the graph.

The Corey correlation used by DeepSim to calculate phase relative permeabilities for phase x are:

  • rlp = 0 for saturation below S_{xc}
  • rlp = Krx for saturations above S_{x end}
  • rlp = for S_{xc}<S_x<S_{x end}

Note that in DeepSim the phase relative permeabilities are only dependent on the phase saturation itself. This is a slight simplification compared to the default relative permeability models found in other simulators where the middle phase (usually oil phase) is calculated as a function of the most wetting an least wetting phase saturations.

Capillary pressures

In the capillary pressure menu you can set the capillary pressure (Pc) difference between oil – water and gas – oil saturation as a function of either the water and oil phases.

The Pc difference is used in both initialization and fluid flow equations. So specify a capillary pressure curve DeepSim uses the following simple correlation:

\Delta Pc(sat_n) = a e^{-b sat_n} + c




 a = (pcmax - pcentry)\left(1-e^{-Pc_{curv}}\right)^{-1},


 b = Pc_{curv},


 c = Pc_{entry} - a e^{-Pc_{curv}}.


 sat_n = \frac{Sat - Sat_{begin}}{Sat_{end} - Sat_{begin}}

What this means in less mathematical terms is that the Pcmax parameter determines the maximum Pc difference between phases that will occur at connate water or oil saturations.

The Pc entry parameter determines the capillary entry pressure, ie. the pressure at  maximal water and oil saturations.

The Pc curvature parameter determine how curved the line between maximum and entry Pc is. The higher the curvature number the more curved the line will be.

The beginning and ending saturations are read from the Relative permeability curves to ensure consistency.

As usual in DeepSim, the provided graph will automatically update as you change the numbers.


Selection of PVT Components

DeepSim is a compositional reservoir simulator. That means that simulate the flow of oil and gas you need to supply the components that make up the water, oil and gas phases. In the PVT menu, you can select the component that you would like to simulate in the various phases. Selecting components is as simple as selecting the various check boxes. If you want to see the component properties, tap on the name of the component. For user defined components, you can now also edit component properties. For built-in components, the properties are read-only and cannot be changed.

Tip: the simulation time is affected by the number of components chosen. It is advisable to select only those components that are  strictly necessary to get approximation to phase behavior.

Other than selecting the phase components, you will also need to specify that initial mass fractions of each component in the water, oil and gas phases. This is done in the Initialization menu (see next section).

Creating custom components (since version 2018.3)

WARNING: When you define your own components, take care that properties are physically consistent, otherwise simulations will fail!

To create a new custom PVT component, go to the Setup -> PVT menu. The new PVT menu, will display not only the standard built-in component, but the new custom components as well. To create a new component, press the ‘Add new component’ button’.

New PVT component selection menu

This will bring you to the Edit Component menu. The first thing to do is to give the component a new name, and supply basic data, such as molecular weight, and critical properties. These properties will be used to calculate the components gas phase density.

Generic PVT component properties

The gas-oil k-values for a given component can be edited in the Gas k-values tab. By supplying the kv1, kv4, and kv5 parameters, gas-oil k-value can be calculated (see The Properties of Gases
and Liquids”, third edition, R.C. Reid, J.M. Prausnitz and T.K Sherwood, McGraw-Hill, Inc., 1977) using the following correlation:

k_{gas} = \frac{k_1}{p}\exp\left(\frac{k_4}{T-k_5}\right)

In subsequent versions of DeepSim we will also offer the functionality to directly estimate the kv1-kv5 parameter directy from an EOS.

Edit k-value menu

Liquid phase densities can be entered using a simple linear correlation, see below.

Liquid density for new component

And finally, the new component’s viscosity properties can be entered using the viscosity tab:

Edit viscosity tab

Once the component is defined, is can be set in the initial oil, gas and water compositions, just like the built-in components. New custom components can also be used to in the injection composition of injector wells, for more EOR functionality.

To delete a custom component, simple swipe to delete the component.



Before a simulation can be started, DeepSim needs to know what the initial state of the reservoir is. The Initialization menu allows you to set the initial state of the system.

DeepSim assumes that the reservoir is hydrostatic equilibrium when the simulation starts. In hydrostatic equilibrium the user needs to supply the following numbers:

  • Initial pressure and temperature
  • Oil – Water and Gas – Oil contact depths
  • Initial Oil, Water and Gas phase compositions
  • Capillary pressure curves (for possible transition zones).

In the hydrostatic initialization menu, you can enter the first three sets of numbers. Capillary pressure curves can be entered in the capillary pressure menu.

The hydrostatic initialization menu contains four tabs. In the first tab you are asked to enter initial pressure, temperature and initial contact data.

In the remaining three tabs you can enter the composition for each phase.

Initial pressure, temperature and contacts

In the first tab you are requested to enter initial pressure and temperature. Since pressure is dependent of depth at which the pressure is measure, the reference depth (datum) for the initial pressure is required as well.

The other information requested in this tab are the initial oil – water and oil – gas contacts. Since Android does not allow entry of negative numbers, positive numbers are used for depth. Higher positive numbers correspond to deeper contact levels.

To simulate a reservoir with oil, make the oil – water contact equal to the gas – oil contact.

To simulate a reservoir without gas or water, either supply a gas oil contact above the reservoir or a oil water contact that is below the reservoir.

Once you are satisfied with the input, you can check the initial status of the reservoir by pressure the ‘Preview Initialization’ button. This will perform a quick calculation of the initialization and will show you the result in the 3D viewer.

Initial phase composition

In compositional simulation model (DeepSim is fully compositional), the user needs to specify not only the initial phase pressure, pressure and contacts, but also the composition of each phase.

The composition of each phase can be altered by clicking on one of the phase composition tabs. In the tabs, the top half of the screen shows a graph of current phase properties (density, viscosity, Rs, rs, Bo, Bg where relevant) as a function of pressure.

The bottom half of the screen has the phase composition. Phase composition has to be entered as mass fractions. It is not important that the mass fractions do not exactly sum up to one, if necessary DeepSim will re-normalize the mass fractions.

As you change the phase composition, the phase property graphs will automatically update, so that you can directly see the consequence of the changes as they are being made.


Aquifers can be important features in reservoir simulation. In case of a well connected and strong aquifers, an aquifer be the main supplier of drive energy. In such scenarios, it is obviously important to capture the aquifer properties properly.

There are two ways to model aquifers at the edge of a reservoir:

  • Explicit modeling
  • Implicit analytical modeling

Explicitly modeling an aquifer mean the the simulation grid is extended such that all aquifer water can be explicitly captured in the grid. Advantages of this approach are that you have same extensive simulation accuracy and flexibility at you disposal modeling the aquifer as you have for modeling the hydrocarbon bearing zones. Downsides of explicitly modeling an aquifer are that modeling an aquifer analytically requires a high number of extra grid blocks to be added to the simulation model. Given the size of aquifers, this will often slow down the simulations tremendously.

The alternative to modeling an aquifer explicitly, is to do it implicitly by attaching an analytical aquifer to the edges of the simulation grid. What this means is that we replace the explicit aquifer blocks by an analytical (thus fast) proxy model that closely matches the aquifer behavior. Since analytical aquifers can give nearly the same simulation results a a fraction of the simulation time, analytical aquifers are comely used in reservoir simulation. For an overview of analytical aquifer models the reader is referred to the excellent PetroWiki website.

DeepSim offers two analytical aquifer models:

  • Fetkovich linear steady state aquifer model
  • Fetkovich radial steady state aquifer model.

For a description of Fetkovich analytical aquifer models is available at the already mentioned PetroWiki website.

Adding an analytical aquifer in a DeepSim simulation model is relatively simple. Simply to the setup -> aquifers menu.

In the aquifers menu you will see an overview of the available aquifers. The overview lists:

  • aquifer location (north / east / west / south)
  • aquifer extent
  • aquifer type (radial or linear)
  • aquifer status (on or off)

To change an aquifer properties, tap one of the aquifers (North/East/South/West). DeepSim will then open a menu with detailed aquifer properties.

To active or deactivate the aquifer, click on the checkbox widget. The aquifer type and aquifer extent can be altered using their relative input fields.

All other aquifer properties (permeability, thickness, porosity, width, height, compressibility) are copied from the adjacent grid block. This means if a grid block property changes, so do the aquifer properties.


DeepSim’s well model

Before discussing the various well options, it is important to understand the well model used by DeepSim.

DeepSim uses a segmented well model. This means that a well is internally represented by a collection of linked sections. To model a section of well, the well section has to satisfy three sets of equations:

  • Mass conservation equations per component from section to section
  • Optional radial inflow/outflow between well section and a grid block
  • Pressure (BHP) or flow rate boundary (in surface volumes) constraint

Since each well has independent inflow/outflow calculations, a well can cross flow between well segments.

The inflow / outflow equation per well segment used is (see also Petrowiki):

 q_{c,p} = \frac{2\pi k h \textnormal{rlp}(p) X_{c,p}}{\mu_p(\ln [\frac{r_e}{r_w}] + S)} \left(p_{grid} - p_{well}\right)

with q_{c,p} the mass flux of component c in phase p, X_{c,p} the mass fraction of component c in phase p, \mu_p the viscosity of phase p, r_e  the Peaceman radius, r_w the well radius and S the well skin.

Adding, removing and editing wells

When the Wells menu is opened, the user is presented with a list of currently available wells. To add a well, press the ‘Add new well…’ button at the top of the list. After clicking the ‘Add new well…’ button the well-details activity will be opened, where you can enter the various well parameters (see subsequent sections).

To remove an existing well swipe right over an existing well name. This will remove the well.

To edit parameters for an existing well, simply tap on its name. After tapping on the well name, you will be presented with the following screen.

The five tabs on the navigation bar represent the different categories of well parameters. Each tab will be explained below.

Changing a well name, well type (General)

In this tab, you can modify the well name and the well type. For the well name, it’s recommended to choose a short, but meaningful name.

The well type can be either ‘Injector’ or ‘Producer’


In the ‘Trajectory’ tab you can set parameters that  determine the well trajectory and perforation.

First start by entering a well direction. DeepSim supports three types of trajectories:

  • Vertical (along the z-axis)
  • Horizontal (along the x-axis)
  • Horizontal (along the y-axis)

Then, the well location can be specified. The well location is to be given in grid block numbers. Entering a location that is currently outside of the model, will result in a warning will being given.

The length of a well is given by entering starting and ending grid block coordinates along the well orientation (ie. starting and ending z-coordinates for a vertical well). A well is assumed to be completed and open to the reservoir in all grid blocks from the starting and ending grid block numbers given.


To model wells starting after a number of year, or wells being abandoned, the ‘start time’ and ‘stop time’ parameters allow you to pick a well starting and ending time. Note that before the starting time and after the ending time, DeepSim will behave as the well does not exist. This means that there is no cross flow either before / after well is active.

Inflow/Constraints related parameters

In the Inflow / Constraints tab, you can enter parameters related to the fluid inflow and the flow constraints.

DeepSim supports three types of well constraints:

  • Bottom hole pressure constraints
  • Liquid rate constraints
  • Gas rate constraints

The bottom hole pressure constraints will limit the minimum BHP for a producer or the maximum allowed BHP for an injector. If a well exceeds the BHP constraints, DeepSim will first try to reduce well flow rates. If a well cannot flow without violating BHP constraints (even at reduced rates) the well will be shut in at surface. Note that if a well is shut in at surface, well bore cross flow between well segments is still allowed to happen.

Inflow/Outflow related parameters

Inflow / outflow of a well interval is in part determined by the well radius and well skin (see equation in DeepSim well model section). Both well radius and skin can be provided.

Injection composition

In the final tab, the injection composition for an injector well can be set. By default a new injector in DeepSim is a water injector. As such the mass fractions for injectors is initially set to 1.0 for the H2O component and 0.0 for all others.

If you would prefer to inject gas, the injection composition can be changed to 0.0 for H2O and 1.0 for C1. This turn the well into a gas injector.

The mass fractions of can be freely chosen, you could also choose to inject oil, or a mixture of oil gas and water. Since the subsurface composition of the injected fluids will be dependent of the subsurface pressure (and temperature as set in the initialization menu), a convenient chart is provided in which you can see the subsurface properties of the injected fluid as a function of the subsurface pressure.

Results graphs


In the Results – Graph section section you can graphically visualize results from a simulation. Graphs are available at both the well and field level.

Zooming in on areas of interest

Zooming in on areas of interest can be done via pinching and double tapping. Note that pinching and double tapping is possible in all other graphs in DeepSim as well.

Field level graphs

At the field level the following graphs are available as a function of simulated time:

  • Liquid rates
  • Gas rates
  • Injection rates
  • Cumulative liquids
  • Cumulative gas
  • Cumulative injection
  • Reservoir pressure
  • Recovery factors

All reported rates and cumulative volumes are at assumed surface conditions (298K and 101 kPa).

The field average reservoir pressure (p_{avg}) is calculated as:

p_{avg} = \frac{1}{N} \sum_{i=0}^N p(i)

with N the total number of grid blocks. The average pressure calculation does not weigh grid block pressures with grid block volumes.

The recovery factor for oil (RF_{oil}) is calculated as:

RF_{oil} = \frac{\textnormal{surface volume oil and condensate produced}}{\textnormal{surface volume oil and condensate originally in place}}

The recovery factor for gas (RF_{gas}) is calculated as:

RF_{gas} = \frac{\textnormal{surface volume free and associated gas produced}}{\textnormal{surface volume free and associated gas originally in place}}.

So for both oil and gas, the recovery factors include not just the oil and free gas, but also the associated gas and condensates when calculating recovery factors.

Well level graphs

For all wells in DeepSim a number of graphs is available. These graphs are:

  • Liquid rates
  • Gas rates
  • Injection rates
  • Cumulative liquids
  • Cumulative gas
  • Pressure

All reported rates and cumulative volumes are at assumed surface conditions (298K and 101 kPa).

The reported well pressure is the bottom hole pressure (BHP) for the first perforated node of the well. Note that this pressure will generally be either higher (for injectors) or lower (for producers) than the corresponding grid block pressure due to the pressure drop between the reservoir and the well.

Results 3D


In the Results – 3D viewer graphically visualize results from a simulation. In the 3D viewer you can visualize the reservoir properties at a given time. To get an understanding how the reservoir behaves as a function of time, a movie functionality is available as well.

Due to space constraints on the phone platforms, the 3D viewer is only available in landscape orientation.

When the 3D viewer is opened, the screen is split into two parts. On the left hand side there are the control buttons. On the right hand side, there is top view of the reservoir.


Control buttons

There are four control buttons. These buttons allow you change the reservoir property that is currently visualized. The four buttons are:

  • Reservoir property spinner
  • Reservoir time spinner
  • Movie start/stop buttons.

The reservoir property spinner allows you to select the property that you want to visualize. The currently available properties are:

  • Pressure
  • Saturations
  • Porosity
  • Permeability (x/y/z directions)

By default, properties are displayed as they where at initial conditions (t = 0.0 years). To see saturations and pressures at later times, the reservoir time spinner (2nd spinner from the top) can be used. DeepSim allows you to visualize pressures and saturations at yearly intervals. Porosity and permeability are only available at initial times (even though porosity changes due to compressibility effects).

Finally the bottom two buttons can be used to start a movie. When a movie is started, DeepSim will automatically cycle through all available times a property is available. After the last time at which the property has been calculated has been displayed, the movie will automatically restart at t = 0.0 years.

Manipulating the viewing angle

When the 3D viewer is started, the reservoir is shows in a top-down view. To change the orientation at which the reservoir is viewed, three finger dragging motions are available:

  • Single finger dragging → Rotates the reservoir around the depth axis (z-axis)
  • Two finger drag vertical direction → Rotates the reservoir around the y-axis
  • Two finger drag horizontal direction → Rotates the reservoir around the x-axis

Rotating the reservoir is also possible while a movie is being displayed.


To zoom in or out, use the usual pinch gesture. To zoom in put two fingers on the screen and drag the fingers apart. To zoom out, put two fingers on the screen and pull them together.

Advanced 3D viewer options

In the advanced 3D options menu you can:

  1. Set grid block filtering,
  2. Adjust vertical exaggeration, and
  3. Adjust grid transparency.

The first feature, grid block filtering, allows you to use view only selected layers, or cross-sections. This can be very useful when studying sweep efficiency in heterogeneous models. To create a cross-section, go to the 3D viewer as normal. Then, click on the new ‘Options’ menu. This will show the following screen:

Using the x-min, …, z-max sliders, you can conveniently select the grid blocks you want to display.

Below the grid block filtering sliders, you will find sliders for adjustable grid transparency. This feature can be very convenient if for instance, you want to check the well positioning. As an example, we took the same model as above, and increased the transparency (alpha) to 70%. The resulting grid now looks like this:

With the grid block transparency we can see that the injector well is in fact a horizontal wells, perforating the first 5 blocks from the bottom.

The final slider is adjustable vertical exaggeration. Vertical exaggeration is the scaling that is applied in the 3D viewer to make thin layers easier to distinguish. Versions of DeepSim prior to 2017.12 had a fixed vertical exaggeration of 1.0. This sometimes made is difficult to view thin layers. Now this problem is easily fixed by dragging the z-scaling seekbar to the right to increase the vertical exaggeration. As an example, this is a model with 50m x 50m x 2m grid blocks using a vertical exaggeration of 1.0:

The individual layers are hardy visible. This is the same model with the vertical exaggeration increased to about 10.0:

Now the individual layers are easily visible.

Results – Export to CSV

Import / Export model

Preferences menu


The preferences menu allows you to customize the way you interact with DeepSim. You can change the input or output units or the color scheme in which the graphs are presented. To go to the Preferences menu, press the menu button at the top right of all screens, then select preferences.


To change the unit system from the default SI like units to field units (or back again), simply select the Units option from the Preferences menu. Currently the options are: SI-like (length in m, pressure in kPa etc), or field like (length in ft, pressure in psi etc).

Color Scheme

In different countries and companies, there are different coloring conventions on with which color to represent oil and gas. In the Color Scheme menu you can pick your favorite setting. Options are to either set oil to green and gas to red, or the reverse.

Prior to DeepSim v2017.10, DeepSim would represent oil by red colors and gas by green colors both in graphs and in the 3D viewer. This is the color scheme to which the developers of DeepSim are most accustomed to. In 2017.10 we changed this to the more common oil is green and gas is red scheme.