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.