Commit Graph

14661 Commits

Author SHA1 Message Date
Markus Blatt
796a6416ca Fix segmentation fault if file name is missing after arraylist command. 2023-11-09 15:54:11 +01:00
Bård Skaflestad
af4b985eb2
Merge pull request #3730 from totto82/addSurfaceDensityOutput
Add info about surface density from CO2STORE model
2023-11-08 14:59:56 +01:00
Bård Skaflestad
980ac2599a
Merge pull request #3747 from akva2/fbhpdef
implement support for FBHPDEF
2023-11-07 14:54:11 +01:00
Arne Morten Kvarving
3875736795 implement support for FBHPDEF 2023-11-07 10:32:38 +01:00
Arne Morten Kvarving
33c529652b
Merge pull request #3748 from akva2/schedulestate_avoid_duplicate
ScheduleState: avoid duplicate const/mutable implementation
2023-11-03 14:38:19 +01:00
Bård Skaflestad
5b6b82aa2c
Merge pull request #3743 from bska/dfac-corr-unit
Fix Dimension of D-Factor Correlation 'A' Coefficient
2023-11-03 13:46:15 +01:00
Arne Morten Kvarving
e82875644a ScheduleState: avoid duplicate const/mutable implementation 2023-11-03 13:13:58 +01:00
Bård Skaflestad
5114c6ff9f Fix Dimension of D-Factor Correlation 'A' Coefficient
We were missing the 'Area' component.
2023-11-03 10:36:01 +01:00
Arne Morten Kvarving
3470f41564
Merge pull request #3746 from bska/remove-unused-sparse-schedule-grid
Remove SparseScheduleGrid Component
2023-11-03 07:01:38 +01:00
Bård Skaflestad
a589cf4795
Merge pull request #3741 from blattms/more-support-for-actionx-wlist
Support WLIST for all allowed well keywords in ACTIONX.
2023-11-03 00:13:37 +01:00
Bård Skaflestad
d253d357dd Remove SparseScheduleGrid Component
Introduced in commit 4134b9870, this was never used anywhere and
never connected to the build system.
2023-11-02 22:40:51 +01:00
Arne Morten Kvarving
b27c199cb9
Merge pull request #3742 from daavid00/clang
Fix to linker error in building tests (clang, macOS)
2023-11-01 10:32:18 +01:00
David Landa Marban
9588947ee3 Fix to linker error in building tests (clang, macOS) 2023-11-01 10:04:23 +01:00
Markus Blatt
0f1abcbe7c Support WLIST for all allowed well keywords in ACTIONX.
When first evaluating ACTIONX the WLISTS might not even exist.
In addition they may be empty.

We support WLIST for the following well keywords in ACTIONX:

COMPDAT, COMPLUMP, WCONINJE, WCONPROD, WECON, WEFAC, WELOPEN, WELPI,
WELSPECS, WELTARG, WGRUPCON, WPIMULT, WSEGVALV, WTEST,
WTMULT,  WELSPECS

These keywords that probably allow WLIST, still insist they are never empty:
WELTRAJ, COMPTRAJ, CSKIN, WCONHIST, WCONINJH, WFOAM, WINJMULT,
WINJTEMP, WLIFTOPT, WMICP, WINJCLN, WINJDAM, WINJFCNC, WPMITAB,
WPOLYMER, WSALT, WSEGSICD, WSEGAICD, WSKPTAB, WSOLVENT, WTEMP,
WTRACER, WVFPDP, WVFPEXP, WWPAVE, WPAVEDEP, WRFT, WRFTPLT

These are currently not allowed in ACTIONX.
2023-10-31 20:03:59 +01:00
Bård Skaflestad
e2c8d5536c
Merge pull request #3661 from totto82/addWDFAC
Implement support for keyword WDFAC and WDFACCOR
2023-10-31 17:31:23 +01:00
Tor Harald Sandve
80dd2c33a1 Implement support for keyword WDFAC and WDFACCOR
Implement support for DFactor in COMPDAT

