Commit Graph

8582 Commits

Author SHA1 Message Date
Joakim Hove
224911bd10 Add implementation for autonomous ICD: AutoICD 2020-06-11 11:38:29 +02:00
Joakim Hove
73a244ceda Templated internalizing of WSEGSICD keyword 2020-06-11 11:38:29 +02:00
Joakim Hove
4c100d0bd5 Update json scheme to ensure that WSEGSICD is subset of WSEGAICD 2020-06-11 11:38:29 +02:00
Joakim Hove
0f032d6fca Merge pull request #1801 from joakim-hove/icd-variant
Use std::variant<> to hold ICD alternatives
2020-06-11 11:31:58 +02:00
Bård Skaflestad
9396d44379 Merge pull request #1770 from bska/add-tolcrit
Add Support for TOLCRIT to Sat-Func Field Properties
2020-06-10 19:19:07 +02:00
Joakim Hove
dae980ddd5 Hide away templated convert function 2020-06-10 16:36:33 +02:00
Bård Skaflestad
f61882ce69 Critical Saturation: Refactor Helper Functions
In particular, add two new helper functions

    crit_sat_increasing_KR
    crit_sat_decreasing_KR

which identify the critical saturations under the assumption of a
relative permeability curve that increases viz decreases as a
function of the specified phase saturation.  Those helpers in turn
call a wrapper around std::lower_bound() and std::distance() to
affect the actual table scan.

Reimplement the 'critical_*()' helper functions in terms of
crit_sat_*_KR() to remove duplicated logic.
2020-06-10 14:33:01 +02:00
Bård Skaflestad
abec96a387 Sat-Func Initializers: Add TOLCRIT Support
This commit makes the 'critical_*()' helper functions aware of the
TOLCRIT feature.  We now consider a phase to be immobile at a one
saturation value if its relative permeability at that saturation is
less than or equal to TOLCRIT.  TOLCRIT mirrors E100's default value
of 1.0e-6 unless otherwise specified in the PROPS section.

All table scanners are implemented in terms of the expression

    std::lower_bound(begin, end, tolcrit, predicate)

which ultimately returns the first position in [begin, end) for
which

    predicate(*iter, tolcrit)

is false.  Using predicate = std::greater<>{} thus determines the
first position in the sequence for which the elements is less than
or equal to 'tolcrit'.  Similarly, a predicate equivalent to '<='
returns the first position for which the elements is strictly
greater than 'tolcrit'.

Add a set of unit tests to demonstrate and exercise the new feature.
2020-06-10 14:33:01 +02:00
Bård Skaflestad
bcdc8bb119 Table Output: Revise TOLCRIT Interpretation
This commit switches the previous interpretation of notionally zero
relative permeability in Flow's .INIT-file output.  We now treat all
relative permeability values less than *or equal to* TOLCRIT as
zero.

This change is for increased ECLIPSE compatibility.
2020-06-10 14:33:01 +02:00
Bård Skaflestad
83429bf908 Sat-Func Initializers: Pass TOLCRIT to Table-Scanning Layer
This is a pure API change.  The TOLCRIT value is not yet used as
part of determining the critical saturations.

While here, also add a unit test for getRawTableEndPoints() and
update the existing sat-func property unit tests to explicitly pass
TOLCRIT = 0 in preparation of adding actual TOLCRIT support.
2020-06-10 14:33:01 +02:00
Bård Skaflestad
83af852efe Capture SatFunc Controls In FieldProps
This is in preparation of threading the TOLCRIT value-defaulted or
not-through to the end-point scanning code.
2020-06-10 14:33:01 +02:00
Bård Skaflestad
f0f3764b89 Sat-Func Initializers: Expose RawTableEndPoints to Caller
This commit requires that the callers of satfunc::init() calculate
the raw table end-points.  That, in turn, enables callers to cache
those end-point values to avoid repeated calculations.

