mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
This commit introduces a set of callback functions, packaged in an abstract base class SatfuncCheckPointInterface<Scalar>, for querying and populating the saturation function end-points that get probed by the individual consistency checks. Member function SatfuncCheckPointInterface::pointID(cellIdx) translates the active cell index 'cellIdx' into a point ID, assumed to be unique on at least the current MPI rank. This function will return 'nullopt' if the 'cellIdx' is not eligible for this particular end-point. This typically happens for the region based tabulated (unscaled) saturation function checks when the 'cellIdx' happens to be in a region that's already been visited. Member function SatfuncCheckPointInterface::populateCheckPoint(cellIdx, endPoints) fills in (assigns) all data members of the 'endPoints' structure with the pertinent values for the active cell 'cellIdx'. We implement this interface for the tabulated/unscaled end-points in derived class UnscaledSatfuncCheckPoint<Scalar> and for the scaled end-points in derived class ScaledSatfuncCheckPoint<Scalar>. The former keeps track of which saturation regions have been visited and short-circuits its 'pointID()' member function based on that information while the latter uses an instance of the former in order initialise the 'endPoints' structure in its populateCheckPoint() member function. |
||
---|---|---|
.. | ||
aquifers | ||
flow | ||
linalg | ||
timestepping | ||
utils | ||
wells | ||
opm-simulators_doxygen_main.hpp |