Commit Graph

33 Commits

Author SHA1 Message Date
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
Tor Harald Sandve
bf7cef4ebd Support DIFFCGAS and DIFFCWAT for the CO2STORE module 2023-03-27 10:15:54 +02:00
Bård Skaflestad
d35abfddb6 Implement Defaulted Table Copy for DENSITY and GRAVITY
Use the same targeted strategy as for PVTW.
2022-06-23 16:04:50 +02:00
Bård Skaflestad
54ba23d71b Implement Defaulted Table Copy for PVTO and PVTG
The existing mechanism did not handle this case sufficiently well.
It is likely that we will have to polish this approach, but for now
use an explicit table copy to ensure that we have structurally
correct backing table data.
2022-06-23 16:04:50 +02:00
Bård Skaflestad
a066d2b95f Implement Defaulted Table Copy for PVDO and PVDG 2022-06-23 16:04:50 +02:00
Bård Skaflestad
433cc4d649 Treat All-Defaulted PVTW Record as Copy of Previous
A simulation model may choose to give PVTW data as

    PVTW
      1.0 1.0 1.0e-5 0.2 0.0 /
      /  -- record 2 (copied from record 1)

if, for instance, the oil and/or gas tables are different in regions
1 and 2, but the water is the same.  In this case we must properly
copy record 1 into record 2 and essentially recreate the table.

To this end, decouple the 'PvtwTable' from the 'FlatTable' machinery
and make the former into an independent type containing vector<>
instead of inheriting from vector<>.  Implement the default->copy
behaviour in the new PvtwTable::PvtwTable(const DeckKeyword&)
constructor.
2022-06-23 16:04:50 +02:00
Arne Morten Kvarving
0d1075daee changed: pass table ID into SimpleTable constructors
use this to improve logging in case of failure
2022-06-13 15:48:57 +02:00
Joakim Hove
660b878b8e Convert default ALQ type to GRAT when gaslift optimization is active 2022-03-08 11:37:06 +01:00
Joakim Hove
0a59bd8f61 Filesystem rename EclipseState/Schedule/ Schedule/ 2022-01-02 14:32:14 +01:00
Joakim Hove
aede532b9a Filesystem rename parser/eclipse/ input/eclipse 2022-01-02 14:32:14 +01:00
Daniel
b0f757eb50 Replace Deck::getKeyword(std::string) with operator[std::string] 2021-11-23 14:00:38 +01:00
Bård Skaflestad
da9d550f05 Support GRAVITY As Fallback for DENSITY
This commit activates support for the 'GRAVITY' keyword.  We treat
this as a fallback alternative to the 'DENSITY' keyword.
2021-11-07 20:20:56 +01:00
Joakim Hove
45bfe8da9f VFP Table updates
- Add member KeywordLocation to vfp tables
 - Improve error messages
 - Remove array_type typedef - use std::vector<double>
 - Use class based enums
 - Replace assert(x) -> if (!x) throw
2021-02-16 09:14:43 +01:00
Tor Harald Sandve
c8343d95f6 add support for DIFFC and DIFFUSE 2021-01-21 11:21:05 +01:00
Bård Skaflestad
5816d2dbd2 Push Compatibility Check To Parser Level
Leverage the 'prohibits'/'requires' support to enforce earlier
keyword compatibility checks.  This plays better with parallel runs.
2020-12-17 21:33:11 +01:00
Williham Williham Totland
6d2f8cca5c Adds type information to integer literals. 2020-09-29 13:54:21 +02:00
Joakim Hove
1b851f03cb Implement TLMIXPAR as dedicated vector of struct - not table 2020-08-12 14:47:21 +02:00
Joakim Hove
24528ea607 Add simple POD class to internalize keywords xxxDENT 2020-02-25 15:06:34 +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
c3a038c2b6 Refactor code generation to facilitate multiple source files 2020-01-02 15:27:54 +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
Atgeirr Flø Rasmussen
f48462841f Add table support for FOAMMOB. 2019-07-03 11:12:12 +02:00
Franz G. Fuchs
31415679f7 defined FoamDensity, added test 2019-06-25 13:32:11 +02:00
Joakim Hove
785d80b677 Use slash termination to determine size of keywords SKPRPOLY SKPRWAT 2019-02-20 16:57:10 +01:00
Joakim Hove
2cd6fa2f49 Add overloads without ParseContext and ErrorGuard - update all tests 2019-01-04 13:59:28 +01:00
Kai Bao
316324a78e renaming Simple2DTable to PolyInjTable
make it more clear that it is a talbe introduced for the polymer
injectivity study, not intended for general usage.
2018-11-19 12:08:04 +01:00
Kai Bao
862b3450d3 adding test for the following three keywords
SKPRWAT, SKPRPOLY and PLYMWINJ .
2018-11-19 12:08:04 +01:00
Joakim Hove
e5c4c2b504 Handle changes to VFP tables during simulation
With this commit the VFP tables are stored internally in DynamicState<VFPxTable>
container, this facilitates updates to the VFP tables during the simulation. In
addition the default constructor and the ::init( ) method has been removed from
the VFPxTable implementations.
2018-04-12 19:02:15 +02:00
Joakim Hove
c37e5f9503 Move VFP tables to Schedule. 2018-04-06 12:42:47 +02:00
Bård Skaflestad
15eb84d3e9 Expose "REGDIMS" Keyword from TableManager
Some of these values are needed for restart purposes (go into the
INTEHEAD) vector.
2018-03-22 00:00:48 +01:00
Tor Harald Sandve
867df8b7ce Add support for PDVD and PBVD 2018-01-08 14:17:37 +01:00
Jørgen Kvalsvik
e884b0664c Redesign cmake
Tune the makefile according to new principles, which adds a few bells
and whistles and for clarity.

Synopsis:

* The dependency on opm-common is completely gone. This is reflected in
  travis and appveyor as well. No non-kitware cmake modules are used.
* Directories are flattened, quite a bit - source code is located in the
  lib/ directory if it belongs to opm-parser, and external/ if third
  party.
* The sibling build feature is implemented through cmake's
  export(PACKAGE) rather than implicitly looking through source files.
* Targets explicitly set required public and private include
  directories, compile options and definitions, which cmake will handle
  and propagate
* opm-parser-config.cmake for downstream users is now provided.
* Dependencies are set up using targets. In the future, when cmake 3.x+
  can be used, these should be either targets from newer Find modules,
  or interface libraries.
* Fewer system specific assumptions are coded in, instead we assume
  cmake or users set up system specific details.
* All module wide configuration and looking up libraries is handled in
  the root makefile - all sub directories only set up libraries and
  compile options for the module in question.
* Targets are defined and links handled transitively because cmake now
  is told about them. ${module_LIBRARIES} variables are gone.

This is largely guided by the principles outlined in
https://rix0r.nl/blog/2015/08/13/cmake-guide/

Most source files are just moved - if they have some content change then
it's nothing more than include fixes or similar in order to make them
compile.
2017-06-01 15:29:23 +02:00