Commit Graph

258 Commits

Author SHA1 Message Date
Magne Sjaastad
6f78404f92 #4266 : libecl : Applied patch related to install 2019-05-09 09:25:31 +02:00
Magne Sjaastad
a31d8cbea6 #4266 : libecl : Fix several crash issues 2019-05-09 08:41:06 +02:00
Magne Sjaastad
96a7f02abe #4266 : flow diagnostics: Update related to API changes 2019-05-09 08:41:02 +02:00
Magne Sjaastad
04091ad77d #4266 Update libecl
Use commit 0e1e780fd6f18ce93119061e36a4fca9711bc020

Excluded multibuild folder, as this caused git issues
2019-05-09 08:40:32 +02:00
Bård Skaflestad
4ad130ae47 PVT Interpolants: Give More Meaningful Diagnostic if Missing
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.
2019-04-16 15:27:31 +02:00
Bård Skaflestad
8d27e0cd01 Don't Calculate Scaled Curves if EPS Data Unavailable
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.
2019-04-10 17:53:50 +02:00
Magne Sjaastad
aa72b384f1 #4289 libecl : Apply external ACTNUM instead of combining with file ACTNUM 2019-04-05 11:20:57 +02:00
Magne Sjaastad
738fc8e283 #4268 libecl : Apply patch for handling of null pointer in util_access 2019-04-02 11:20:43 +02:00
Gaute Lindkvist
29e2305c05 #4259 Apply libecl patch for exporting MAPAXES 2019-04-02 08:20:10 +02:00
Magne Sjaastad
684526ef33 #4268 libecl : Guard null pointer access on Windows 2019-04-01 14:43:04 +02:00
Magne Sjaastad
e1d842d3a4 #4211 libecl : Fix for access of data out of bounds 2019-03-22 08:32:23 +01:00
Magne Sjaastad
dfd4539786 #4172 libecl : Guard null pointer access 2019-03-05 21:11:14 +01:00
Magne Sjaastad
b120d0a2c1 #4172 libecl : Return std::string instead of NULL
libecl crashes when NULL is returned from a function returning std::string
2019-03-05 21:10:39 +01:00
Bård Skaflestad
3ebb106623 Max 2P Sat-Sum: Don't Dereference Null Pointer
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
2019-02-13 23:35:51 -06:00
Magne Sjaastad
288ee59587 #4066 System : Improve cmake macros for cotire 2019-02-11 07:13:08 +01:00
Magne Sjaastad
2fd54b1d0a #4061 : Harmonize how to find Qt5 2019-02-08 13:22:33 +01:00
Magne Sjaastad
0a2b9241ae #4061 Harmonize how Qt5 is found 2019-02-08 11:28:51 +01:00
Magne Sjaastad
5fd80920c8 Merge remote-tracking branch 'origin/master' into dev 2019-02-04 15:48:36 +01:00
Magne Sjaastad
bd6bbe9da9 #4020 System : Use ri_apply_cotire() 2019-02-01 06:56:11 +01:00
Magne Sjaastad
24628e8ca4 #3937 libecl : Workaround to avoid crash for some summary files 2019-01-31 09:21:10 +01:00
Magne Sjaastad
e0ce64e11c #3937 libecl : Workaround to avoid crash for some summary files 2019-01-31 09:20:19 +01:00
Magne Sjaastad
dfac372a9c #4028 Fix performance issues 2019-01-31 09:13:29 +01:00
Magne Sjaastad
55b215e66b #4028 NNC fix
9d68e3bc60
2019-01-31 09:06:16 +01:00
Magne Sjaastad
a4b9b3db12 #3982 System : Remove debug output and add comment 2019-01-21 21:52:58 +01:00
Magne Sjaastad
a03e92c7b3 #3982 System : Avoid recompile of libecl at every commit
set git info to zero
2019-01-21 21:46:51 +01:00
Magne Sjaastad
fca21efe05 #3982 System : Avoid recompile of libecl at every commit 2019-01-21 21:37:22 +01:00
Bård Skaflestad
6839c1cf77 ECLFluxCalc: Remove Unused 'useEPS' Constructor Parameter
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.
2018-12-21 13:14:45 +01:00
Gaute Lindkvist
17e12a92a0 Update CMake to only look for Qt5 if RESINSIGHT_BUILD_WITH_QT5 is set 2018-12-10 15:10:46 +01:00
Gaute Lindkvist
83c5f63291 #3754 Qt4/Qt5 CMake build configuration for Nightcharts and ExpressionParser 2018-11-30 09:47:53 +01:00
Gaute Lindkvist
cc672eb31b #3752 Upgrade Qwt to 6.1.3 to support Qt5 2018-11-30 09:47:53 +01:00
Magne Sjaastad
4d924e2d17
Merge pull request #3682 from bska/refactor-flux-calc
Refactor Flux Calculator to Eliminate Warnings and Reduce Clutter
2018-11-14 15:28:47 +01:00
Magne Sjaastad
9589d0fbb7 System : Remove warning from header file in boost subset 2018-11-14 15:27:48 +01:00
Bård Skaflestad
daa6604e3d Flux Calculator: Use 'phaseSaturation' Result Set Query
This simplifies the implementation of the 'phaseProperties' member
function and, in particular, restores the original code symmetry
amongst the individual phase cases.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
c15432d1b2 Saturation Functions: Add Public Query for Phase Saturations
Simplifies retrieving the phase saturation values in the context of
computing phase fluxes at cell interfaces.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
5347c475be Saturation Functions: Create Helpers for Retrieving Sw and Sg
Limits the amount of magic keyword references to the result vectors
SWAT and SGAS.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
f17b38c479 FluxCalc Interface: Rewrap Doxygen Documentation
Mostly to follow common style elsewhere in library.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
5167299797 DeadOilConstCompr: Re-adjust Whitespace and Comments
No functional changes.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
3c3dfb3dc1 Refactor Constant Compr. Index to Separate Helper
Limits the use of magic constants in the middle of the main logic.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
3d5dca4693 Surface Density: Explicitly Recognise Failure Path
Use the "throw if invalid phase" approach.
2018-11-14 14:40:06 +01:00
Bård Skaflestad
4be1685604 Vertical Scaling [PCOW]: Use Value at Minimum Saturation
The oil-water capillary pressure is a non-increasing function of
water saturation so we need to ensure that we use the capillary
pressure value at the minimum tabulated water saturation.  Add
special purpose code to enforce this rule.  This adds a certain
amount of computational overhead because we now compute function
values at two saturation points instead of just one for the case of
pure vertical scaling.  Most of the time those extra function values
will just be subsequently discarded.