Add output of CDFAC
2023-10-31 14:10:45 +01:00
Tor Harald Sandve
111b74e938
Merge pull request #3739 from svenn-t/fix_wellcon_sattab
Fix well connection rel. perm. parameters for two-phase cases
2023-10-31 13:48:16 +01:00
Svenn Tveit
1eeae5efe4 Set correct parameters in two-phase case 2023-10-31 10:45:08 +01:00
Markus Blatt
a5fb8be683
Merge pull request #3728 from akva2/udt_in_udq
Add support for UDT lookups in UDQs
2023-10-30 13:06:48 +01:00
Arne Morten Kvarving
878f5fa72d SummaryNode: flag TU's as user defined nodes 2023-10-30 11:18:58 +01:00
Arne Morten Kvarving
db0f99de77 UDQ: add UDT support 2023-10-30 11:18:58 +01:00
Markus Blatt
aaa8af923c
Merge pull request #3733 from aritorto/missingHeader
Missing header for g++ 12.2.0
2023-10-26 11:41:10 +02:00
Antonella Ritorto
e89c486c7c Missing header for g++ 12.2.0 2023-10-26 10:17:09 +02:00
Bård Skaflestad
96b3799eee
Merge pull request #3712 from blattms/actionx-condition-errors
Better error handling for problems in conditions of ACTIONX.
2023-10-25 16:22:34 +02:00
Bård Skaflestad
a2d4680fc2
Merge pull request #3731 from bska/rescale-swatinit-pcow-at-restart
Support SWATINIT-Like Rescaling of PCOW at Restart
2023-10-25 15:40:04 +02:00
Markus Blatt
fb8a5b7459 Fixed shadowing variable warning. 2023-10-25 15:30:44 +02:00
Markus Blatt
0c25b18988
Merge pull request #3727 from akva2/add_udt_parsing
Add parsing for UDT
2023-10-25 14:12:46 +02:00
Markus Blatt
257dd12dec Improved the "improved" error message even more. 2023-10-25 14:07:43 +02:00
Markus Blatt
48bbc2dc2b Introduces method parseActionX returning the action and error strings.
This way there is no constructor with an output parameter and we
prevent introducing an additional member in ActionX that is only used
in one constructor.
2023-10-25 14:04:10 +02:00
Markus Blatt
f3668e0a37 Better error handling for problems in conditions of ACTIONX.
When encountering these (e.g. a number instead of an expression on
the left hand side) the simulator would immediately abort with an
error message like:
```
Error: An error occurred while creating the reservoir schedule
Internal error: Extra unhandled data starting with token[0] = 135

Error: Unrecoverable errors while loading input: Extra unhandled data starting with token[0] = 135
```
(The message above is for the number 135 on the left hand side)

With this change we now use the usual way of handling errors and
warnings in the parser and continue parsing.

