Documentation for the opm-simulators library.

Solvers and simulators

The opm-simulators module contains a diverse set of simulator programs. Notable simulator programs include

  • examples/flow.cpp, a fully implicit black-oil simulator.
  • examples/flow_polymer.cpp, a version of Flow that supports polymer EOR simulation
  • examples/flow_solvent.cpp, a version of Flow that supports solvent EOR simulation
  • examples/sim_2p_incomp_ad.cpp, a sequential incompressible 2-phase simulator.

Automatic differentiation

This library implements automatic differentiation for vector data with multiple blocks of sparse jacobians. This is contained in the class Opm::AutoDiffBlock. Also available is Opm::AutoDiff, a much simpler single-value single-derivative AD class.

There are also some helper classes and functions that are intended to aid in the development of solvers and simulators with AD, these include Opm::HelperOps, Opm::UpwindSelector, Opm::subset, Opm::superset, Opm::Selector, Opm::collapseJacs, Opm::vertcat, Opm::Span and Opm::sign.