Note that this is a bit of hack, because it relies on the fact that
the current implementation assigns

  TableEndPoints::disp = TableEndPoints::low

in the case of two-point horizontal scaling.  We may wish to make
that rule more explicit.
2018-11-13 09:55:56 +01:00
Bård Skaflestad
be160a5c63 Vertical Scaling/Sr: Remove A Few Asserts
These were meant for consistency checking, but would occasionally
fail due to round-off error when doing arithmetic on values
converted from 'float' to 'double'.  The actual scaling procedure
does not rely on those relations as long as we ensure that 'fmax' is
the maximum function value, so add a measure of robustness here.

Note that this is at best a work-around for a deeper problem and
that a more refined solution would probably be needed here.
2018-11-13 09:55:56 +01:00
Bård Skaflestad
8603935aad Capillary Pressure: Truly Fall Back to Scaled Connate Saturations
This commit ensures that we use the scaled connate water/gas
saturations (SWL/SGL) in place of the scaled capillary pressure
saturations (SWLPC/SGLPC) when the latter are undefined (set to a
sentinel value; -1.0E+20).  We would previously fall directly back
to the connate saturations from the input table in this case and
this would lead to inconsistent curves for the scaled capillary
pressure functions.
2018-11-13 09:55:56 +01:00
Bård Skaflestad
78dfbfea6b Flux and massflux: Return Empty Vector for Inactive Phases
This commit introduces a new (private) predicate function

  ECLFluxCalc::phaseIsActive(const ECLPhaseIndex phase) const

that identifies whether or not 'phase' is active in the current
simulation model/result set.  This enables returning an empty result
vector from flux() and/or masssflux() in the case of the caller
requesting fluxes for inactive phases.  That, in turn, mirrors the
behaviour of ECLGraph::flux() on inactive phases and promotes
uniform phase treatment in calling code irrespective of using stored
or calculated flux values.
2018-11-13 09:55:56 +01:00
Magne Sjaastad
794e703043 System : Disable unused unit test 2018-11-02 11:36:46 +01:00
Bjørn Erik Jensen
5c95b5a605 #3576 Apply patch install-ert.patch after upgrading ecllib 2018-10-30 13:30:44 +01:00
Bjørn Erik Jensen
b51779c568 #3576 Apply patch fix-synthetic-odb-cases.patch after upgrading ecllib 2018-10-30 13:27:01 +01:00
Bjørn Erik Jensen
6924c20ab6 #3576 ecllib upgrade from statoil repo 7f93730c08a4d981a4b738b42146d099977572ce 2018-10-30 13:21:11 +01:00
Bård Skaflestad
405f6426f3 Bring EPS Unit Test Up To Date WRT Changing Behaviour
A previous commit changed the reverse mapping behaviour in the case
of coincident tabulated scaled displacing saturation and maximum
phase saturation in the two-phase systems.  Bring the corresponding
unit test in line with the changed behaviour (now maps high
saturation values to scaled critical displacing saturation Sr rather
than Smax in this situation).

Pointy Hat: [at]bska
Thanks to: [at]atgeirr
2018-10-25 13:40:08 +02:00
Bård Skaflestad
d6862265b7 Remark That 3pt EPS Changes Function Shape in [Sr, Smax]
The three-point vertical scaling option will usually change the
shape of the relative permeability function in the saturation
interval between the scaled critical displacing saturation and the
maximum phase saturation.  In particular, we usually replace a
general, non-linear function with a linear approximation when
applying three-point vertical scaling.

Add a comment to that effect.
2018-10-25 13:40:08 +02:00
Bård Skaflestad
dc8931f782 Update Flow Diagnostics Application Library
Fixes incorrect horizontal and vertical end-point scaling of model's
saturation functions.

API Change: No longer supports user-selected behaviour for treating
scaled end-points with a sentinel value (-1.0E+20).  That option was
introduced due to incomplete understanding of the semantics of the
sentinel value.  Now that we understand the meaning (use actual,
unscaled end-point value from input table), we no longer need the
option.  Update the calling code in RigFlowDiagSolverInterface.cpp
accordingly.
2018-10-25 13:40:08 +02:00