Commit Graph

1008 Commits

Author SHA1 Message Date
Bård Skaflestad
8d2cc14ad0 Active Well Control Output: Place Duplicate Implementation in Well
Will become shared backend for output to restart and summary files.
Add unit tests to exercise the new functions.
2020-03-20 22:07:04 +01:00
Joakim Hove
c7f6b22bdf Add static method bool Python::enabled() 2020-03-20 16:59:50 +01:00
Joakim Hove
d06a5a78e0 Moved PyAction class into Action:: namespace 2020-03-20 16:59:50 +01:00
Joakim Hove
7852203d39 PYACTION: The actual python code is in an external file
With this commit the PYACTION keyword is changed, instead of embedding the
Python code directly in the .DATA file the keyword now points to an external
file which is loaded verbatim into the PyAction keyword.

In addition the PYACTION keyword has now got a name and a string indicating how
many times it should run.
2020-03-20 16:59:50 +01:00
Williham Williham Totland
6970158f7f Makes the return value of Opm::Group::flow_group/::control_group optional. 2020-03-20 14:08:03 +01:00
Joakim Hove
f87369713b Add global_index to Connections 2020-03-19 22:14:06 +01:00
Joakim Hove
acd73b76ea Remove unused method WellConnections::inputSize() 2020-03-18 15:36:17 +01:00
Joakim Hove
96d2cd59b3 Move Connection::Order member from Well to WellConnections 2020-03-18 14:28:53 +01:00
Williham Williham Totland
fb7d4315c9 Renames Opm::SummaryNode to Opm::SummaryConfigNode. 2020-03-13 15:40:41 +01:00
Joakim Hove
4433731079
Merge pull request #1566 from wito/rsm-testing
Adding support for the RUNSUM keyword in Opm::SummaryConfig
2020-03-13 11:16:30 +01:00
Williham Williham Totland
67f3d31254 Makes RPTONLY a processing instruction. 2020-03-13 10:02:48 +01:00
Williham Williham Totland
d5c4487808 Implements support for RUNSUM-related keywords NARROW and SEPARATE 2020-03-13 09:15:46 +01:00
Joakim Hove
03be91a951 Add members cf_kind, cf, skin_factor and r0 to rst::connection 2020-03-12 18:11:25 +01:00
Williham Totland
a270964846 Adds tests for swallowing RUNSUM keyword. 2020-03-12 14:59:31 +01:00
Williham Totland
6f83c4198c Review Action: Renames SummaryConfig::doRunSummary to SummaryConfig::createRunSummary 2020-03-12 12:23:09 +01:00
Williham Totland
c5af3afebd Corrects test after discussion. 2020-03-12 11:35:38 +01:00
Williham Totland
fcc2e32d66 Renames runsum to doRunSummary, adds accessor. 2020-03-12 10:52:10 +01:00
Joakim Hove
7a9c0171d1 Add test to check whether RSM output has been requested 2020-03-12 09:28:48 +01:00
Arne Morten Kvarving
9b22cab024 changed: relocate and rename StoneType enum
unfortunate naming, unfortunate location
2020-03-10 11:09:49 +01:00
Joakim Hove
327625b713 Use the WellType class in Well and Schedule 2020-03-09 13:30:18 +01:00
Joakim Hove
6e8b4a6c12 Add WellType class for ecl interop 2020-03-09 13:29:11 +01:00
Joakim Hove
51a593de39
Merge pull request #1532 from joakim-hove/uda-value-dim-constructor
Uda value dim constructor
2020-03-09 13:28:22 +01:00
Williham Totland
13e838d171 Separates Opm::Group::parent() for the extended network model
In order to support the extended network model going forwards, the method Opm::Group::parent() is split in the API into two new methods, Opm::Group::control_group() and Opm::Group::flow_group(). These methods give the names of the parent node in the group control hierarchy and network structure, respectively.

While for the standard network model these two values will be the same (and the same as ::parent()), code that presently calls ::parent() should be revisited with an eye to the question of which parent group is desired.
2020-03-06 14:38:38 +01:00
Joakim Hove
8501a7ead4 Construct UDA values in WellInjectionProperties with correct unit 2020-03-05 13:08:00 +01:00
Joakim Hove
17ec37ae4e WellProductionProperties - init with correct UDA dimensions 2020-03-05 13:08:00 +01:00
Joakim Hove
4b0ee9d0bb Remove method Dimension::newComposite() 2020-03-05 13:08:00 +01:00
Joakim Hove
874c734628 Remove name property from UnitSystem dimension 2020-03-05 13:08:00 +01:00
Joakim Hove
f8c250be34 UDAValue: change from ::reset() to ::operator=() 2020-03-05 13:08:00 +01:00
Joakim Hove
37d31aeac0 Remove UDAValue copy and modify constructor 2020-03-05 13:08:00 +01:00
Joakim Hove
1b2fadcdc4 Move enum Well:InjectorType to new file ScheduleTypes 2020-03-03 09:09:11 +01:00
Arne Morten Kvarving
710a94709e changed: simplify OilVaporizationProperties
there is no vappars per pvt region. do not store it as such either.
2020-03-02 09:32:40 +01:00
Atgeirr Flø Rasmussen
1a0f47f274 Add Group::isAvailableForGroupControl() method.
The method has very similar intended usage as the method of the
same name in the Well class.
2020-02-27 14:56:31 +01:00
Joakim Hove
8cb65a77a6
Merge pull request #1507 from joakim-hove/dent-keywords
Add simple POD class to internalize keywords xxxDENT
2020-02-26 09:55:58 +01:00
Joakim Hove
24528ea607 Add simple POD class to internalize keywords xxxDENT 2020-02-25 15:06:34 +01:00
Arne Morten Kvarving
aceb3b443a remove unused enum entry OpmFIL 2020-02-24 11:41:50 +01:00
Joakim Hove
ae504bcb45
Merge pull request #1499 from totto82/addControlWELTARG
Add production control from WELTARG
2020-02-21 13:25:20 +01:00
Tor Harald Sandve
83a8a9f4fe add test for production control from WELTARG 2020-02-21 12:39:58 +01:00
Atgeirr Flø Rasmussen
f35529d7ff Silence warnings.
- One class vs struct declaration.
 - Unused variables in a test.
