Commit Graph

7680 Commits

Author SHA1 Message Date
Svenn Tveit
ccc010c8d3 Internalize PPCWMAX as vector of structs 2023-06-14 08:33:51 +02:00
Markus Blatt
90497b745b Merge pull request #3556 from akva2/multflt_grid_and_edit
fixed: properly combine MULTFLT from GRID and EDIT
2023-06-14 07:16:02 +02:00
Bård Skaflestad
c7d6604d98 Add Container for Dynamic WBPn Source Values
This commit adds a new container class,

    PAvgDynamicSourceData

which wraps a single vector<double> which in turn backs source data
items for

    - pressure values
    - fluid mixture densities
    - dynamic pore-volumes

at a collection of source locations-active cells or well reservoir
connections.  We provide read-only and read-write accessors to the
underlying data items for a single source location through subscript
operator (read only) and named assignment (set(), read-write) member
functions.  The latter is available only when the underlying range
of data values is mutable (e.g., SourceDataSpan<double>) as opposed
to immutable (e.g., SourceDataSpan<const double>).
2023-06-09 15:42:46 +02:00
Bård Skaflestad
89bc182876 Prepare for Revised Implementation of WBPn
This initial commit changes the Summary class's API for consuming
block-averaged well level pressure values (summary keywords WBPn).
The former approach was intended to consume a collection of source
values--pressures, densities, and pore-volumes--and then to defer
calculation of the WBPn summary vectors to the Summary class.

This commit introduces a 'WellBlockAvgPress' container class which
holds precomputed WBPn results and the intention is to move the
calculation to the simulator side for greater parallelism.
2023-06-09 13:29:10 +02:00
Arne Morten Kvarving
b7a888fcfa fixed: properly combine MULTFLT from GRID and EDIT 2023-06-08 10:12:41 +02:00
Håkon Hægland
5a99e005fb Fixed naming convention 2023-06-02 09:24:59 +02:00
Håkon Hægland
2f260fe90a Fixed SWell indices 2023-06-02 09:24:59 +02:00
Håkon Hægland
0d38acebaf Set correct default value 2023-06-02 09:24:59 +02:00
Håkon Hægland
5463420a85 Add support for WVFPDP 2023-06-02 09:24:59 +02:00
Arne Morten Kvarving
39006ecd71 added: setters for the vappars in pvt classes 2023-06-01 11:03:20 +02:00
Arne Morten Kvarving
51aecfb2de fixed: apply VAPPARS from SOLUTION section 2023-05-31 15:13:55 +02:00
Bård Skaflestad
5a79e0f8fb Test Dynamic Segment Dimensions Against WSEGDIMS Limits
In particular, check that

  1. Number of MS wells <= WSEGDIMS(1)
  2. Number of segments per well <= WSEGDIMS(2)
  3. Number of branches per well <= WSEGDIMS(3)

for all report steps in the simulation run.

Example diagnostic message of a case that violates limits 2 and 3:

Error: Problem with keyword WSEGDIMS
  In CASE.DATA line 60
  The case has a multi-segmented well with 246 well segments, but at most 200 are allowed in WSEGDIMS.
  Please increase item 2 of WSEGDIMS to at least 246

Error: Problem with keyword WSEGDIMS
  In CASE.DATA line 60
  The case has a multi-segmented well with 105 lateral branches, but at most 5 are allowed in WSEGDIMS.
  Please increase item 3 of WSEGDIMS to at least 105
2023-05-30 11:47:50 +02:00
Bård Skaflestad
0bc74799ca Merge pull request #3465 from plgbrts/well-specs-new
adding defaults to json files
2023-05-30 11:43:53 +02:00
Paul
4d5b4aba2b changed return type to reference-to-const 2023-05-30 10:49:52 +02:00
Tor Harald Sandve
a456c36a31 Merge pull request #3513 from goncalvesmachadoc/gasvisct
Implement GASVISCT for black-oil [Bug fix]
2023-05-30 08:37:46 +02:00
Arne Morten Kvarving
3e4146030e checkFluidSystem: improve output
as this is called multiple times for a fluidsystem
we get duplicate output. improve by also including the
other template parameters in the output.
2023-05-24 22:04:39 +02:00
Bård Skaflestad
35264e7ab8 Merge pull request #3530 from akva2/janitoring
Some janitoring
2023-05-22 23:49:47 +02:00
Arne Morten Kvarving
b68f5f1226 add arguments by const ref 2023-05-22 22:08:12 +02:00
Arne Morten Kvarving
9ba304f5cf BrineH2Pvt: include prerequisite headers
in particular the missing header broke build with -DNDEBUG
2023-05-22 22:01:54 +02:00
Arne Morten Kvarving
e6280fc80d add override qualifier to virtual methods 2023-05-22 20:53:33 +02:00
Tor Harald Sandve
005ff3e982 Merge pull request #3445 from svenn-t/h2store
Hydrogen-brine simulations - H2STORE
2023-05-22 11:23:48 +02:00
Bård Skaflestad
c000ad101a Merge pull request #3517 from totto82/outputhyst
Add method to get trapped saturation for output
2023-05-19 09:56:36 +02:00
Bård Skaflestad
82226cc0b9 Merge pull request #3527 from akva2/explicit_ctors
mark constructors explicit
2023-05-16 12:06:54 +02:00
Arne Morten Kvarving
6553e8d0b7 mark constructors explicit 2023-05-16 10:50:01 +02:00
Bård Skaflestad
4308305421 Merge pull request #3433 from totto82/brine_co2store
Combine brine + co2store
2023-05-16 10:25:32 +02:00
Paul
05d59a14f4 add throw in case a well has a non-increasing MD column 2023-05-12 16:14:58 +02:00
Tor Harald Sandve
1aff5fc604 add test that compares Brine and BrineDynamic 2023-05-12 09:07:55 +02:00
Bård Skaflestad
6895568a21 Merge pull request #3507 from akva2/fix_dyneval_format
fixed: handle dynamically sized evaluations in {fmt} formatter
2023-05-11 21:27:32 +02:00
Arne Morten Kvarving
d599c6874d EclThermalConductionApproach: convert to enum class 2023-05-11 08:46:25 +02:00
Arne Morten Kvarving
7d38661810 EclSolidEnergyApproach: convert to enum class 2023-05-11 08:40:44 +02:00
Tor Harald Sandve
c3a3d894df Add method to get trapped saturation for output 2023-05-10 15:25:47 +02:00
goncalvesmachadoc
abaa1074ff implement gasvisct 2023-05-09 10:48:25 +02:00
Bård Skaflestad
53383fd875 Sort headers in alphabetical order 2023-05-08 22:40:24 +02:00
Bård Skaflestad
b17d618c7b Use memcmp() from namespace std
Don't rely on clients using

    #include <string.h>