The error message for the problem above is now
```
Error: condition of action EX1 has the following error: Left side of comparsion (135) has to be an expression!

Error: Problem with keyword ACTIONX
In model.schedule line 562
condition of action EX1 has the following error: Left side of comparsion (135) has to be an expression!

Error: Unrecoverable errors while loading input: Problem with keyword ACTIONX
In model.schedule line 562
condition of action EX1 has the following error: Left side of comparsion (135) has to be an expression!
2023-10-25 14:04:10 +02:00
Bård Skaflestad
b7fed05ca2 Support SWATINIT-Like Rescaling of PCOW at Restart
This commit adds a new, very specialised, operation to the material
law manager,

  void EclMaterialLawManager::applyRestartSwatInit(cell, maxPcow)

This will apply a SWATINIT-like rescaling of the oil/water capillary
pressure curve based on a caller-provided maximum capillary pressure
value.  The primary use case is this maximum value being taken from
the PPCW array in a restart file at simulation restart time.  We
assign the "maxPcow" member of the associate EpsInfo structure and
reinitialise the EpsPoints structure using this new information.
The latter is needed lest the maxPcnw() member function return
incorrect values in restarted simulations.
2023-10-25 10:54:59 +02:00
Arne Morten Kvarving
2a2c59ca26 added: parsing of UDT keyword 2023-10-25 10:02:44 +02:00
Markus Blatt
a606753230
Merge pull request #3703 from bska/welspecs-extension
Support Changing Selected Well Properties Through WELSPECS
2023-10-25 09:51:51 +02:00
Markus Blatt
ef9e171705
Merge pull request #3725 from akva2/add_udt
Prepare for UDT support
2023-10-25 09:50:19 +02:00
Bård Skaflestad
416dadd33f Support Changing Selected Well Properties Through WELSPECS
This commit enables updating individual well properties for one or
more wells using the WELSPECS keyword.  In particular, this revised
logic enables changing the controlling group without affecting any
other well property such as the location of the well head or the
well reference depth.

Defaulted properties do not affect change in Well::update*().  This,
in turn, begets a change to the logic of how we update the reference
depths.  Previously, we always interpreted a defaulted reference
depth item as

    Compute the reference depth from the location of the well's
    reservoir connections

We now alter this interpretation slightly to mean

    Don't recompute the reference depth if the input has already
    assigned a numerical value for this property

If the input has never assigned an explicit numerical value for the
reference depth, then we continue using the original interpretation
of a defaulted reference depth item--e.g., to update the reference
depth as a result of new reservoir connections.

The simulation can request the original interpretation even after
having assigned a numeric reference depth, by entering a new
WELSPECS keyword specifying a negative value for the the reference
depth item.

To this end, introduce a new data member in the Well class,

    bool Well::derive_refdepth_from_conns_

which tracks whether or not the reference depth has been assigned an
explicit numeric value.

As an example, this new WELSPECS behaviour enables using something
like

    ACTIONX
      A  1 /
      WOPR 'P*' < 123.4 /
    /
    WELSPECS
      '?' 'LOWPRESS' /
    /
    ENDACTIO

as a way to move all wells matching the pattern 'P*', and with a low
oil production rate, to the group 'LOWPRESS'.  This could, in turn,
apply a different set of group-level production controls to those
wells.
2023-10-25 09:19:00 +02:00
Bård Skaflestad
da442c5d45 Separate New vs Update WELSPECS Handling out to Helpers
This commit creates new helper functions

    Schedule::welspecsCreateNewWell()
    Schedule::welspecsUpdateExistingWells()

which handle the creation of a new well or the property update of
one or more existing wells, respectively, in the context of
processing records in the WELSPECS keyword.

In preparation of making the WELSPECS keyword useful for changing
the controlling group of a collection of wells, we pass a vector of
well names as an argument to the update function.  Furthermore, we
construct this vector using normal 'wellNames()' processing which
enables using patterns and well list names such as

  * 'P-2'
  * 'PROD-*'
  * '?'
  * '*PROD'

as arguments/well names (item 1).
2023-10-25 09:19:00 +02:00
Arne Morten Kvarving
32271046af
Merge pull request #3710 from blattms/enforce-64bit
Make CMake fail on non-64bit systems.
2023-10-25 08:59:38 +02:00
Markus Blatt
ce7e010010 Use LESS comparison to test if system is at least 64bit.
Indeed this is clearer and better.
2023-10-25 08:17:20 +02:00
Tor Harald Sandve
f415c298c7 Add info about surface density from CO2STORE model 2023-10-24 15:25:09 +02:00
Kai Bao
937336526a
Merge pull request #3729 from GitPaean/adding_output
outputting the maxIterations in the PTFlash failure message
2023-10-24 11:04:01 +02:00
Kai Bao
5c44ebb906 outputting the maxIterations in the PTFlash failure message
adding removing some white spaces in PTFlash.hpp
2023-10-24 10:03:48 +02:00
Arne Morten Kvarving
80b8a7e90a added: put UDTs in UDQContext 2023-10-23 20:29:40 +02:00
Arne Morten Kvarving
9129d91568 added: storage of UDTs in UDQConfig 2023-10-23 20:29:40 +02:00
Arne Morten Kvarving
d1b6c8de12 add class for representing UDTs
this is limited to 1D UDTs for now
2023-10-23 20:29:40 +02:00
Bård Skaflestad
5684387496
Merge pull request #3723 from totto82/addResidualOutput
Add RESIDUAL output to RPTRST
2023-10-23 15:48:09 +02:00
Arne Morten Kvarving
f192961831
Merge pull request #3724 from akva2/lininterp_reformat_use_stl
linearInterpolation.hpp: reformat and use stl
2023-10-23 15:23:58 +02:00
Arne Morten Kvarving
9dbee7920a linearInterpolation: add a helper to get slope and index
and reimplement interpolation functions in terms of this helper
2023-10-23 14:41:35 +02:00
Arne Morten Kvarving
29031c6645 linearInterpolation: reimplement tableIndex using stl 2023-10-23 14:31:36 +02:00
Arne Morten Kvarving
568c06192f linearInterpolation.hpp: reformat 2023-10-23 14:31:36 +02:00
Arne Morten Kvarving
09fc8e2af8
Merge pull request #3722 from akva2/janitoring
changed: sort UDQ headers/sources in alphabetical order
2023-10-23 14:31:12 +02:00