Release Notes for MRST 2020a
Highlights of MRST 2020aThe new release comes with a number of bug fixes, improvements and increased documentation coverage. We especially highlight:
Changes and updates to core functionalityThe ‘processGRDECL’ function now knows how to preserve the input data’s original corner points. This feature is enabled by the ‘PreserveCpNodes’ option. If available, such corner points will enable the ‘computeGeometry’ function to calculate cell and face centroids that coincide with those of ECLIPSE which in turn enable calculating ECLIPSEcompatible transmissibility values. We also capture transmissibility multiplier arrays such as MULTX and MULTZ in the ‘grdecl2Rock’ function and incorporate these into MRST’s transmissibility calculation. To that end the ‘getFaceTransmissibility’ function has been moved from the ‘adcore’ module and into MRST’s core feature set. This function is aware of cornerpoint geometry and knows how to incorporate ECLIPSEstyle transmissibility multipliers. Consequently, this function enables calculating ECLIPSEcompatible transmissibility values. For backwards compatibility with earlier versions of MRST this function still recognises a ‘deck’style third input argument and will extract multiplier information if available and not already stored in the ‘rock’. This syntax will issue a diagnostic message however and will be removed in a future version of MRST. We recommend that ECLIPSEstyle multipliers be passed in the ‘rock’ parameter and that any ‘deck’ arguments be removed at the call site. The ADI class now supports sine and cosine as well as inverse sine (asin) and inverse cosine (acos) operations. We have added a new ‘tensor assembly’ package that contains tools to handle multiple indices in a generic framework based on a tensorial approach. These tools are used in the new implementation of the MPFAO method and in the VAG module. The new function ‘computeVerticalGridIntersection’ computes all polygons resulting from cutting a grid with a piecewise linear vertical surface. This is a foundational tool for expanded capabilities in the wellpaths module.
New modulesModule examplesuiteThe examplesuite implements a way to structure and maintain examples. The suite consists of a set of functions defining a number of different examples. These can either be called as standalone functions that return an initial state, model and simulation schedule, or in conjunction with the new MRSTExample class, which implements functionality for setting up a simulation problem with a reasonable solver configuration, and functionality for generating nice plots. The class also provides access to the entire example setup, facilitating easy setup of different configurations of the same example. In the future, the class can be used for e.g. setting up ensembles, and for regression testing. Module domaindecompositionThis module implements nonlinear variable domain decomposition. A full model is partitioned into subdomains, each defining a subdomain model with the class SubdomainModel. The module has utility functions for subtracting the corresponding substate and subschedule, so that the entire simulation can be carried out in the subdomain only. Nonlinear domain decomposition is implemented in the DomainDecompositionModel, which at each timestep solves each subdomain independently, treating all other subdomains as fixed (additive) or serially, with updated values in subdomains that are already solved (multiplicative). Convergence of the full problem is ensured by checking the full residual after the subdomain solves. Instead of defining boundary conditions, SubdomainModel evaluates the model equations in its subdomain cells, in addition to one layer of external cells along boundaries against adjacent subdomains, and the linearized problem is altered so that values in external cells remain unchanged. This way, we avoid imposing potentially complicated and errorprone boundary conditions between subdomains. The module also supports dynamic subdomain partitions based on the current reservoir state through the Partition class. For instance, optimal reordering of transport equations based on the intercell flux graph can be achieved with multiplicative nonlinear domain decomposition using the TopologicalFluxPartition.
Changes to existing modulesadcore
adblackoil
adeor
adprops
blackoilsequential
compositional
co2lab
deckformat
diagnostics
geothermal
incomp
linearsolvers
mpfa
nfvmThis module, which was first released with MRST 2019b, was developed by W. Zhang and M. Al Kobaisi at Khalifa University of Science and Technology. It adds support for nonlinear finite volume discretizations (NFVM). It follows the development of paper W. Zhang, M. Al Kobaisi, Cellcentered nonlinear finite volume methods with improved robustness, SPE Journal (doi.org/10.2118/195694PA), 2019. The current release includes:
octave
opm_gridprocessing
optimization
solvent
vag
wellpaths

