Commit Graph

8976 Commits

Author SHA1 Message Date
Markus Blatt
951bd69522 Allow access to field data assoicated with TranCalculator.
We need this in opm-simulators where we need to query the
FieldProperties associated with the TranCalculator (e.g. TRANX0). Previously,
this were listed by FieldPropertiesManager::keys() but calling
get_int_field_data with the keyword would raise an exception resulting
in a deadlock.

This commit allows passing true as an additional argument to prevent
this (it gets passed to all functions called). This allows for running
with edited transmissibilities in parallel.
2020-09-17 22:20:36 +02:00
Markus Blatt
98f0b36b21 indclude algoritm header in FieldData.hpp
needed for std::find_first_of.
2020-09-17 20:23:58 +02:00
Joakim Hove
629da97d61 Rethrow the same exception 2020-09-17 18:54:31 +02:00
Markus Blatt
d3d91c2a08 Added ADD modifier for TranCalculator. 2020-09-17 16:40:10 +02:00
Markus Blatt
e6893caa89 Added support for MINVALUE to calculator. 2020-09-17 16:33:31 +02:00
Markus Blatt
7bdf49f15e Fixes MAXVALUE modifyer for transmissibility. 2020-09-17 16:26:06 +02:00
Markus Blatt
5ea65651ac Fix test for MAXVALUE. 2020-09-17 16:02:25 +02:00
Joakim Hove
403fd09e69
Merge pull request #1930 from joakim-hove/fmtlib
Add build dependency on fmtlib
2020-09-17 15:40:39 +02:00
Joakim Hove
9e7c808524 Add libfmt dependencies to package specifications 2020-09-17 15:31:16 +02:00
Joakim Hove
bafdbc35cc Add dependency to header only fmtlib 2020-09-17 14:57:40 +02:00
Markus Blatt
6a81e4bb63 Complete checks for TransCalculator. 2020-09-17 12:54:15 +02:00
Markus Blatt
d83790164d make tran_active non-throwing. 2020-09-17 12:54:15 +02:00
Markus Blatt
3a6cd37db1 Make apply_tran and deserialize_tran accessible as free functions.
In the simulator we are using different datastructures to hold them.
Hence we need to be able to apply and deserialize there.
2020-09-17 12:29:37 +02:00
Markus Blatt
e9be39d666 Add access for int and double FieldData.
This is needed for communication in the simulator. Previously,
that just used the data (std::vector), but the TranCaclulator
also needs the value_status to correctly. Hence this needs
to be communicated, too.
2020-09-17 11:46:17 +02:00
Markus Blatt
967f63479d Move FieldData to its own header for usage from simulator.
We need to refactor to make FieldData accessible from the simulator
for running in parallel with the TranCalculator.
2020-09-17 11:46:17 +02:00
Markus Blatt
1bb4c937a2 Move TranCalculator to its own header.
We need to refactor to make FieldData accessible from the simulator
for running in parallel with the TranCalculator.
2020-09-17 11:46:17 +02:00
Markus Blatt
16b946b199 Move keywords to their own header file.
We need to refactor to make FieldData accessible from the simulator
for running in parallel with the TranCalculator.
2020-09-17 11:46:17 +02:00
Joakim Hove
519e65d32c Add documentation 2020-09-17 11:46:17 +02:00
Joakim Hove
8499c9d1cd Add tran_active() query function 2020-09-17 11:46:17 +02:00
Joakim Hove
4bd9b7212f Add serialization of FieldProps TRAN calculators 2020-09-17 11:46:17 +02:00
Joakim Hove
ecee4a7d36 Adds a calculator for modifying field properties in the edit section.
Previously modifications were applied directly to the field
properties. Unfortunately, for unset TRANX this resulted in
modifying 1.0 even if the simulator is calculating
transmissibilities itself. This was one of the reasons
why we got wrong results (others are in the simulator code).

Now these operations recorded in a calculator which can later be
applied to compressed arrays using apply_tran.
2020-09-17 11:40:56 +02:00
Bård Skaflestad
0935aae02c
Merge pull request #1929 from bska/capture-raw-sfunc-vals
Saturation Functions: Add Means of Retrieving Select Function Values
2020-09-17 11:02:22 +02:00
Bård Skaflestad
df1f03e4a8 SatFunc: Add Means of Retrieving Select Function Values
This commit introduces a new helper structure, RawFunctionValues,
which collects unscaled saturation function values that are needed
for vertical scaling of saturation functions using keywords such as

    KRO, KRORG, KRGR, PCW

and their hysteretic and directional counterparts.  We also
introduce a new helper function, getRawFunctionValues, which
extracts those values from the function tables in TableManager.