Add a new member, m_rtep, to FieldProps to act as such a cache to
take advantage of the new ability.
2020-06-10 14:33:01 +02:00
Bård Skaflestad
6a742a20fd Merge pull request #1705 from GitPaean/segment_keywords_regreesion_test
attempting to adding segment summary keywords for regression test
2020-06-10 12:40:41 +02:00
Joakim Hove
8320b89d90 Merge pull request #1817 from akva2/disable_warnings_flag
add a cmake flag to disable warnings
2020-06-10 11:13:06 +02:00
Kai Bao
405e3e1add attempting to adding segment summary keywords for regression test 2020-06-10 10:39:45 +02:00
Joakim Hove
afd5c3153a Use value based semantics for Segment -> valve 2020-06-10 06:35:03 +02:00
Joakim Hove
b1250c2f7a Use std::variant<> to hold ICD alternatives 2020-06-10 06:35:03 +02:00
Arne Morten Kvarving
64cbbdde65 add a cmake flag to disable warnings 2020-06-09 15:11:44 +02:00
Joakim Hove
b73f4aa5dc Merge pull request #1811 from joakim-hove/rst-segment-connection-refactor
Reshuffle segments and connections after restart
2020-06-09 07:08:37 +02:00
Joakim Hove
9faa824258 Merge pull request #1814 from OPM/fix/include-required-header
[parser] include required header
2020-06-09 07:04:56 +02:00
Joakim Hove
630a4a85ec Merge pull request #1816 from bska/empty-default-udq-ustr
SMSPEC: Emit Empty Unit String if UDQ Unit Undefined
2020-06-09 07:04:00 +02:00
Bård Skaflestad
adcb9c54b8 SMSPEC: Emit Empty Unit String if UDQ Unit Undefined
This is guided by ECLIPSE.
2020-06-08 23:19:26 +02:00
Bård Skaflestad
e129f74304 Merge pull request #1815 from tskille/issue_with_esmry
fixing invalid write in src/opm/io/eclipse/ESmry.cpp
2020-06-08 22:17:35 +02:00
Torbjørn Skille
947d3fec99 fixing invalid write in src/opm/io/eclipse/ESmry.cpp 2020-06-08 20:33:10 +02:00
Bernd Flemisch
27e310d436 [parser] include required header 2020-06-08 15:23:52 +02:00
Atgeirr Flø Rasmussen
229a619a85 Merge pull request #1812 from akva2/move_timestamp
changed: move build timestamp to separate header
2020-06-08 12:52:19 +02:00
Arne Morten Kvarving
1d3843cef1 changed: move build timestamp to separate header
to avoid rebuilds for things only needing project versions
2020-06-08 10:06:03 +02:00
Joakim Hove
7a88808ccb Add Segment::updateValve() overload which does not take length arg 2020-06-07 09:09:26 +02:00
Joakim Hove
31b6baa676 Reshuffle segments and connections after restart 2020-06-07 09:09:15 +02:00
Joakim Hove
0daac0b9e3 Merge pull request #1804 from joakim-hove/segment-perf-length
Segment perf length
2020-06-05 11:05:24 +02:00
Joakim Hove
5b51c57a5e Update SpiralICD scaling factor during initialization 2020-06-05 08:00:53 +02:00
Joakim Hove
bf3f8e1b08 Merge pull request #1809 from joakim-hove/refactor-compsegs
Refactor COMPSEGS handling
2020-06-04 22:58:01 +02:00
Joakim Hove
6b468787c8 Refactor COMPSEGS handling
When handling the COMPSEGS keyword the connections are updated with segment
number and the segments are updated with total perforated length. The new
Compsegs::processCOMPSEGS() function will create new updated copies of both
WellSegments and WellConnections.
2020-06-04 16:57:40 +02:00
Joakim Hove
5b0045d4a5 Merge pull request #1808 from joakim-hove/sicd-refactor-step0
Sicd refactor step0
2020-06-04 15:58:08 +02:00
Joakim Hove
6e60ebfc74 Merge pull request #1807 from akva2/fix_invalid_deref
fixed: reorder logging and update call
2020-06-04 14:50:53 +02:00
Arne Morten Kvarving
c620d392d2 fixed: reorder logging and update call
the update call can invalidate the reference since the underlying
smart pointer is replaced, and when there are no remaining references,
it is deleted.
2020-06-04 13:16:18 +02:00
Joakim Hove
1b2fc9a7fa Add new function to calculate total perforated length for segment 2020-06-03 08:28:53 +02:00
Joakim Hove
dcec08767d Add member perf_length to Segment class 2020-06-03 08:28:53 +02:00
Joakim Hove
7b33ab4519 Merge pull request #1805 from hakonhagland/glift_setters
Added some getters for LIFTOPT.
2020-06-02 11:00:54 +02:00
Håkon Hægland
f7d2631a57 Added const keyword to getters.
The access method should be marked as const so to make the compiler
aware that they should not modify the state of the object.
2020-06-02 09:20:54 +02:00
Håkon Hægland
c6d49a4b44 Added some getters for LIFTOPT.
Added getters for gaslift_increment() and min_eco_gradient() in
the Opm::GasLiftOpt class.
2020-06-02 07:21:01 +02:00
Bård Skaflestad
475dde4bb1 Merge pull request #1803 from joakim-hove/all-shut-message
All shut message
2020-06-01 23:37:17 +02:00
Joakim Hove
998b555662 Move message "All connections shut -> shut well" 2020-06-01 20:02:06 +02:00
Joakim Hove
80bd81c892 Remove commented out code 2020-06-01 08:59:38 +02:00
Bård Skaflestad
f7b2bb4a07 Merge pull request #1802 from atgeirr/clang-is-not-gcc
Ensure clang uses the normal standard headers.
2020-05-29 16:26:20 +02:00
Atgeirr Flø Rasmussen
937747323d Ensure clang uses the normal standard headers.
Clang defines __GNUC__ to 4, as that represents its level of
support for the GNU C dialect. The gcc compiler does not provide
a macro indicating the compiler separately from the dialect supported.
We must therefore use the __clang__ macro to avoid false positives.
2020-05-29 14:31:37 +02:00
Atgeirr Flø Rasmussen
1a1bb29a13 Merge pull request #1800 from atgeirr/bump-version
Bump version number
2020-05-29 13:34:28 +02:00
Joakim Hove
ccf3f150f2 Merge pull request #1798 from joakim-hove/aicd
Rename SpiralICD -> SICD
2020-05-29 07:24:38 +02:00
Joakim Hove
4fbfe3b8ec Merge pull request #1799 from joakim-hove/halvor_opm_restart
Halvor opm restart
2020-05-28 17:41:59 +02:00
Atgeirr Flø Rasmussen
f783282f49 Bump version number 2020-05-28 16:50:26 +02:00