Release Notes for MRST 2016a


  • New startup message that aims to make it easier to find MRST functionality
  • mrstExploreModules: New interactive interface for exploring MRST features and modules
    • Presents list of all available modules
    • List of examples for each module
    • List of relevant research literature for each module - be it description of the module itself or work that uses the module in some significant way.
  • Completely reworked examples and tutorials
    These illustrate common workflows in MRST rather than focussing on detailed aspects of incompressible two-phase flow and transport solves.
  • New function mrstExamples that lists all examples for a given module
  • Diagnostic message from mrstPath
    Function mrstPath now warns if a non-existent directory is used as a target to either of the verbs 'add' or 'addroot'. Previously, such directories would be silently ignored.
  • Class ADI now supports computing the maximum of two ADI objects
  • computeGeometry has been overhauled to have greatly improved execution time for larger models. This reduces the need for the C-accelerated function mcomputeGeometry from the libgeometry module.
  • New function simpleEquilibrium that computes initial saturations based on pure geometry for structured problems without capillary forces.
  • getUnitSystem now supports lab units.

 Solvers based on automatic differentiation

The solvers based on automatic differentiation have received a general overhaul to documentation and examples to make it easier to get started with the corresponding modules. We have also created a new module, ad-eor, which contains extended versions of the polymer solvers previously found in ad-blackoil, as well as solvers for surfactant.

Modules ad-core and ad-blackoil

  • Added a new time step selector StateChangeTimeStepSelector that uses changes in solution quantities to automatically choose timesteps.
  • Automatic timestep selectors should behave better when reused between different problems
  • initSimpleADIFluid has been rewritten from the ground up to support weak compressibility and different number of phases. Redundant properties have been removed.
  • fluidPlotPanelAD has been renamed to inspectFluidModel and has been rewritten from the ground up to give improved plotting for black-oil-type fluid properties.
  • Added utility for visualizing nonlinear convergence behavior contained in a "report": plotReportIterations
  • Added utility for setting timesteps to a geometric ramp-up: rampupTimesteps
  • convertDeckScheduleToMRST has changed interface from taking in (G, model, rock, deck) to simply (model, deck).
  • plotWellSols now has an option for stair-step plotting suitable for when the data changes abruptly. Absolute values are taken of the data by default to make production rates more intuitive to users.

Module ad-fi

The functionality in the ad-fi module has been replaced and/or superseded by ad-core and ad-blackoil. The module will not be further maintained and will most likely not be included in future releases of MRST.

New module ad-eor

The ad-eor module has been added! It contains extended versions of the polymer solvers previously found in ad-blackoil as well as brand new solvers for problems with surfactant. The polymer solvers have also been extended with velocity dependent viscosity (shear thinning and thickening)

New module blackoil-sequential

A new module has been added that implements two and three-phase black-oil solvers based on a sequential formulation. These solvers use separate models for pressure and transport and allows a great deal of flexibility for choices in nonlinear and linear solvers. The current implementation uses a fractional-flow formulation based on total velocity and can be significantly faster than the fully implicit solvers for larger problems.

Non-AD solvers

New module hfm

The HFM module implements routines for creating problems with embedded fractures, as well as extensions to the msrsb module to enable the solution of embedded fracture models with the multiscale restriction-smoothing basis (MsRSB) solver. The module can also be used to generate transmissibility and topology for the AD-solvers, making it straightforward to solve problems with embedded fractures. The module was created by Swej Shah from the TU Delft DARSim group in collaboration with researchers from SINTEF. Swej Shah won the SPE Regional Student Paper Contest in Europe for this work. A paper documenting the work is published in J. Comput. Phys,DOI: 10.1016/

New module vemmech

Added a new module for the solution of linear elasticity and poro-elastic problems based on the virtual element method (VEM). This module is not entirely well documented and tested to the standard of other modules in MRST, but we nevertheless release it as a preview of future features after several user requests.

New module steady-state

A new module for steady-state upscaling of saturation-dependent fluid properties. This includes relative permeability and polymer property upscaling. This module is the result of the work done by Sindre T. Hilden in his PhD work at NTNU/SINTEF, see

The new-multiscale module has been renamed to msrsb

The module has been renamed to a more descriptive name, and several new examples and features have been added. This includes unstructured construction of support/interaction regions and C-accelerated routines for computing the MsRSB basis functions on arbitrary grids.

Support for ECLIPSE input and output

The 'deckformat' module gained initial support for constructing fundamental static and dynamic MRST objects from ECLIPSE output files. In particular, the new functions 'eclOut2mrst', 'convertRestartToStates', and 'convertSummaryToWellSols' construct, respectively, the grid and rock structures and associate transmissibilities on the ECLIPSE flow graph, a collection of dynamic restart data (e.g., temporally varying pressure and saturation fields), and a collection of well summary data for visualisation through module ad-core's 'plotWellSols' function. We refer to the new examples 'readAndConvertEclipseOutput', 'readAndVisualizeEclipseOutput', and 'diagnosticsFromEclipseOutput' for demonstrations of how to use these tools.

The incomp, mimetic, and mpfa modules

Tutorials have been moved in from the core module and reworked to present a better introduction to the various incompressible solvers in MRST.

The coarsegrid and agglom modules

Tutorial examples have been renamed and reworked, and new several new ones have been imported from the MRST User Guide by K.-A. Lie.

Visualization and flow diagnostics

Module mrst-gui


  • Add support for initial field for plotting
  • Add support for setting initial options originally only reachable by GUI
  • Add support for line plots for grids that are essentially 1D
  • Should be more lenient in the data formats accepted

Module diagnostics

Examples have been reworked and renamed to give a better introduction to the features of the module. New examples have been imported from the MRST User Guide by K.-A. Lie.

Numerical CO2 laboratory (MRST-co2lab)

The module has been reworked so that it now is compatible with the new object-oriented automatic differentiation library (ad-core, ad-blackoil, etc.). As part of this work, a large number of the examples and underlying computational routines have been tidied up and improved.

New functionality includes

  • addWellVE: function for setting wells directly for a top-surface grid (used in VE simulations)
  • massAtInfinity: New function for computing the limit CO2 distribution when gravity dominates
  • Complete scripts for all examples in the paper "Analysis of CO2 trapping capacities and long-term migration for geological formations in the Norwegian North Sea using MRST-co2lab. Computers & Geoscience, Vol. 79, pp. 15-26, 2015. DOI: 10.1016/j.cageo.2015.03.001

Published December 14, 2015