Release Notes for MRST 2018b

Release Notes for 2018b

Highlights of this release

  • A new GUI in the diagnostics module which acts as a postprocessing tool on simulation output
  • Utilities in ad-core for automatic restarts and I/O of simulation cases
  • Sequential implicit compositional solvers have been addedNew developments in existing functionality

Below follows a brief overview of important changes. In addition, full commit logs can be found at the MRST bitbucket pages:



  • Fixed bugs in refDepth for wells in 2D and well-index for cells with zero permeability.
  • Support for one-dimensional grids.
  • Legacy routine readGRDECL now benefits from performance improvements made in deckformat module.

Module ad-core

  • Added a new framework for running and managing simulations under ad-core/simulators/sim_runner. Some useful features include automatic restarts for interrupted simulators, management of files on disk and naming of specific cases.
  • New utility functions initEclipseProblemAD and selectLinearSolverAD allow for single-routine setup of full decks with reasonable default choices for linear solver and timestepping for given configuration.
  • upscaleModelTPFA can take a coarse grid in place of a partition vector if a specific coarse grid is to be used.
  • Support for SGWFN tables (water-gas)
  • Support for surface density via GRAVITY keyword
  • intiStateBlackOilAD has improved backwards compatibility for older versions of Matlab
  • plotWellSols now supports selection of multiple datasets (when present)
  • PhysicalModel base class has a new member function which allows model to specify maximum allowable time-step.
  • Parsing of complex wells with perforations that are both added and removed between control steps should be much more robust.
  • initStateDeck now supports direct assignment of pressures, rs, rv and saturations
  • The logic for convergence checks has been refactored to make linesearch more efficient. The NonLinearSolver class now has an acceptance factor field, which can specify the maximum allowable error preferable to the cutting of time-steps.
  • inspectFluidModel: Increased robustness when multiple regions are present. Will only plot the region of cell 1.
  • LinearSolverAD: If both diagonal scaling and reordering is present, the scaling is now performed after reordering.
  • Time-step cutting is now a feature of the time-step selection class. This can fix misbehavior encountered for models where numerous time-step cuts were encountered in combination with automated time-step selection.
  • computeSensitivitiesAdjointAD: Increased robustness with respect to equation setup.
  • AMGCL_CPRSolverAD has been rewritten and should have greatly improved robustness.


Module ad-blackoil



  • A bug for multiple PVT regions have been fixed.

Module blackoil-sequential

  • Hybrid upwinding support rewritten and added to all sequential solvers
  • Sequential models now have a non-empty grid copied from the submodel.

Module compositional

  • Sequential-implicit solvers mirroring the fully-implicit solvers have been added. Both overall composition and natural variables are present. See A Mass-Conservative Sequential Implicit Multiscale Method for Isothermal Equation of State Compositional Problems by M√łyner & Tchelepi, SPE J.


  • Several new routines have been added to support the new flow diagnostics GUI
  • New classes for faster interactive plotting.
  • A new SummaryViewer class for simple viewing of Eclipse output.

Module diagnostics

  • Added postProcessDiagnostics interface. This is a new GUI for post-processing simulation output and showing detailed flow diagnostics.
  • Numerous improvements and extensions to existing routines to support this GUI.
  • computeTimeOfFlight can now compute first-arrival instead of averaged time-of-flight.
  • Documentation has been improved throughout the module.

Module streamlines

  • Pollock now supports pore-volumes as input for more accurate time-of-flight values. Thanks to Masoud Ghaderi at Heriot-Watt University for the bug report.
  • A bug has been fixed in pollock which could result in nan values being returned. Thanks to liaoqz at the MRST mailing list for this bug report.

Module coarsegrid

  • coarsenGeometry: The normal vectors should now correctly have magnitude equal to the face areas, analogously to the fine-scale convention.

Module co2lab

  • Added several examples from the paper "Using simplified methods to explore the impact of parameter uncertainty on CO2 storage estimates with application to the Norwegian Continental Shelf" by Allen et al in International Journal of Greenhouse Gas Control, 2018.

Module linearsolvers

  • AMGCL build instructions have been added, together with several additional configurable options in the Matlab interface.

Module HFM

  • Several improvements to efficiency and accuracy thanks to Daniel Wong at Heriot-Watt university.

Module SPE10

  • setupSPE10_AD is now more general and can take any box subset of the full model.

Module deckformat

  • Additional support for parsing of pinch and mult keywords.
  • Extended support for combinations of DX, DY, DV and DXV, DYV, DZV. Previously, all parameters had to be of the same type, but we now support mixes of the two.
  • Support for GRAVITY keyword - see details in ad-core.
  • Better support for multiply specified wells such that a warning is issued.
  • Many older routines predating the AD-simulators have been removed. The routine which may have been in use is the initialization initEclipseState which can be replaced with initStateDeck.
  • New routine initGridFromEclipseOutput which supersedes eclOut2mrst.
  • Tentative support for parsing of aquifers. This is not yet supported in any solvers.
  • readEclipseOutput* family of routines now also support output from OPM Flow.
  • Fixes to eclOut2mrst for PERMY and PERMZ. Thanks to Andres Codas for these fixes.


Published July 31, 2018