2020-02-21 10:49:41 +01:00
Joakim Hove
a3c634b1f8
Merge pull request #1458 from joakim-hove/eclstate-aquifer-config
Eclstate aquifer config
2020-02-20 08:25:25 +01:00
Joakim Hove
aed8c78af5 Move RestartConfig from EclipseState to Schedule 2020-02-19 12:35:07 +01:00
Joakim Hove
59f6cc7c11 Remove moot test 2020-02-19 12:33:50 +01:00
Arne Morten Kvarving
83a7cd04c3 remove unused boost includes
and deal with missing include fallout
2020-02-19 09:51:46 +01:00
Arne Morten Kvarving
2b6754151f add internal replacement for boost::split and use it 2020-02-19 09:29:25 +01:00
Joakim Hove
01aa3692fa Add AquiferConfig to EclipseState 2020-02-18 18:07:02 +01:00
Joakim Hove
7daf77ef59 Added AquiferConfig class 2020-02-18 15:30:09 +01:00
Arne Morten Kvarving
57d88dea7e add a replacement for boost::replace_all and use it 2020-02-18 14:48:40 +01:00
Joakim Hove
fc82988c9c
Merge pull request #1475 from joakim-hove/schedule-addwell-refactor
Add new Schedule::addWell() overload + update Well constructor args
2020-02-18 11:58:37 +01:00
Joakim Hove
084ff09e78
Merge pull request #1476 from joakim-hove/timemap-skiprest
Internalize the existence of SKIPREST in the TimeMap
2020-02-18 11:57:24 +01:00
Joakim Hove
32227236fa Refactor AQUANCON implementation 2020-02-18 07:33:05 +01:00
Joakim Hove
91c886465a
Merge pull request #1478 from akva2/vfp_boost_prune
Drop use of boost::multi_array in VFP classes
2020-02-17 13:57:32 +01:00
Joakim Hove
dd04b1d9df
Merge pull request #1467 from joakim-hove/rst-units
Add units to rst classes
2020-02-17 13:23:01 +01:00
Arne Morten Kvarving
fa572188fa changed: avoid use of boost::multi_array in VFPProdTable 2020-02-17 13:08:14 +01:00
Arne Morten Kvarving
143c8ec3bf changed: avoid use of boost::multi_array in VFPInjTable 2020-02-17 13:08:14 +01:00
Joakim Hove
cad54feafb Internalize the existence of SKIPREST in the TimeMap 2020-02-16 17:53:27 +01:00
Joakim Hove
1b0af2954d Add new Schedule::addWell() overload + update Well constructor args 2020-02-14 14:21:08 +01:00
Atgeirr Flø Rasmussen
fa5050f18a
Merge pull request #1474 from joakim-hove/schedule-add-rst-argument
Schedule add rst argument
2020-02-14 14:00:20 +01:00
Joakim Hove
0b3f885b33 Started to add skeleton load_rst function 2020-02-14 12:51:26 +01:00
Atgeirr Flø Rasmussen
4516b23a14
Merge pull request #1410 from joakim-hove/group-multiple-phases
Support multiple phases in group injection
2020-02-14 11:10:37 +01:00
Joakim Hove
0b2dbf7fc2 GroupInjection is a map over phases + implement topup_phase 2020-02-14 09:30:58 +01:00
Joakim Hove
7da79ae532 Convert rst quantities to SI units 2020-02-14 06:43:25 +01:00
Joakim Hove
36662b2734 Use internal string trim functions instead of boost algorithm 2020-02-13 18:25:37 +01:00
Arne Morten Kvarving
4f63172dc9
Merge pull request #1461 from akva2/use_std_filesystem
Replace boost::filesystem with std::filesystem
2020-02-13 15:01:02 +01:00
Arne Morten Kvarving
fb75bcd4e2 changed: use std::filesystem instead of boost::filesystem
since we still support g++-7, where filesystem is marked experimental,
we introduce a wrapper header and expose the namespace to use
as Opm::filesystem.

for gcc we unconditionally link with libstdc++fs in the python bindings.
the setup.py stuff links as c code, not c++ code, so it is not
automatically added on any gcc version. this might prove unportable
later.
2020-02-13 12:34:19 +01:00
Joakim Hove
bd688edfde Wellsegments are created with constructor 2020-02-13 11:03:14 +01:00
Atgeirr Flø Rasmussen
74129a2866 Silence a few warnings, remove some end-of-line whitespace. 2020-02-13 09:13:29 +01:00
Joakim Hove
9bed25f035 Use common ICDStatus class for both Valve and SpiralICD 2020-02-12 15:09:26 +01:00
Joakim Hove
1a1b796cb6 Refactor Aquifetp class
- Make constructor and operator== for struct
- Make constructor and accessor for serialization
- Initial pressure stored in std::pair<bool, double>
- Add size() and begin() and end()
- Remove unused memmbers cell_id and inftableID
- Use ParserKeywords::AQUIFETP class instead of string lookup
2020-02-07 07:30:22 +01:00
Joakim Hove
140a1c0bf3 Add accessor and constructor for serialization 2020-02-07 07:30:22 +01:00
Joakim Hove
f91630a62d Add operator== to AQuiferCT
Initial pressure is stored as std::pair<bool, double> instead of
std::shared_ptr<double>.
2020-02-07 07:30:22 +01:00
Joakim Hove
a505f59096 Add begin(), end() and size() to AquiferCT class 2020-02-07 07:30:22 +01:00
Joakim Hove
ca4c10f810 Use TableManager in AquiferCT constructor 2020-02-07 07:30:22 +01:00
Joakim Hove
112a0d1f2d Add test for testing of restart loaded well and connection 2020-02-06 11:59:10 +01:00
Bård Skaflestad
8225ea87d4
Merge pull request #1450 from joakim-hove/unitsystem-ecl-id
Add UnitSystem functionality to handle eclipse integer id
2020-02-05 20:42:51 +01:00
Joakim Hove
35a580f610 Add UnitSystem functionality to handle eclipse integer id
Writing of INTEHEAD keyword uses UnitSystem class instead of intermediate enum
UnitSystem.
2020-02-05 07:38:00 +01:00
Arne Morten Kvarving
dab3ba807a changed: simpify Tuning handling
make Tuning a simple struct, and store as a DynamicState<Tuning>.

