MRST - MATLAB Reservoir Simulation Toolbox

Release Notes for MRST 2018a

Release Notes for 2018a


Highlights of this release

  • New initialization routine based on vertical equilibrium for simulation models using the automatic differentiation framework
  • A new, alternative interpretation of corner-point geometry that produces results in greater accordance with commercial simulators
  • Multiple ordering options for degrees of freedom in MRST's systems of linear equtions, as well as ordering (enumeration) of active cells
  • Initial support for vertical flow performance tables in wells and controlling wells by reservoir voidage rate targets ("RESV")

New developments in existing functionality

Module ad-core

  • New implementation of initialization for ad-solvers under ad-core/initialization
  • initSimpleADIFluid: Varargin added to simple fluid. This fixes crashes for problems where fluid subsets are used.
  • Options for corner-point-specific interpretation of geometry has been added. See computeCpGeometry. This should improve match against commercial simulators for deviated or slanted models read in through deck.
  • LinearSolverAD: Options for variable and equation ordering have been added. This makes it easier to call external linear solver packages which rely on a specific ordering and improve performance for solvers where convergence depends on the ordering.
  • LinearSolverAD: Option for performing Schur complement with sparse matrices instead of direct indexing.
  • Added getCellMajorOrdering function to get cell-major ordering instead of the default MRST ordering of variable-major ordering: Gives a permutation vector which changes from e.g. p_1,..., p_n s_1, ..., s_n into p_1, s_1, ..., p_n, s_n.
  • Added routine for getting symmetric reverse Cuthill-McKee ordering for grid: getGridSYMRCMOrdering
  • Added AMGCL_CPRSolverAD which implements interfaces to the CPR preconditioners in the AMGCL package.
  • The AMGCL wrapper classes, first introduced in the previous release, have been overhauled. See corresponding change for the linearsolvers module.
  • The deprecated field 'saturationVarNames' has been removed from ReservoirModel. All derived classes where this field is manually specified will throw an error. Removing the field from the constructor will in most cases fix this.
  • plotWellSols: Gas-oil-ratio has corrected units.
  • LinearSolverAD: Many of the forward options (ordering, scaling, reduction, ...) are now support for the solution of the adjoint system. Note that the ordering is assumed to apply to the system before transpose.
  • ResultHandler: Now uses mrstOutputDirectory to pick storage (was ad-fi module root)
  • ReservoirModel: Support for solving for n phases as primary variables in updateState in addition to traditional n-1 phases (when saturation closure relation is included in system)
  • AD-boundary conditions: Several experimental, intentionally undocumented options for setting various specific combinations of boundary conditions. See internals of getBoundaryConditionFluxesAD
  • getMultiDimInterpolator: Routine is more robust with respect to ordering and is now documented. Extrapolation option has been added.
  • upscaleSchedule: Now defaults well upscaling to re-computing the well index on a coarse grid.
  • NonLinearSolver: relaxationParameter is always set to maxRelaxation at the start of a nonlinear solve.
  • Wells: Support for disabling pressure-drop update.
  • Wells: Improved cross-flow injection behavior.
  • simulateScheduleAD: Added optional input argument controlLogicFn for reactive modification of schedule during simulation.
  • Tentative support for RESV controls

Module compositional

  • EquationOfStateModel: New functionality, including mass to mole-fraction converter.
  • Compositional solvers support capillary pressure. Note that the capillary pressure currently only impacts the flow, not the phase-equilibrium calculations and properties, for which the liquid pressure is used.
  • Compositional: Bug-fixes for cases which include an aqueous phase.
  • Compositional: Several general robustness-fixes for both K-values and EOS-type solvers.
  • VLE from RachfordRice has been both improved and factored into a separate routine solveRachforcdRiceVLE.
  • UniformFacilityModel: Fix bugs related to inactive wells.
  • phaseStabilityTest: Option 'solve_both' added, which gives better estimates for liquid and vapor mole fractions when the single-phase state is unstable.
  • BIC is now correctly initialized when input files are used.
  • Support for EOS and PRCORR keywords.
  • Compositional natural variables: Added experimental option for checking if transition into stable state is actually stable (checkStableTransition).

Module blackoil-sequential

  • multiphaseUpwindIndices: Bug-fixes included for cases where phase potentials have varying ordering.
  • Transport solvers now correctly output the computed phase fluxes when requested.
  • Fixed a bug which would lag well controls at the first step after controls have changed.
  • Support for exact mass conservative scheme with volume-relaxation. A new example, relaxedVolumeSPE10, demonstrates this feature.
  • Bug-fixes for pressure boundary conditions.

Module ad-eor

  • Surfactant: Support for boundary conditions have been added.
  • Polymer: Additional control equations has been removed. Polymer injection with cross-flow has been improved.

Module co2lab

  • twoPhaseGasWaterModel has been renamed to TwoPhaseWaterGasModel and has added support for CPR scaling factors and standard rel.perm. evaluation.
  • New example basic_3D_example which demonstrates a simple refined 3D injection example.
  • Bug-fixes in trapping routines

Module linearsolvers

The interface to AMGCL has been updated with a new internal structure, more options and interface to different CPR preconditioners.

Module agglom

Agglomeration now has better behavior for uniform indicators

Module msrsb

C++ MsRSB basis solver has been reworked. It should be faster, more numerically stable and now supports initial guess/restart of smoothing for basis functions.

Module mrst-gui

  • plotToolbar: Fixed error for plotting data on coarse grids in 2D.
  • plotToolbar now longer outputs to the command window when no cells are found in selection.

Module deckformat

  • Introduce support for interpreting lift tables as represented by ECLIPSE keyword VFPINJ and VFPPROD.
  • Default value for allowing cross-flow in WELSPEC keyword has been changed to YES.
  • Support for different choices of EOS.
  • convertRestartToStates now support certain compositional fields.
  • Extended support for cell dimensions in processWells
  • Robustness improvements in reading of input
  • Tentative support for RESV controls

Published July 31, 2018