This commit introduces a new static function
ECLGraph::load(const ecl_grid_type*, const ECLInitFileData&)
This is in order to simplify constructing the backing graph from
ResInsight's .EGRID input--especially to have consistent view of
a model's active cells irrespective of which simulator created
the result set.
This commit refines the error message emitted if a particular
phase does not have a PVT interpolant--e.g., if the INIT file
does not provide PVT data. Previously we would generate a
message akin to
Region Index 0 Outside Valid Range (0 .. (size_t)-1)
which is not very helpful to users in diagnosing the issue. The
new message does at least indicate that there is no interpolant
for the accompanying phase and also emits the (1-based) region
index for context.
This commit captures the result set's availability of EPS data
in a new data member,
bool ECLSaturationFunc::Impl::haveEPSData_
We need this piece of information to identify whether a null
'eps_' data member corresponds to missing EPS data or failure to
form the backing EPS data object. In the first case, it is fine
to output the unscaled curves while throwing an exception in the
latter case is more appropriate.
This restores ResInsight's ability to show unscaled saturation
function curves if the backing EPS data is not output to the
result set's INIT file.
A simulation run might not activate all three phases. We therefore
must guard against querying the connate saturations of the missing
phase.
Pointy hat: Bard.Skaflestad@sintef.no
Thanks to: Magne Sjåstad
Recent developments have rendered this parameter unused. Remove
it to make API simpler. The library now always loads arrays as
if the caller requests end-point scaling behaviour and we defer
effects of actual end-point scaling until client code queries
the flux calculator at run time.
This simplifies the implementation of the 'phaseProperties' member
function and, in particular, restores the original code symmetry
amongst the individual phase cases.