Commit Graph

1596 Commits

Author SHA1 Message Date
Bård Skaflestad
32fa286f8e GuideRateValue: Insert Copyright Notice
Missed in commit 4f7d41ee1.

Pointy Hat: [at]bska.
2020-07-10 17:52:38 +02:00
Bård Skaflestad
4f7d41ee10 Output: Add Container for Transporting Guiderate Values
This commit introduces a container

    Opm::data::GuideRateValue

that packages a 'std::array' and 'std::bitset' into that array.
This container is intended as the main vehicle for transporting
per-phase guiderate values (Oil, Gas, Water, and Resvoir Voidage
Volume supported initially) calculated by the simulator to the
output layer.  We support the serialization operations read and
write in order to plug into the collective communications layer used
in the simulator.

Add unit tests to exercise the new container.
2020-07-09 16:44:15 +02:00
Joakim Hove
f500adba24 ACTIONX will handle WLIST well arguments 2020-07-09 15:16:33 +02:00
Joakim Hove
f4f993586a Add method WListManager::wells() which can do WLIST wildcards 2020-07-09 15:12:54 +02:00
Joakim Hove
d096a5fda6 Update WLIST to handle WLIST and well pattern arguments 2020-07-08 08:12:28 +02:00
Bård Skaflestad
643ff6e777 Merge pull request #1857 from joakim-hove/accept-long-keywords
Fix handling of too long 8 characters keywords like GUIDERATE
2020-07-05 19:58:44 +02:00
Joakim Hove
305b2a166a Add data::GroupValues member to RestartValue 2020-07-03 16:40:42 +02:00
Joakim Hove
4e223eae4a Fix handling of too long 8 characters keywords like GUIDERATE 2020-07-02 14:23:45 +02:00
Bård Skaflestad
68b4f38464 Make Structure for Per-Group Summary Data from Simulator
This commit adds a level of indirection to the current per-group
summary quantities that is directly assigned by the simulator.  In
particular, introduce a new structure named

    GroupData

that contains a 'GroupConstraints' object and make the per-group
values into 'map<string, GroupData>' rather than the current
'map<string, GroupConstraints>'.  This is in preparation of adding
support for reporting group-level production/injection guiderates
(Gx[IP]GR) to the summary file.

Update tests and APIs accordingly.
2020-07-02 10:57:46 +02:00
Joakim Hove
29a946eb9a Merge pull request #1846 from joakim-hove/udq-sign-bug
Udq sign bug
2020-07-01 10:47:04 +02:00
Tor Harald Sandve
42e55ec342 Add brine output 2020-06-30 16:19:16 +02:00
Joakim Hove
9fd29db2de Add case with literal in scientific form 2020-06-30 13:04:49 +02:00
Joakim Hove
f09b534e1d Hack around UDQ parser which does not accept leading '-' 2020-06-30 13:01:00 +02:00
Joakim Hove
fc4511d365 Fix UDQParsing code to handle numerical values on scientific form 2020-06-30 12:51:59 +02:00
Bård Skaflestad
0c35431a2f Merge pull request #1844 from joakim-hove/use-sumstate-group-function
Use SumState::has_group_var() / SumState::get_group_var()
2020-06-29 21:09:34 +02:00
Bård Skaflestad
64ae1a8dea Merge pull request #1834 from totto82/addPolymerOutput
Add output for polymer production
2020-06-29 17:06:53 +02:00
Joakim Hove
eb48fb709a Add SummaryState::get_xxx() overloads with a default argument 2020-06-29 14:14:49 +02:00
Joakim Hove
1704a35a92 Recover UDQ values from restart file 2020-06-25 16:18:59 +02:00
Joakim Hove
e65880aafb Use Schedule::restart_groups() 2020-06-25 14:18:19 +02:00
Tor Harald Sandve
13f07fdfef Polymer output
Change polymer production output from volume -> mass
Polymer injection rates are read from the simulator and not computed based on the water rate and the polymer injection concentration given in the schedule
2020-06-25 10:57:11 +02:00
Joakim Hove
f6d160db32 Add convenience method Schedule::restart_groups() 2020-06-24 12:53:09 +02:00
Arne Morten Kvarving
d7bdb448f5 add some trivial checks to avoid unused variable warnings 2020-06-19 09:43:48 +02:00
Joakim Hove
216a220ee8 Remove unused variable 2020-06-18 22:34:24 +02:00
Joakim Hove
dd1591f1a2 Use Action::State object to keep track of actions being run 2020-06-18 16:45:39 +02:00
Joakim Hove
f54245f1ca Add class Action::State to keep track of ACTIONX count 2020-06-18 16:45:39 +02:00
Joakim Hove
7d856b4933 Add id member to ActionX objects 2020-06-18 16:45:39 +02:00
Bård Skaflestad
2123884655 Merge pull request #1408 from jalvestad/extend_udq_actx_rst
Changes to extend and improve the ECL-compatible restart
2020-06-18 16:29:52 +02:00
Markus Blatt
8c6cd2f10f Merge pull request #1810 from blattms/support-pinch-nogap
Support querying GAP/NOGAP mode for Pinch form EclipseGrid.
2020-06-15 17:27:15 +02:00
Jostein Alvestad
c846716044 add variable to hold min value of nonzero uda 2020-06-15 09:55:40 +02:00
Jostein Alvestad
fea794ee17 further corrections of unit tests and code clean up 2020-06-15 09:55:38 +02:00
Jostein Alvestad
862b7b7591 clean up code - correct unit tests 2020-06-15 09:55:36 +02:00
Joakim Hove
985cb279ff Allow negative rates when evaluating UDA values
corrections to iwel[10] open/shut flag

