Several new third-party modules that provide support for
Dual porosity models, courtesy of Heriot-Watt University. Activate module using the command
mrstModule add dual-porosity
Multipoint Stress Approximation for elasticity problems, courtesy of the University of Bergen. Activate module using the command
mrstModule add fvbiot
Unstructured PEBI-grids adapting to geological features in subsurface reservoirs courtesy of Runar Lie Berge (MSc thesis work). Activate module using the command
mrstModule add upr
Virutal Element method (VEM) for flow problems courtesy of Øystein Klemetsdal (MSc thesis work). Ativate module using the command
mrstModule add vem
New, somewhat experimental, module using the Virtual Element method (VEM) to solve geo-mechanics problems. Activate module using the command
rstModule add vemmech
Substantially expanded and revised MRST User Guide, particularly new material on incompressible multiphase flow.
Several new public datasets available through the MRST dataset management system.
New developments in existing functionality
New example showCaseB4 that demonstrates typical tasks when working with subsets of models that are represented in the ECLIPSE simulator's corner-point format.
More datasets have been added to the dataset manager and existing datasets have been updated with more metadata.
getUnitSystem has been extended with reservoir volume and pressure units.
MRST canonical dataset path is now preserved across calls to "clear functions".
grdeclXYZ, refineGrdecl: Experimental routines for creating, refining and otherwise modifying corner-point grids.
Function removeShortEdges now supports grid geometries in three-dimensional physical space.
Solvers Based on Automatic Differentiation
Class LinearSolverAD and its derived classes now support options for replacing NaN and Inf values that occur during the simulation process. This is useful for instance when working on ill-posed problems or when experimenting with new simulation methods.
The simulator function, simulateScheduleAD, can now write solver convergence reports to disk (permanent storage) using the ResultHandler class. Previously, this feature was only supported for simulation states (i.e., dynamic properties like pressures, saturations and well flows).
Function simulateScheduleAD has tentative, intentionally under-documented support for restarting simulations from a specific control-step if a ResultHandler instance is used. The interface of this functionality is subject to change.
The dynamic timestep selection facility implemented in class StateChangeTimeStepSelector is now smarter about adjusting timestep sizes in the case of small control steps.
Class NonLinearSolver will now omit standard warnings about reducing timesteps etc if its verbose flag is set to values below zero. This makes it easier to use the simulator in a black-box fashion, where warnings about timestep reduction do not matter if the simulation is eventually successful.
Function plotWellSols now supports lab units. There are moreover additional fixes to figure files exported from the plotWellSols panel and there is a new selector for choice of timescale.
Function refineSchedule has been moved from ad-fi to ad-core. This is in preparation of removing module ad-fi from a future release of MRST.
Function inspectFluidModel now has more robust plotting for different dead-oil models
Function calculateHydrocarbonsFromStatusBO now requires that the caller provides the disgas and vapoil indicators. Previously, these indicators were optional.
Unused arguments have been pruned from the argument list of function getCellStatusVO.
Support and examples for the EGG model from TU Delft
New examples demonstrating polymer flooding in a layer of Model 2 from the tenth SPE Comparative Solution Project.
Bug fixing and improvements for the case of polymers that are not fully mixed into the solution.
Class SequentialPressureTransportModel now uses the active pressure model to compute variable mappings. This makes it possible to use global timestep selection for the sequential solvers based on quantities that are not defined in the ReservoirModel base class.
Several new examples. Many old examples have been adjusted or reworked.
Additional documentation and tidying of the code
The following functions have been deprecated and may be removed in a future release of MRST. Replacements are listed in parentheses.
computeGeometryVE (use function computeGeometryVE_2D instead)
computePlumeHeight (use function upscaledSat2height instead)
getSortedCellNodes (this function is now provided by MRST Core)
Function topSurfaceGrid has been reimplemented in order to handle more complex grids, including non-Cartesian topologies and faults.
Significantly improved speed of the interactive tool 'InteractiveTrapping'
New read-support for entries that contain quoted substrings. This means that input records such as
1.0 1* 'H--' Z -1.234e5 '*PROD 1' 'MULTX-' /
will no longer be misinterpreted due to the string 'H--' being treated as the start of a comment or the string '*PROD 1' being treated as two separate words. This read-support does mean that function readEclipseDeck becomes more expensive.
Support for reading ECLIPSE keywords COMPSEGS and WELSEGS. Solver support for multisegmented wells will be added in a future release of MRST.
New function initEclipseModel that sets up a simulation model (i.e., grids, petrophysical and petrochemical properties, well topologies and constraints) from an ECLIPSE input deck (.DATA file).
Function processWells has a new option, 'strictParsing', that can be disabled to avoid throwing errors when encountering unsupported well controls. Note that such wells must be manually modified to get reasonable values for missing fields.
Function readWellKW no longer warns about constructing wells for which some completions are closed. The AD-based simulation tools have supported this feature for a long time, but it is not availble in the solvers for simplified flow-physics (i.e., incompressible two-phase flows).
Function processWells now disables (deactivates) all wells for which all completions are closed (deactivated).
Experimental support for replacing petrophysical parameters in an already loaded deck. This feature is presently used to read and process multiple different realizations of the petrophysical properties of the Egg model.
We have corrected a error in the definition of source terms in function computeTimeOfFlight that ended up producing incorrect time-of-flight and tracer concentration values in source (injection) cells.
This MRST release adds two new accessor functions that operate on the second model from the tenth SPE Comparative Solution Project. Function getSPE10rock creates the regular MRST rock structure (i.e., the petrophysical properties) and is a replacement for the existing SPE10_rock function and function getSPE10setup is a replacement for function SPE10_setup. Function getSPE10rock is not, however, a drop-in replacement for function SPE10_rock. The former returns permeability data already converted to MRST's strict SI-only unit conventions (i.e., in units of metres squared) whereas the latter returned permeability data in units of milli-Darcy. This typically leads to simpler setup of simulation models in client code, but will occasionally introduce an additional unit conversion step for plotting purposes.
Functions SPE10_rock and SPE10_setup are being deprecated and will warn about this upon first call in each session.
Modules incomp, mimetic, and mpfa
This MRST release brings a new function for approximating pressure drops along the well-bore in the case of incompressible flows. Previously, the different incompressible solvers used different approximations that could be very different for problems with large density differences. The new approximation is consistent between the solvers and is a somewhat simplified mixing model. For problems with long wells with significant density effects we nevertheless recommend using the ad-blackoil solvers.
Function plotToolbar now interprets data of cell array type on plotting input structure.