Sammendrag
We present MRST–AD, a free, open-source framework written as part of the Matlab Reservoir Simulation
Toolbox and designed to provide researchers with the means for rapid prototyping and experimentation
for problems in reservoir simulation. The article outlines the design principles and programming
techniques used and explains in detail the implementation of a full-featured, industry-standard black-oil
model on unstructured grids. The resulting simulator has been thoroughly validated against a leading
commercial simulator on benchmarks from the SPE Comparative Solution Projects, as well as on a
real-field model (Voador, Brazil). We also show in detail how practitioners can easily extend the black-oil
model with new constitutive relationships, or additional features such as polymer flooding, thermal and
reactive effects, and immediately benefit from existing functionality such as constrained-pressure-residual
(CPR) type preconditioning, sensitivities and adjoint-based gradients.
Technically, MRST–AD combines three key features: (i) a highly vectorized scripting language that
enables the user to work with high-level mathematical objects and continue to develop a program while
it runs; (ii) a flexible grid structure that enables simple construction of discrete differential operators; and
(iii) automatic differentiation that ensures that no analytical derivatives have to be programmed explicitly
as long as the discrete flow equations and constitutive relationships are implemented as a sequence of
algebraic operations. We have implemented a modular, efficient framework for implementing and
comparing different physical models, discretizations, and solution strategies by combining imperative and
object-oriented paradigms with functional programming. The toolbox also offers additional features such
as upscaling and grid coarsening, consistent discretizations, multiscale solvers, flow diagnostics and
interactive visualization.
Vis fullstendig beskrivelse