OPM软件结构
Module descriptions
The current set of modules are:
-
opm-common
Contains the OPM build system (CMake modules and scripts), as well as some basic, common C++ code (error macros, logging facilities and minor utilities). Also contains two major features:-
Eclipse deck parser (formerly in the separate module opm-parser)
Reading industry-standard reservoir simulation input decks (Eclipse format), including complex schedules, as well as multipliers and modifiers. -
Eclipse binary format I/O (formerly in the separate module opm-output)
Facilities for creating output in various formats from simulator programs, in particular Eclipse summary and restart files.
-
Eclipse deck parser (formerly in the separate module opm-parser)
-
opm-material
Saturation and PVT functions. -
opm-grid
Contains CpGrid, a corner-point grid class, and PolyhedralGrid, a grid class for general polyhedral unstructured grids. Both using the Dune grid interface. Also now contains the UnstructuredGrid C struct and associated functions, functions for processing corner-point grids, the GridManager class and other grid utilities. -
ewoms
Toolbox containing a wide variety of simulators for porous media problems using (mostly) fully implicit formulations, including some compositional models. Notably contains the discretization and assembly used by Flow. -
opm-simulators
The Flow reservoir simulator is in this module. Also contains various support classes for simulator codes such as well treatment. Contains a library for automatic differentiation using the “vector + sparse matrix” approach (the AutoDiffBlock class), and solvers for various problems: IMPES, two-phase incompressible transport, reordering-based two-phase polymer solver, and fully implicit black-oil. -
opm-upscaling
(Now includes what used to be in opm-porsol.) Various utilities and solvers used for flow-based upscaling of both permeability (single-phase upscaling) and relative permeability (two-phase upscaling), including capability for steady-state upscaling.