in the process the unused setTuningInitialValue is removed. it was
only used in unit tests and seem like a leftover
2020-02-04 10:42:43 +01:00
Bård Skaflestad
19ecc3d30e Consider Active Phases When Initializing Satfunc Endpoints
This commit passes the run's notion of its active phases, an object
of type Opm::Phases, through to the initialisation layer for the
saturation functions' scaling properties.  In particular, this
allows us to discriminate between the phases and to not index into
tables or properties that would not be appropriate (e.g., maximum
gas saturation (SGU) in a simulation run without active gas).

Moreover, we now have enough information to know to look for SOF2 in
two-phase run using family II saturation function keywords.  These
changes are necessary in order to extend Flow's support for the
FILLEPS output request to two-phase runs.
2020-01-29 16:34:15 +01:00
Joakim Hove
936f142233 Add class RockConfig under SimulationConfig 2020-01-29 15:04:31 +01:00
Bård Skaflestad
c8d23c8d0a
Merge pull request #1438 from joakim-hove/timemap-schedule-only
TimeMap iterate only over SCHEDULE section

Closes OPM/opm-simulators#2306
2020-01-29 00:08:06 +01:00
Joakim Hove
d36b6fa287 TimeMap iterate only over SCHEDULE section 2020-01-28 20:38:45 +01:00
Arne Morten Kvarving
5e546086fb
Merge pull request #1435 from akva2/hide_fprops_ifaces
changed: hide the templated 'has' and 'get' interfaces in FieldPropsManager
2020-01-28 15:33:49 +01:00
Arne Morten Kvarving
ae10af208f changed: hide the templated 'has' and 'get' interfaces in FieldPropsManager
motivation: an upcoming parallel frontend to the field props manager.
templated functions cannot be virtualized, and thus having these exposed
would give a great chance of confusing the users in the downstream
code, where properties would be caught from the (potentially) empty
backend instead of from the frontend.
2020-01-28 14:31:25 +01:00
Joakim Hove
dcc52eb225 Add testdata 2020-01-28 12:46:18 +01:00
Bård Skaflestad
7c1b77ec5d Internalise TOLCRIT Keyword
This commit internalises the TOLCRIT keyword into the EclipseState
for subsequent use in determining critical saturations when
processing saturation function keywords such as SGOF and SOF3.
Specifically, we add a new type

    Opm::SatFuncControls

