Commit Graph

8880 Commits

Author SHA1 Message Date
Joakim Hove
f604f94e89 Document format placeholders in KeywordLocation 2020-09-22 12:38:09 +02:00
Joakim Hove
11d5128cbf Use KeywordLocation instead of passing keyword and filename separately 2020-09-22 09:55:45 +02:00
Joakim Hove
fe2f5ee185 Keep track of maximum size of RawRecord 2020-09-22 09:55:45 +02:00
Joakim Hove
0530b9b1a3
Merge pull request #1943 from wito/schedule-keyword-functions
Schedule Keyword Handler Dispatch
2020-09-22 09:32:47 +02:00
Markus Blatt
57dde8051d
Merge pull request #1945 from blattms/fix-fmtlib
Also remove fmtlib from opm-common-prereqs.cmake
2020-09-22 07:53:25 +02:00
Williham Williham Totland
7a7920f3e7 Implements a new dispatcher for keywords in Schedule. 2020-09-21 19:22:11 +02:00
Markus Blatt
396bfbbcd2 Also remove fmtlib from opm-common-prereqs.cmake
Otherwise the user still needs to have an installed version on the system
in addition.
2020-09-21 15:46:01 +02:00
Joakim Hove
ee4ac770af
Merge pull request #1941 from joakim-hove/rm-sim-container
Remove unused class SimulationDataContainer
2020-09-21 11:15:36 +02:00
Atgeirr Flø Rasmussen
045f527c5d
Merge pull request #1940 from bska/nodepress-summary-output
Prepare for Outputting Network Node Pressure to Summary File
2020-09-21 09:21:59 +02:00
Joakim Hove
79ae4c7935 Remove unused class SimulationDataContainer 2020-09-21 08:18:51 +02:00
Bård Skaflestad
dbfd013cf4 Add Means of Retrieving Node Names from Extended Network
This commit adds a new member function

    ExtNetwork::node_names() const

which collects the names (std::string) of all nodes in a network.
The immediate use case is creating summary config nodes for network
level quantities specified without explicit lists of nodes, e.g.,

    GPR
    /

Add a simple unit test for demonstration.
2020-09-20 17:46:01 +02:00
Bård Skaflestad
6ea0e73512 Prepare for Creating Network-Level Summary Output
This commit adds a level of indirection to the existing group-level
data (active controls and guiderates), and adds a new 'NodeData'
level to the 'data::' protocol for transporting values from the
simulator to the output layer.

Update all call sites and users accordingly.
2020-09-20 17:46:01 +02:00
Joakim Hove
ac40c65f64
Merge pull request #1933 from joakim-hove/throw-same
Rethrow the same exception
2020-09-18 15:28:05 +02:00
Joakim Hove
b8c4a2ed83
Merge pull request #1937 from joakim-hove/embed-fmtlib
Embed fmtlib
2020-09-18 15:26:44 +02:00
Joakim Hove
b09db0325d Use fmtlib for string formatting in opmhash 2020-09-18 11:23:43 +02:00
Joakim Hove
4e5aed45d7 Embed fmtlib source code 2020-09-18 11:23:30 +02:00
Joakim Hove
3004e14e9a Remove use fmtlib package from build system 2020-09-18 11:19:41 +02:00
Joakim Hove
f9d43e738a
Merge pull request #1936 from akva2/fix_packaging_libfmt
fix packaging files for libfmt
2020-09-18 10:14:05 +02:00
Arne Morten Kvarving
86d166756a fix packaging files for libfmt 2020-09-18 08:21:13 +02:00
Joakim Hove
f51533907f
Merge pull request #1935 from bska/final-runsum-only
Don't Write RSM File for Substeps
2020-09-18 07:22:17 +02:00
Bård Skaflestad
50e4f9439b Don't Write RSM File for Substeps
If the last report step happens to be split into multiple substeps
(e.g., convergence problems or TUNING settings &c), then we will
write the RSM file for each substep which will slow down the
process.  This commit explicitly ensures that we don't output the
RSM file unless it is the last substep of the final report step.
2020-09-18 01:43:20 +02:00
Joakim Hove
629da97d61 Rethrow the same exception 2020-09-17 18:54:31 +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
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