MRST - MATLAB Reservoir Simulation Toolbox

Release Notes for MRST 2014b

Highlights of MRST 2014b

The 2014b release of MRST features

  • A new, alternative implementation of the implicit solvers based on automatic differentiation. The new version is based on MATLAB classes and supports targeted control and customisation of individual portions of the solution process including specification of physical models, discretisation techniques, linear and non-linear solvers and more. This is an early preview of functionality we plan to develop more fully in future releases.
  • New solvers, based on the automatic-differentiation package, added to the co2lab module for studying carbon capture and storage problems.
  • The impesTPFA solver function is no longer supported and has been removed from MRST. It may return in updated form at some future date, but for now we recommend that users who need to solve problems of black-oil type use the solvers based on automatic differentiation.


The MRST developers wish to thank Ludovic Ricard at CSIRO for bringing an important issue concerning the robustness of inputting ECLIPSE-type formatted result files.

New developments in MRST 2014b


  • The incompressible pressure and transport solvers incompTPFA, explicitTransport, and implicitTransport all implement a new option ('gravity') that enables direct user specification of the gravity vector for a particular solve. Previously the gravity vector was used directly from the gravity function which represented a single point of failure in that it had to be reset correctly for any particular run. The new option makes the solvers more versatile and applicable in situations that were not previously considered.
  • The plotCellData function now defaults to drawing edges between faces and cells. The edges are by default drawn in a grey colour ('EdgeColor', [0.4, 0.4, 0.4]). Pass option 'EdgeColor', 'none' to restore the previous behaviour.
  • The addWell function now defaults to using an inner product commensurate with discretisations based on the two-point flux approximation. The previous inner product is avilable through option 'InnerProduct', 'ip_simple'.
  • The list of active modules returned by mrstModule list now reflects relative order in the MATLAB search path. Specifically, the modules listed early in the output are located in front of modules listed later in the MATLAB search path.
  • The low-level option parsing function merge_options has two new features intended for function and module writers
    1. If a caller defines an option value as a cell array, then function merge_options will bypass the type check on the input option value and consequently accept any option values input. The result of merge_options will always be a cell array in this case. This feature allows callers to selectively implement uniform support for single or multiple value input of uniform or heterogeneous types.
    2. If called with two output parameters, function merge_options will return a cell array of "key"/value pairs corresponding to option pairs that were not matched in the caller's declared options. In this case function merge_options will not emit diagnostic messages concerning unmatched options.
  • The ADI class now supports the min operator and support for the max operator has been extended to mixed mode operation with scalars.

Grid coarsening ('coarsegrid')

  • Function explosionView now supports transparency level for individual coarse blocks specified by the user.

Deck input support module ('deckformat')

  • Function initEclipseRock now extracts the reference pressure for rock compressibility.
  • We now transparently handle zero-element vectors in formatted ECLIPSE-type result files. Thank you to Ludovic Ricard at CSIRO for bringing the issue to our attention.
  • Function readEclipseDeck now supports well templates in keyword WELOPEN.
  • We have corrected a programming error in the initEclipseState function that produced incorrect initial saturation distributions in systems with initial free gas.

Non-default discretisations and solvers

  • The impes module featuring the impesTPFA solver function has been removed from MRST. It had fallen into disrepair and the efforts required to restore its functionality were deemed prohibitive at the time of the release of MRST 2014b. The developers recommend that users who wish to solve nonlinear problems of black-oil type use the implicit solvers based on automatic differentiation.
  • The mimetic solver for incompressible pressure problems (module 'mimetic') has been renamed from solveIncompFlow to incompMimetic. This is for consistency with other, similar solvers incompTPFA and incompMPFA. The solveIncompFlow function still exists for backwards compatibility but now generates a diagnostic recommending that the caller be updated to use function incompMimetic.

Flow diagnostics module ('diagnostics')

  • MRST 2014b introduces a new visualisation function, plotTracerBlend, for visually inspecting reservoir tracer partitioning.
  • The flow diagnostics tools are now structurally compatible with solution structures produced by the solvers based on automatic differentiation.
  • Function computeWellPairs now outputs true depths of completions rather than offsets from the corresponding well's reference depth.

Interactive visualisation ('mrst-gui')

  • The plotToolbar visualisation environment now supports on-demand data set loading from on-disk files so the data need not be in memory. This function is also made compatible with the "Handle Graphics 2" graphics system implementation of MATLAB R2014b.

Published October 31, 2014