that, at present, stores only the TOLCRIT data item (defaulted to
the keyword's default value).  Client code can then retrieve the
value by calling the

    SatFuncControls::minimumRelpermMobilityThreshold()

member function.

Add a new data member of this type to the Opm::Runspec class so that
we complete the chain from EclipseState, and a few simple unit tests
to exercise the expected functionality.
2020-01-24 20:58:38 +01:00
Joakim Hove
db8ded1f09 Pass restart info to TimeMap constructor 2020-01-24 19:27:53 +01:00
Joakim Hove
fc9958bb0c Remove TimeMap( start_time ) constructor 2020-01-22 16:56:42 +01:00
Joakim Hove
63e99fb807 Make mutable accessors in TimeMap private 2020-01-22 16:23:37 +01:00
Joakim Hove
51daf43cef
Merge pull request #1422 from akva2/noecl_flush_prestate
More serialization preparation
2020-01-22 06:30:57 +01:00
Arne Morten Kvarving
48bca722f5 changed: store reference to FieldPropsManager as a pointer
default initialization required for serialization
is not possible with a const ref member
2020-01-21 15:22:10 +01:00
Joakim Hove
691296f91a Remove old 3D property implementation 2020-01-19 23:04:46 +01:00
Bård Skaflestad
8f182db27a Rework RFT Config to Handle More Cases
Generally, this commit captures more of the surrounding context of
calls to the updateRFT() and updatePLT() member functions.  We need
this additional context in order to handle the conflicting semantics
of output requests WRFT and WRFTPLT:FOPN.  The former generates RFT
output when the well opens if this event does not happen earlier in
the simulation schedule than the output request.  Otherwise no RFT
data is emitted.  The latter outputs RFT data at request time if
well opens no later than the request; otherwise at well-open time.

To this end, switch the well_open_rft_name data member from an
unordered_set of well names into an unordered_map from well names to
RFT output request times.  With this additional information we can
use well_open_rft_time to infer the appropriate response to whether
or not to activate RFT output at well open time.  Moreover, we now
guarantee that no RFT output is ever activated before the first RFT
output request.

Switching the type of the well_open_rft_name data member also begets
an API update to the serialization related RFTConfig constructor and
to the return type of RFTConfig::wellOpenRftName().

We furthermore switch to caching the first RFT output event in a new
scalar data member, first_rft_event.  This caching, coupled with the
additional calling context mentioned earlier, means we are now able
to report a high-fidelity, constant time answer to the

    RFTConfig::firstRFTOutput()

request.  This, in turn, is very useful for the RFT output code.
Finally, we also add a couple of new, private member functions to
simplify updating first_rft_event depending on context.

As part of this update, member function

    RFTConfig::setWellOpenRFT(report_step)

will now use the minimum of all 'report_step' values to support the
WRFT keyword being specified more than once.

Finally, add a set of unit tests to exercise the various RFT output
request combinations.

While here, also switch to using unordered_map::find() and emplace()
where possible to limit repeated look-up of the same keys.
2020-01-14 15:58:34 +01:00
Joakim Hove
ecb5fce19b
Only active cells (#1298)
Use FieldProps implementation for 3D properties
2020-01-13 15:46:06 +01:00
Joakim Hove
a6ddce5d92 Add basic Python exec of PYACTION 2020-01-13 15:15:21 +01:00
Joakim Hove
1985f094a3
Merge pull request #1394 from joakim-hove/schedule-update-well
Schedule update well
2020-01-11 17:03:56 +01:00
Joakim Hove
7d1d08d4a8
Merge pull request #1399 from joakim-hove/py-code-records
Py code records
2020-01-11 06:57:45 +01:00
Joakim Hove
35619721a3 Well::updateStatus can optionally update status of connections 2020-01-11 06:55:22 +01:00
Joakim Hove
aa9bab75d9
Merge pull request #1391 from totto82/trinemykk-smartwater
Rebased brine module
2020-01-11 06:50:29 +01:00
Joakim Hove
f3797e8877 Python code must be properly terminated 2020-01-09 09:26:35 +01:00
Joakim Hove
6199b81e60 Use 'PYEND' instead of '<<<' to terminate PYACTION and PYINPUT 2020-01-09 08:21:59 +01:00
Tor Harald Sandve
c5e68b82e8 Fix rebase smartwater 2020-01-08 15:31:35 +01:00
Trine S. Mykkeltvedt
aa19f38a54 Added keywords PVTWSALT and modified SALTVD, WSALT and BDENSITY for a simple salt/brine implementation 2020-01-08 15:31:35 +01:00
Joakim Hove
b65e5547aa
Merge pull request #1386 from joakim-hove/uda-raw-data
Uda raw data
2020-01-07 15:04:29 +01:00
Joakim Hove
6f330a7482 Fixup of alternating records special case 2020-01-06 15:50:36 +01:00
Joakim Hove
b7cebb1907 Refactored the handling of BHP / THP 2020-01-06 15:28:04 +01:00
Joakim Hove
8f6c2c70f6 UDAalue::get<double>() will return raw value - not SI.
Add new function UDAValue::getSI() which will return SI value of numerical
input, and throw an exception if internal state is not numeric.
2020-01-06 12:05:51 +01:00
Joakim Hove
40ea92ac81 Reenable BHP testing 2020-01-06 12:05:51 +01:00
Joakim Hove
d2392c4ea4 Add PyAction skeleton code 2020-01-06 10:28:19 +01:00
Joakim Hove
4e899503e2
Merge pull request #1380 from joakim-hove/split-codegen
Split codegen
2020-01-06 10:27:14 +01:00
Joakim Hove
3c29d4c410
Merge pull request #1385 from akva2/noecl_flush
More serialization preparation
2020-01-03 20:15:31 +01:00
Arne Morten Kvarving
e7e2458951 make Action::AST constructible from variables
also add accessors and equality operator
2020-01-03 13:20:36 +01:00
Bård Skaflestad
5fb4d355ec
Merge pull request #1383 from joakim-hove/fp-section
Fp section
2020-01-03 11:33:54 +01:00
Joakim Hove
c42be3d345 Fixed bug in SORTA and SORTD functions 2020-01-02 20:18:19 +01:00
Joakim Hove
c3a038c2b6 Refactor code generation to facilitate multiple source files 2020-01-02 15:27:54 +01:00
Joakim Hove
141000b750 FieldProps parsing is section aware - handle MULT in EDIT 2020-01-02 15:27:22 +01:00
Joakim Hove
90d30e3bc9 Rename class Section -> DeckSection 2020-01-02 15:27:22 +01:00
Joakim Hove
fbe3d34acb
Merge pull request #1369 from stefoss23/udt
Parser will skip keyword UDT.
2019-12-20 16:30:24 +01:00
Steinar Foss
e2e8d1eb22 Parser will skip keyword UDT.
Parser will skip UDT.
2019-12-20 12:40:20 +01:00
Joakim Hove
4f11b7846c Add support for MULTREGP in FieldProps::porv implementation 2019-12-20 07:28:48 +01:00
Joakim Hove
fde5c0b096
Merge pull request #1359 from joakim-hove/fp-comments
Fp comments
2019-12-20 07:27:17 +01:00
Steinar Foss
a5c245bc6c keyword ROCK: size->UNKNOWN. Added keyword ADSORP.
added keyword ADSOPR w/ test.

keyword ADSORP: size set to NTSFUN, TABDIMS.

keyword ADSORP size shift:1.

ParserTests: added test for kw ROCK.
2019-12-19 15:27:55 +01:00
Joakim Hove
46999f418f Refactored FieldProps
- The lowest level get method is called init_get() - this will unconditionally
  create new keyword. The init_get() method is private.

- Introduced FieldDataManager which keeps track of data pointer and status.

- Refactored get( ) implementation
2019-12-19 15:06:20 +01:00
Atgeirr Flø Rasmussen
7c77d9e2a7
Merge pull request #1351 from joakim-hove/weltarg-unit-conversio
Temporarily bypass the unit conversion in handleWELTARG
2019-12-18 13:56:02 +01:00
Steinar Foss
01b62e4617 added keyword DYNAMICR.
added keyword DYNAMICR.
2019-12-18 09:34:40 +01:00
Joakim Hove
3a87395419
Merge pull request #1348 from joakim-hove/udq-parse-diff
UDQ parse A - B - C
2019-12-17 18:55:06 +01:00
Joakim Hove
46f6aaec02
Merge pull request #1338 from stefoss23/double_records
Can parse keywords of type double-record.
2019-12-17 17:09:11 +01:00
Joakim Hove
89ab99e6b9 UDQ: fix bug with parsing of expressions like A - B - C - D
- In the case of several tokens separated with +/- the final tree is assembled
   from left, was previously from the right. This fixes evaluation bug with
   expressions like A - B - C which were eventually evaluated as A - (B - C).

 - Improved handling of different types; both transiton from scalar to sets of
   wells and groups, and also groups in general. In particular you can now
   assign to a group variable:

        DEFINE GUXXX  WOPR * 0.25

 - Actually hook up the evaluation of group variables from the Summary code.
2019-12-17 16:59:06 +01:00
Joakim Hove
8573c947fa Temporarily bypass the unit conversion in handleWELTARG 2019-12-17 15:28:08 +01:00
Bård Skaflestad
ebfa768fd2 Segment: Make Type Predicates Free Functions
That way, we won't have to pollute the Segment API when adding new
segment types.  While here, also reduce header file coupling by
forward-declaring SpiralICD and Valve in Segment.hpp.
2019-12-17 09:14:17 +01:00
Steinar Foss
0be84e6529 DeckKeyword: double_record style keywords has empty records as block seperators. 2019-12-16 13:11:20 +01:00
Joakim Hove
acd57b2d0a
Merge pull request #1236 from joakim-hove/writeinit-fp
Writeinit fp
2019-12-16 13:08:54 +01:00
Joakim Hove
6b71e30a38 Add test for SOGCR keyword 2019-12-16 12:11:06 +01:00
Joakim Hove
617bb07b0b Add active_size() method to FieldPropsManager 2019-12-16 09:42:40 +01:00
Bård Skaflestad
50181c279d Add Means of Tracking Origin of Connection's CTF
This commit adds a new type (Connection::CTFKind), and new data
member of this type (Connection::m_ctfkin, initialised in the
constructor) that tracks the source of the connection's
transmissibility factor (Connection::m_CF).  The primary user of
this information is the restart file writing code which needs to
know if the connection transmissbility factor is assigned from the
input file (e.g., directly from the COMPDAT keyword) or if the value
is calculated from other information.

Add a convenience predicate function,

    Connection::ctfAssignedFromInput

that returns true if the connection transmissibility factor source
indeed is a direct assignment in the COMPDAT keyword.

Update Connection constructor callers accordingly.
2019-12-15 22:43:35 +01:00
Joakim Hove
a56e4daac7 Add RTEMPVD based initialization of the TEMPI keyword 2019-12-15 19:29:43 +01:00
Steinar Foss
87bbc46bbb can parse keywords of type double-record.
...

ParserKeyword: bool double_records set.

added keywords CECONT.

ParserKeywords: double_records set by keyword generator.

Parsertests: added test for parsing double_records.

ParserKeywords.parse: if double_records returns empty.

double_records keywords set to SLASH_TERMINATED.

...

ParserKeyword: for double records size_type = DOUBLE_SLASH_TERMINATED.

double_records: RawKeyword is Raw::DOUBLE_SLASH_TERMINATED.

RawKeyword uses m_isTempFinished.

Parser: can parse files with double-record keywords.

Parser.cpp/RawRecord.cpp: removed comments.

DeckKeyword has param m_isDoubleRecordKeyword.

test ParseDoubleRecords: double records to have linear structure.

DeckKeyword: Can create records of type double_record.

double-records parser test transferred to ParserTests.cpp.

...

...
2019-12-14 18:42:31 +01:00
Joakim Hove
af1b140723 Some improvements to runtime type conversion when evaluating UDQ 2019-12-13 23:17:07 +01:00
Joakim Hove
b4fd949ca8 Change exception + test 2019-12-13 15:39:34 +01:00
Atgeirr Flø Rasmussen
c343651f44
Merge pull request #1257 from GitPaean/support_wsegvalv
Support wsegvalv
2019-12-11 21:07:11 +01:00
Joakim Hove
dbf276b2db
Merge pull request #1328 from joakim-hove/fp-temp-test
Add some extra testing of FieldPropsManager::get_copy
2019-12-11 15:23:45 +01:00
Kai Bao
aff2baf9f2 adding test for WSEGVALV 2019-12-11 14:38:43 +01:00
Joakim Hove
05b93e7ea1 Add #ifdef for ENABLE_3D_TESTING 2019-12-11 13:20:04 +01:00
Joakim Hove
20c9b0b1e5 Add some extra testing of FieldPropsManager::get_copy 2019-12-11 13:02:27 +01:00
Joakim Hove
20cd54b939
Merge pull request #1324 from joakim-hove/fp-get-temp
Add FieldPropsManager::get_copy() which does not add to container
2019-12-11 12:24:29 +01:00
Joakim Hove
81cdfd46e3
Merge pull request #1318 from joakim-hove/fp-operate
Fp operate
2019-12-11 12:22:53 +01:00
Joakim Hove
6d7b621fb8 Add FieldPropsManager::get_copy() which does not add to container 2019-12-11 08:02:10 +01:00
Joakim Hove
2fb0cd599b PORV is treated more as a regular keyword 2019-12-10 14:06:14 +01:00
Markus Blatt
a1471c80b5 Use ActiveGridCells when filtering connections. 2019-12-10 13:49:04 +01:00
Joakim Hove
0f609083c3 Add support for OPERATE in FieldProps 2019-12-10 11:43:05 +01:00
Joakim Hove
c9111d3785 Change testdata to be compliant with section requirements 2019-12-10 11:43:05 +01:00
Joakim Hove
e96f49c5f9 Implement FieldProps::reset_actnum() instead of reset_grid() 2019-12-08 23:37:51 +01:00
Joakim Hove
8c6755d0f8
Merge pull request #1308 from stefoss23/parserkeyword_alternating_records
introducing keywords using alternating records.
2019-12-08 13:39:58 +01:00
Steinar Foss
52d69ca167 alernating records: not limited to 2 records. 2019-12-08 05:03:07 +01:00
Joakim Hove
b7f8d72bbe Add autocreation of saturation functions from get<T>(keyword) 2019-12-07 13:37:58 +01:00
Steinar Foss
8f8d45532e introducing keywords using alternating records.
added function parseRecords.

introducing alternating keywords.

parserkw: added member isAlternatingKeyword.

kw alternating_records conditions.

...

added keyword STOG.

alternating keyword: created generatortest.

alternating keyword sets bool to true by codegenerator.

alternating_records_kw returns that.

...
2019-12-06 15:51:42 +01:00
Bård Skaflestad
3f2b143b30 Unit System: Add New ICD-Related Units
This commit introduces a couple of new units of measure for
ICD-related quantities, especially AICD and SICD strength
parameters.  Add base unit "GeomVolume" ([Length]**3) and 'measure'
entities

    geometric_volume      (= GeomVolume)
    geometric_volume_rate (= GeomVolume / Time)
    icd_strength          (= Pressure / (GeomVolume / Time)**2)

Add conversion factor unit tests for these, and also complete the
set of unit tests for FIELD, LAB, and PVT_M to cover measures that
were not already there.

Also add a parser Dimension ("GeometricVolume") to play the role of
[Length]**3 in .json files.
2019-12-06 14:32:07 +01:00
Joakim Hove
f4882522cb Add optional global flag to FieldPropsManager::porv() 2019-12-06 08:47:08 +01:00
Joakim Hove
dda295f23f
Merge pull request #1221 from joakim-hove/fp-fluid
Fp fluid
2019-12-05 16:37:23 +01:00
Joakim Hove
fc6f77e50a
Merge pull request #1207 from stefoss23/parse_pyinput
Parse PYINPUT
2019-12-05 15:17:01 +01:00
Kai Bao
254cee34bd addingress reviewing comments for PR#1251 2019-12-05 11:48:59 +01:00
Kai Bao
973fe9823b adapting and fix the code after rebasing for WSEGSICD 2019-12-05 11:48:59 +01:00
Kai Bao
fea4c4c8fa adding support for WSEGSICD 2019-12-05 11:48:59 +01:00
Steinar Foss
f3701c3f93 Parser: handles PYINPUT. Python code in eclipse .Data files now possible!!!
test EmbeddedPython: now with actual python code.

parser.cpp: parsing python code.

introduced RawConst::pyinput.

EmbeddedPython: tests with data keyword.
2019-12-05 09:19:43 +01:00
Joakim Hove
4d3567bffd Initialize saturation functions in FieldProps 2019-12-05 08:49:47 +01:00
Joakim Hove
b3c14b1d12
Merge pull request #1250 from stefoss23/action_token_func
added enum class FuncType for ASTNode.
2019-12-05 08:18:08 +01:00
Joakim Hove
1599cc5698 Differentiate between valid and invalid default values while parsing 2019-12-04 22:36:28 +01:00
Steinar Foss
4b5ef93293 added enum class FuncType for ASTNode.
ActionParserNode takes functype arg.

ActionParser getfunc.

ASTNode constr take func_type-arg.

ASTNode: throws exception if not FunctionType well.

FuncType: expanded list.

ActionParser: gettype distnguishes types.

ACTIONX.cpp: added test with group*.

parseKeywordCategory made public.

ActionParser: uses parseCategory.
2019-12-04 16:24:58 +01:00
Joakim Hove
206e0b3b25
Merge pull request #1299 from joakim-hove/transmult-fp
Use std::vector<double> instead of GridProperty<double> in TransMult
2019-12-04 10:22:32 +01:00
Joakim Hove
bb314f13ae Use std::vector<double> instead of GridProperty<double> in TransMult 2019-12-03 20:24:11 +01:00
Joakim Hove
87ddebd192 Special case ACTNUM and PORV in the FieldProps keys() method 2019-12-03 17:21:28 +01:00
Joakim Hove
1090328ee3 Add methods porv() and actnum() to FieldPropsManager 2019-12-03 08:47:23 +01:00
Joakim Hove
ba59707672 Remove microseconds from TimeStampUTC add test 2019-12-03 00:36:30 +01:00
Joakim Hove
200f3a55bd Add operator+ to TimeStampUTC 2019-12-02 22:30:00 +01:00
Joakim Hove
2193118a5c Make sure well is closed if all connections are closed for ACTIONX 2019-12-02 11:53:16 +01:00
Joakim Hove
b8d3b8a16e Remove FieldPropsManager default constructor 2019-12-01 21:19:02 +01:00
Joakim Hove
4893f534f7
Merge pull request #1282 from joakim-hove/add-PORO
Add poro
2019-11-30 09:43:10 +01:00
Joakim Hove
9e3b8a94e8 Add missing "GRID" section in testdata 2019-11-30 08:35:34 +01:00
Joakim Hove
d53d8b4947 Enable testing of FieldPropsManager in transmult classes 2019-11-29 19:12:46 +01:00
Joakim Hove
0514b6bb52 Add FieldPropsManager argument to TransMult constructors 2019-11-29 18:16:20 +01:00
Joakim Hove
198b208258 Test use of FieldPropsManager in WellConnections 2019-11-29 16:42:29 +01:00
Joakim Hove
8211007714
Merge pull request #1278 from joakim-hove/add-PORO
Add poro
2019-11-29 12:46:34 +01:00
Tor Harald Sandve
fddaa46e98 add lwsltnum 2019-11-29 08:42:08 +01:00
Joakim Hove
e9b6ac54d9 Add PORO keyword to testdata 2019-11-28 20:06:39 +01:00
Joakim Hove
e5b40870b6 Remove unused testdata 2019-11-28 20:06:39 +01:00
Tor Harald Sandve
7b41397f6f
Merge pull request #1252 from totto82/gprodEvent
add group events
2019-11-28 08:23:18 +01:00
Joakim Hove
854b79c280
Merge pull request #1233 from joakim-hove/thpres-refactor
Thpres refactor
2019-11-27 10:46:18 +01:00
Joakim Hove
ca95ff1b86
Merge pull request #1235 from joakim-hove/fp-keys
Add FieldPropsManager::keys<T>() method for iteration
2019-11-27 10:06:23 +01:00
Tor Harald Sandve
5d28ff7d24 store well and group event in same map 2019-11-27 08:58:57 +01:00
Joakim Hove
b2d9e92e25 Update test fixture to use correct grid 2019-11-26 21:34:04 +01:00
Joakim Hove
866aa5c5ca Add alternative FieldPropsManager argument to THPRES constructor 2019-11-26 20:49:15 +01:00
Arne Morten Kvarving
0d6ed7cfb6 changed: rename accessor to data()
the two classes EDITNNC and NNC are very similar, which makes templating
useful. this small difference makes it hard to do. unify them.
2019-11-26 13:20:17 +01:00
Tor Harald Sandve
b109331163 add group events 2019-11-25 09:55:32 +01:00
Joakim Hove
91c40e60c6 Add FieldPropsManager::keys<T>() method for iteration 2019-11-21 10:21:01 +01:00
Joakim Hove
42757a02fd Add FieldPropsManager::defaulted() property 2019-11-20 11:29:47 +01:00
Joakim Hove
11ca1194b0 Use enum value::status to keep track of value status in FieldProps 2019-11-20 10:40:51 +01:00
Joakim Hove
6cc3b578f5 Use value::status to keep track of data status in DeckItem
With this commit the DeckItem::push_backDummyDefault() function will push back a
default value T( ). This will give a change in behaviour in downstream code
which has used getData<T> to get DeckItem data unchecked.
2019-11-17 17:23:42 +01:00
Joakim Hove
6dbbc8c037 Remove / rename DeckItem::size() 2019-11-16 18:31:12 +01:00
Steinar Foss
239d562581 testfile ACTIONC.cpp: removed 'if 0'.
test ACTIONX, uncommented TestActions.

ACTIONX tests: uncommented all.
2019-11-15 15:24:16 +01:00
Joakim Hove
7b2048ec22 Add assign(const std::vector<T>&) to FieldProps::FieldData 2019-11-15 07:55:29 +01:00
Joakim Hove
5d852bf3f1
Merge pull request #1223 from joakim-hove/fp-tables
Add TableManager argument to FieldProps constructor
2019-11-15 07:54:33 +01:00
Joakim Hove
36c1798a38
Merge pull request #1222 from joakim-hove/grid-properties-testdata
Update testdata to one element for each cell
2019-11-15 07:54:15 +01:00
Joakim Hove
feec9c150d
Merge pull request #1219 from joakim-hove/box-keyword-constructor
Simplify the BOX implementation - prepare to drop the manager
2019-11-14 12:15:53 +01:00
Atgeirr Flø Rasmussen
6d83672f94
Merge pull request #1217 from joakim-hove/rename-well2
Rename Well2 -> Well and  Group2 -> Group
2019-11-14 10:33:45 +01:00
Joakim Hove
7fbbb6d71a Add TableManager argument to FieldProps constructor 2019-11-14 07:14:54 +01:00
Joakim Hove
60d3a074b9 Update testdata to one element for each cell 2019-11-13 23:57:59 +01:00
Joakim Hove
613ec70dab Rename Well2 -> Well and Group2 -> Group 2019-11-13 23:19:26 +01:00
Joakim Hove
3f1cf0bc8a Changed box implementation 2019-11-13 20:19:47 +01:00
Bård Skaflestad
8cd72f1ff0
Merge pull request #1209 from atgeirr/fix-timemap-restartintervals
Fix TimeMap::isTimestepInFirstOfMonthsYearsSequence() method.
2019-11-13 15:00:45 +01:00
Joakim Hove
6afc118c94 Started on region operations in FieldProps implementation 2019-11-12 08:18:13 +01:00
Joakim Hove
d0685c1e6c
Merge pull request #1212 from joakim-hove/item-rename
Item rename
2019-11-11 16:38:26 +01:00
Joakim Hove
af4a2d78f9 Update test data to use correct region 2019-11-11 07:48:47 +01:00
Atgeirr Flø Rasmussen
4fc71e352e
Merge pull request #1205 from totto82/defaultNUPCOL
Change default NUPCOL to 12
2019-11-08 17:38:20 +01:00
Atgeirr Flø Rasmussen
b787a1a259 Fix TimeMap::isTimestepInFirstOfMonthsYearsSequence() method. 2019-11-08 17:26:02 +01:00
Tor Harald Sandve
0771e555a7 Change default NUPCOL to 12 2019-11-08 10:44:32 +01:00
Steinar Foss
f75c3921e5 Schedule handles keyword GCONSUMP.
GConSump: added and linked soruce files.

gconsump added to dynamicstate.

added handleGCONSUMP.

GConSump: add.

GConSump: has.

GConSump: get.

GConSump: added UDA values.

GConSump: added network_node.
2019-11-06 15:12:25 +01:00
Joakim Hove
810fc19ea3
Merge pull request #1196 from joakim-hove/actionresult-copy
Add copy constructor + contains() method to Action::Result
2019-11-04 16:07:55 +01:00
Joakim Hove
9e898055a8
Merge pull request #1185 from joakim-hove/field-properties-downstream
Field properties downstream
2019-11-04 16:04:21 +01:00
Joakim Hove
8c6768cc89
Merge pull request #1193 from stefoss23/gconsale
Adding keyword GCONSALE to Schedule.
2019-11-04 15:02:19 +01:00
Joakim Hove
450bb96c9b Add scalar auto create for SATNUM 2019-11-04 14:51:58 +01:00
Joakim Hove
02d4e98f1f Add WellConnections() overload which uses FieldPropsManager 2019-11-04 14:51:58 +01:00
Steinar Foss
17d11e9a60 GConSaleGroup: MaxProcedure static, simplified get and add. 2019-11-04 13:59:54 +01:00
Joakim Hove
015559b5cf
Merge pull request #1187 from joakim-hove/field-props-has
Add has<T>() method to FieldPropsManager
2019-11-04 13:17:06 +01:00
Joakim Hove
f33c4f749e Add copy constructor + contains() method to Action::Result 2019-11-04 12:54:14 +01:00
Steinar Foss
d2dce88411 Adding keyword GCONSALE to Schedule.
added files GConSale cpp/hpp.

Schedule: adde GConSale as DynamicState.

Shcedule: added function gConSale.

added function handleGCONSALE.

GConsale: added substruct GCONSALEGroup.

GConSale: empty records added.

GConSale: all values set to zero.

GCONSALE: values stored as UDA.

GConSale: UDAValues to SI.

GConSale: max_proc parsed.
2019-11-03 11:37:28 +01:00
Tor Harald Sandve
64f4919085 Add support for item 11 and 12 in GCONINJE 2019-11-01 13:15:52 +01:00
Joakim Hove
8268c877fd Add has<T>() method to FieldPropsManager 2019-11-01 08:13:42 +01:00
Joakim Hove
a7187abc17 Initial implementation of 3D properties 2019-10-31 11:18:55 +01:00
Joakim Hove
92188eea8a
Merge pull request #1167 from stefoss23/add_keyword
Add keyword, python deck
2019-10-29 16:54:22 +01:00
Bård Skaflestad
3ad7771306 EclipseState Unit Test: Don't Leak Memory
The construction

    Parser parser(new Parser{})

effectively ends up calling the constructor

    Parser::Parser(bool)

which, besides leaking memory, is typically not what we want.
2019-10-26 18:22:52 -05:00
Bård Skaflestad
2558320aa3 UDQ Unit Test: Don't Create Dangling References
This fixes an issue identified by Address Sanitizer.
2019-10-26 18:18:38 -05:00
Bård Skaflestad
3b9ea5dcd8 Consume Owning Raw Pointers in Smart Pointers
This fixes several memory leaks identified by Address Sanitizer.
2019-10-26 18:17:19 -05:00
Steinar Foss
0e1e9b7ac7 test EmbeddedPython: added test for add keyword to deck. 2019-10-25 17:15:56 +02:00
Joakim Hove
390a29d425
Merge pull request #1164 from stefoss23/deckkeyword_vector_unit
DeckKeyword w/ vectors: takes numpy vectors.
2019-10-25 12:07:34 +02:00
Joakim Hove
0fb92e9121
Merge pull request #1157 from joakim-hove/udq-token-types
Udq token types
2019-10-25 11:58:08 +02:00
Steinar Foss
ce3781775f DeckKeyword w/ vectors: takes unit system as arg.
DeckKeyword w/ vector: added unit as arg.

DeckKeyword vector works with units.

DecValuetests: use zcorn instead of poro.

python: deckkweyword works with int data.

...

python deckkeyword. cant init with double array.

moved numpy_array converters to converters.hpp.
2019-10-25 09:31:03 +02:00
Kai Bao
b9bc222e81 addressing reviewing comments from PR #1068 2019-10-24 23:01:34 +02:00
Kai Bao
3691c6e724 an aquifer connection need to between active and inactive cells
unless we specify we want to have aquifer within the inner cell of the
reservoir.
2019-10-24 22:01:28 +02:00
Joakim Hove
7e2d45cf66 Export all UDQTokens in use from UDQDefine 2019-10-24 16:51:15 +02:00
Joakim Hove
a9a7166e3d
Merge pull request #1153 from joakim-hove/move-fluxnum
Moved FLUXNUM to GRID section
2019-10-24 09:42:28 +02:00
Joakim Hove
0421173686
Merge pull request #1152 from joakim-hove/deckkeyword-unit
Deckkeyword unit
2019-10-24 08:43:18 +02:00
Joakim Hove
d7a52167f3 Moved FLUXNUM to GRID section 2019-10-24 08:39:53 +02:00
Joakim Hove
6525a7b19f
Merge pull request #1143 from joakim-hove/box-data-index
Add data_index to Box::index_list
2019-10-24 07:17:57 +02:00
Steinar Foss
d05b3323b3 DeckKeyword: constr. with records takes unitsystem args.
Deckkeyword constr w/ records also takes unit_systems.

DeckKeyword w/ records uses input args to get dims.

DeckValue unit system works w/ records.

Deckkeyword w/ records: rearranged default/active unit args.

..

python deckkeywords: workable.

python deckkeyword: testing rewrite.

python deckkeyword w/units: most test work.

...

python support for deckkeyword w/ dimensions.
2019-10-24 07:13:31 +02:00
Steinar Foss
1a8e9979d8 BOX keyword: using defaultApplied.
moved failed box-test from python to cpp.

setKeywordBox: using defaultApplied rather than hasvalue.

EclipseStateTEsts. TextBox: use 1* instead of *.

corrected box_bug.
2019-10-23 15:47:25 +02:00
Joakim Hove
cadadbde4d
Merge pull request #1145 from joakim-hove/properties-testdata
Properties testdata
2019-10-22 17:18:48 +02:00
Joakim Hove
1af3ab2008
Merge pull request #1142 from joakim-hove/multz-edit
Multiply MULT(XYZ) keywords in the EDIT section
2019-10-22 08:24:32 +02:00
Joakim Hove
f81a84da42 Update testdata for a stricter 3D property parser
- Keywords should have correct number of elements
 - Should be in the correct section
2019-10-22 08:23:00 +02:00
Joakim Hove
2f8916392c
Merge pull request #1144 from GitPaean/converting_aquifer_test_unix
converting AquanconTests.cpp to be unix format.
2019-10-21 18:27:19 +02:00
Kai Bao
18564a465c converting AquanconTests.cpp to be unix format. 2019-10-21 17:00:12 +02:00
Joakim Hove
1ad4a03ac1 Add data_index to Box::index_list 2019-10-21 15:45:39 +02:00
Joakim Hove
5741ff8034 Multiply MULT(XYZ) keywords in the EDIT section 2019-10-21 11:53:09 +02:00
Joakim Hove
781ced7294 Use struct Location to record file position for keywords 2019-10-17 23:57:01 +02:00