further corrections SWEL for handling udq-restarts correctly

further changes to get correct SWEL in ECL-Restart file

added comment to clarify change

correction to group sequence and group controls for EclRST-file

changes to correct IGRP[NWGMAX+5]

corrected compile errors/warnings

further minor code corrections

initial changes to include group current Prod/inj Constraint in summary file

further changes to currentsStatusGroupControl to Summary output

further corrections and additions of Field current controls

further corrections for IGRP

minor corrections to code style

corrections for tests

changes to correct test_AggregateWellData

a few more initial changes for next version of igrp/sgrp

changes to igrp & sgrp according to tests

changes to handle special conditions at report step 0

corrections due to changes in Summary.cpp

changes to improve code quality and robustness

Add default value to igrp[nwgmax+5]

corrections and code improvements base on testing

corrections to handling of GCONINJE

further corrections for IGRP

even further corrections IGRP

changes to correct SGRP

correction to IGRP defaults

corrections to SWEL and IGRP

further corrections for IGRP

removed some comments
2020-06-15 09:55:27 +02:00
Joakim Hove
84aa2f77f3 Merge pull request #1820 from joakim-hove/udq-nan-values
UDQSet will check for nan values
2020-06-12 13:49:24 +02:00
Joakim Hove
0841e4f398 Merge pull request #1797 from joakim-hove/GPMAINT
Add code to internalize GPMAINT keyword in Group objects
2020-06-12 12:19:20 +02:00
Joakim Hove
082820380d Ensure that all values in UDQSet are finite 2020-06-12 09:12:55 +02:00
Joakim Hove
213c6fb6ad Add function SummaryState::update_udq() to add variables from UDQSet 2020-06-12 09:12:55 +02:00
Joakim Hove
90d1d992e5 Ensure that evaluated UDQSet have the correct name 2020-06-12 09:12:55 +02:00
Joakim Hove
669918547a Add del() method to SummaryState 2020-06-12 09:12:55 +02:00
Joakim Hove
b07bd377cd Merge pull request #1819 from joakim-hove/aicd
Aicd
2020-06-12 09:12:18 +02:00
Atgeirr Flø Rasmussen
e08a3666e3 Merge pull request #1818 from atgeirr/fix-nupcol-runspec
Handle NUPCOL in RUNSPEC correctly
2020-06-11 20:50:30 +02:00
Joakim Hove
224911bd10 Add implementation for autonomous ICD: AutoICD 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
Joakim Hove
6090470045 Add code to internalize GPMAINT keyword in Group objects 2020-06-11 09:40:55 +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
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
Atgeirr Flø Rasmussen
80f6a5d1ed Add failing test for NUPCOL in RUNSPEC. 2020-06-10 13:17:04 +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
Markus Blatt
23dd41ba38 Support querying GAP/NOGAP mode for Pinch form EclipseGrid.
While we currently only support GAP and do not need this,
we will need it eventually to support NOGAP in the simulator.
2020-06-04 20:19:51 +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