before including cmp.hpp .
2023-05-08 22:40:14 +02:00
Arne Morten Kvarving
392d57d02a fixed: handle dynamically sized evaluations in {fmt} formatter 2023-05-05 11:01:13 +02:00
Tor Harald Sandve
4f3b67fa77 use 58.44 as molar mass of salt 2023-05-04 09:48:03 +02:00
Tor Harald Sandve
46f5558b59 Combine brine and the co2store module
This commit allows for dynamically changes in salinity in the co2 storage module

I.e. It allows for modeling salt precipition for co2 storage cases.
2023-05-03 15:09:06 +02:00
Bård Skaflestad
9a5b3721cb Dimension Segment Related Restart Arrays According to Dynamic Size
The [IR]SEG and ILB[RS] arrays must be able to accommodate the
maximum number of segments and branches used in the run.  This
commit incorporates the dynamic maximum sizes.  If those sizes
exceed the maximum values entered in WSEGDIMS, then the resulting
restart file will not be fully compatible with other simulation
software.
2023-05-02 09:44:06 +02:00
Paul
b171cbc3af Calculate headI/headJ from trajectory data when they are defaulted in WELSPECS 2023-04-26 17:30:53 +02:00
Bård Skaflestad
91bb2b47e7 Use Base Class' serializeOp() Where Possible
Classes which inherit from FlatTableWithCopy and just call the base
class implementation of 'serializeOp()' don't really need a separate
implementation of that member function.

Noticed by: [at]blattms.
2023-04-26 15:29:12 +02:00
Bård Skaflestad
5cdeb6137b Implement Proper Record Copying Behaviour for ROCK
This commit adds the expected behaviour for all-defaulted records in
ROCK, provided the all-defaulted records are not the first of the
keyword.  Similarly to, e.g. PVTW, all-defaulted records are treated as
copies of the immediately preceding record.

In other words, given

    ROCK
    -- REF. PRES   COMPRESSIBILITY
       280.000        5.6E-5 /
    /

the second record is supposed to be a copy of the first.
2023-04-26 14:29:28 +02:00
Markus Blatt
8beebd49e3 Merge pull request #3485 from atgeirr/allow-field-wells
Allow FIELD group as parent for wells
2023-04-26 14:14:33 +02:00
Markus Blatt
f16b433b53 Merge pull request #3484 from akva2/fix_udqdefine_serialize
fixed: missing serialization of tokens in UDQDefine
2023-04-26 12:54:52 +02:00
Atgeirr Flø Rasmussen
33843346b4 Use ParseContext system to handle well under FIELD situation.
Also downgrade from a throw to a warning.
2023-04-26 11:43:21 +02:00
Arne Morten Kvarving
6ff355a141 fixed: missing serialization of tokens in UDQDefine
this went unnoticed since there are no UDQDefines in the pre-simulation
Schedule broadcast for parallel. however it causes issues for serialized
restarts
2023-04-26 11:35:12 +02:00
Bård Skaflestad
599194191d Implement Full Size Protocol for ROCK Keyword
This commit adds a special case for handling the dynamic nature of
the number of records in the ROCK keyword.  In particular, if the
ROCKOPTS keyword is NOT entered before ROCK, then the number of
records is NTPVT--item 2 from TABDIMS.  Conversely, when ROCKOPTS is
entered before ROCK, the number of records in the latter depends on
the setting in item 3 of ROCKOPTS.

This interaction cannot be easily captured in our JSON-based models,
so we introduce a special size class, SPECIAL_CASE_ROCK, that only
applies to the ROCK keyword and implement the logic in a dedicated
function in 'Parser.cpp'.  Once we have determined the correct
number of records, we form a RawKeyword of type FIXED and defer
further processing to the existing handling of fixed-sized keywords.

Add a selection of unit tests to exercise the new behaviour.
2023-04-24 12:54:41 +02:00
Bård Skaflestad
2c6f08269d Prefer Data to Logic
Switch if/else chain out in favour of a map-based approach.  This
simplifies adding new enumerators.  While here, also return string
objects instead of constant string objects.
2023-04-24 12:54:41 +02:00
Kai Bao
909cfdcdb7 removing Well::canOpen() function
which is not needed anymore.
2023-04-14 11:17:28 +02:00
Bård Skaflestad
134a4dbef4 Merge pull request #3459 from blattms/internalize-editnncr
Internalize EDITNNCR keyword and make it available with the other NNC information.
2023-04-13 10:33:49 +02:00
Svenn Tveit
cf185442b9 Accommodate new Rvw input 2023-04-12 14:50:34 +02:00