Add a set of unit tests to exercise the new feature.
2020-09-17 08:33:42 +02:00
Bård Skaflestad
07780a793f Field Props Test: Fix Minor Compiler Warnings
In particular, fix a few instances of "signed vs. unsigned"
comparisons, one "no previous declaration for", and include the
<algorithm> header for std::find().
2020-09-17 08:16:37 +02:00
Bård Skaflestad
7a2350bc3c
Merge pull request #1922 from joakim-hove/dynamicstate-update-equal
Dynamicstate update equal
2020-09-17 08:03:29 +02:00
Bård Skaflestad
fb93e08ef0
Merge pull request #1928 from hakonhagland/liftopt_4
Add get method for LIFTOPT item 4.
2020-09-17 08:00:51 +02:00
Bård Skaflestad
60f6c26456
Merge pull request #1924 from joakim-hove/keyword-location
Keyword location
2020-09-16 23:35:09 +02:00
Bård Skaflestad
9765ba9d3f
Merge pull request #1927 from joakim-hove/add-timestep
Unconditionally add "TIMESTEP" to SummaryState
2020-09-16 23:24:38 +02:00
Håkon Hægland
672eb6e689 Add get method for LIFTOPT item 4. 2020-09-16 21:20:58 +02:00
Joakim Hove
c334245d08 Unconditionally add "TIMESTEP" to SummaryState 2020-09-16 19:33:04 +02:00
Joakim Hove
0d85293fcc
Merge pull request #1925 from akva2/fix_nupcol_serialization
fixed: serialization nupcol in Runspec
2020-09-16 17:12:03 +02:00
Joakim Hove
b61f87ddaa Add message function to KeywordLocation 2020-09-16 15:14:44 +02:00
Arne Morten Kvarving
08df29c991 fixed: serialization nupcol in Runspec
also add it to comparison operator
2020-09-16 14:59:26 +02:00
Joakim Hove
d283f1858f Add keyword member to KeyworLocation 2020-09-16 14:24:06 +02:00
Joakim Hove
bef5a4c27b Renamed class Location -> KeywordLocation 2020-09-16 14:06:54 +02:00
Joakim Hove
a023d4b437 DynamicState::find will return std::optional<std::size_t> 2020-09-16 11:59:03 +02:00
Joakim Hove
e03a97b539 DynamicState::update_equal() will return index of next value 2020-09-16 09:55:09 +02:00
Atgeirr Flø Rasmussen
891fda8e79
Merge pull request #1921 from akva2/implement_node_serialize_object
fixed: implement Node::serializeObject
2020-09-16 09:42:10 +02:00
Joakim Hove
ae8dc1a770
Merge pull request #1920 from totto82/scaleAlq
scaling of the Alq values
2020-09-16 09:27:59 +02:00
Arne Morten Kvarving
37fcfe4379 fixed: implement Node::serializeObject 2020-09-16 08:57:06 +02:00
Tor Harald Sandve
ca2dfc6136 scaling of the Alq values 2020-09-16 07:56:05 +02:00
Bård Skaflestad
867fed3288
Merge pull request #1880 from bska/fix-gr-calc
Refactor Damping Factor Implementation
2020-09-15 15:11:36 +02:00
Bård Skaflestad
245a3aa09e GuideRate: Add Test Case for Revised get() Implementation 2020-09-15 10:15:11 +02:00
Bård Skaflestad
8a87914740 Don't Repeatedly Calculate Same Guiderate Value
Doing so works reduces the impact of the damping factor.
2020-09-15 10:15:10 +02:00
Bård Skaflestad
7649df53a2 GuideRate: Revise Damping Factor Implementation
This commit centralises the way we incorporate damping factors (item
10 of the GUIDERAT keyword) into the calculation of group/well guide
rates.  In particular, we create a structure that manages both the
current and the previous (damped) guiderate values and ensures that
the new guiderate value is

    GR_p = f*GR_p' + (1 - f)*GR_p^{n-1}

with GR_p' denoting the "raw" guiderate value calculated directly
from potential rates at the current timelevel (n).  GR_p^{n-1} is
the damped-and previously used-guiderate value from timelevel n-1.
Finally 'f' denotes the damping factor.  This is the same approach
used previously, but with some small changes to exclude zero-valued
guiderates.

We furthermore remove one of the early returns in GuideRate::get().
There is no need to return the nominated phase's guiderate value if
the model phase rate is very low and doing so produces incorrect
water guiderates for the OPL5 well in the MOD4_GRP test case.
2020-09-15 10:15:10 +02:00
Bård Skaflestad
3080b9c7f6 RateVector: Forward 'eval' Calls to GuideRateModel::Target Overload
Avoids having to repeat the implementation for wells and groups.
2020-09-15 10:15:08 +02:00
Bård Skaflestad
a4d07b5c57
Merge pull request #1918 from joakim-hove/internalize-summary-region
Make sure R__xxx keywords are recognized in Summary writer
2020-09-15 09:08:32 +02:00
Joakim Hove
03f9a73f43 Make sure R__xxx keywords are recognized in Summary writer 2020-09-14 23:05:03 +02:00
Bård Skaflestad
98ec42f472
Merge pull request #1874 from totto82/fixwsaltunit
Fix unit for salt concentration in WSALT
2020-09-14 15:40:48 +02:00
Bård Skaflestad
764149182d
Merge pull request #1917 from akva2/janitoring
Some janitoring
2020-09-14 13:26:09 +02:00