Commit Graph

403 Commits

Author SHA1 Message Date
Bård Skaflestad
a886a2334b GridProperty: Collect Paired Assignment in Single Operation
This commit introduces a new helper function

    void GridProperty<>::setElement(i, val, dflt)

that handles paired assignments to 'm_data' and 'm_defaulted'[%].
This simplifies the bookkeeping and implementation of the various
assignment and value operations.

While here, also add a unit test to demonstrate expected behaviour
of the m_defaulted flag.  The only really questionable setting is
what happens if the deck applies a relative operator (e.g., ADD or
MULTIPLY) to a value that would otherwise be defaulted.  In the
current implementation the m_defaulted flag will remain set in this
case, but it arguably should be switched to unset (false).

[%]: Suggested by [at]akva2
2019-07-15 13:03:21 +02:00
Bård Skaflestad
63c6eeb30e SupportedKeywordInfo: Remark on Hacky Nature of setPostProcessor
This commit adds a comment block to the new

    setPostProcessor

member function, explaining the reasoning behind its excistence and
remarking on the fact that the ability to replace the post-processor
is essentially a hack.  The hack suggests that we need to rethink
our handling of (3D) grid properties.
2019-07-15 13:03:21 +02:00
Bård Skaflestad
9bb64df26e Keyword Information: Add Means to Replace Post-Processor
This is a special purpose hook that is mainly intended to add a
post-processor after the keyword information is established only if
certain conditions are satisfied (e.g., if certain keyword relations
like the run using 'SGOF' tables hold).

Immediate use case is to install a post-processor for SOGCR to
subtract the scaled connate water saturation from defaulted SOGCR
values if the simulation run uses family I (SWOF/SGOF) saturation
function descriptions.
2019-07-15 13:03:21 +02:00
Bård Skaflestad
ceb9f01571 GridProperty: Pass 'Defaulted' Flag to Post-Processor
This commit alters the post-processor API to accept a vector<bool>
of defaulted flags (true if defaulted, false if explicitly
assigned).  This, in turn, enables running the post-processor only
on defaulted (or assigned) property values.

Update existing post-processor implementation to honour the new
calling conventions.
2019-07-15 13:03:21 +02:00
Bård Skaflestad
430cc9d7b2 GridProperty<T>: Track Defaulted Cell Status
This commit adds a new data member (GridProperty<T>::m_defaulted)
that keeps track of whether or not a particular data item has been
implicitly assigned from the input deck.  GridProperty::setDataItem
assigns 'false', while the constructor initialises 'm_defaulted' to
true for all Cartesian cells.

The main objective is to be able to apply a post processor only to
those cells for which the input deck does not supply an explicit
value.
2019-07-15 13:03:21 +02:00
Kai Bao
a3d411279f removing redeclaration of function setKeywordBox 2019-06-25 11:44:35 +02:00
Joakim Hove
f80b220b44 Change OrderMap to more closely resemble std::map
- Removed the hasKey() and get() methods.
 - Key type is a template parameter
 - insert takes a pair
 - implement count()
 - implement find()
 - implement operator[]
 - implement erase
2019-03-11 10:34:04 +01:00
Atgeirr Flø Rasmussen
53252e6694 Use struct for MULTREGTRecord, match order of variables to usage. 2018-12-10 16:10:25 +01:00
Joakim Hove
7c52f6f5a8 Merge pull request #560 from blattms/edit-nnc-2nd-try
Represent EDITNNC in the deck representation.
2018-11-26 16:57:18 +01:00
Joakim Hove
c0e9b71eec Add postAddKeyword() overload for initializable properties 2018-11-22 12:06:12 +01:00
Joakim Hove
e0d5711f8e Add support for OPERATER keyword 2018-11-21 16:56:28 +01:00
Markus Blatt
7c1e868973 Store EDITNNC in the EclipseState for latter usage by the simulator.
Only the simulator is able to determine all NNCs and therefore it needs
to apply the multiplicators itself.
2018-11-20 13:58:08 +01:00
Markus Blatt
0768c5a8b3 Revert "Merge pull request #535 from blattms/support-editnnc"
This reverts commit 7ebadbb055, reversing
changes made to 0f485c7801.
2018-11-20 13:58:08 +01:00
Joakim Hove
7ebadbb055 Merge pull request #535 from blattms/support-editnnc
Added support for honoring keyword EDITNNC during deck parsing.
2018-10-25 15:49:06 +02:00
Joakim Hove
ae0cb3e5ad Merge pull request #528 from totto82/minpvv
Add support for minpvv
2018-10-25 09:04:32 +02:00
Joakim Hove
e356a16ab2 Merge pull request #462 from joakim-hove/tranx-modifier
Add deckAssigned() method to GridProperty + default construct TRAN
2018-10-24 10:36:19 +02:00
Markus Blatt
5f620f7451 Added support for honoring keyword EDITNNC during deck parsing.
If the keyword is present then the transimissibilities of the corresponding NNC
entries will be scalled with the factor specified via EDITNNC. Multiple entries
for the same cell pairs are allowed and will result in multiple scalings.
Cell pairs specified in EDITNNC that are not present in NNC are silently ignored.
2018-10-18 15:26:31 +02:00
Joakim Hove
c76ee877aa Update GDFILE handling to account for out-of-cwd
Make sure path to GDFILE is correct
2018-10-18 10:47:38 +02:00
Joakim Hove
1190260d7d Add support for GDFILE keyword 2018-10-16 00:21:35 +02:00
Joakim Hove
5b8882d6f0 Add methods save() and addNNC() to EclipseGrid 2018-10-16 00:20:09 +02:00
Joakim Hove
f8e711246f GridDims class can initialize from binary file 2018-10-16 00:14:33 +02:00
Tor Harald Sandve
ca8e2f279b Add support for minpvv 2018-10-15 13:35:04 +02:00
Joakim Hove
7279fd5ea8 Add deckAssigned() method to GridProperty + default construct TRAN
The deckAssigned() query method is added to the GridProperty class to enable the
simulator to check whether a property has been explicitly assigned in the deck
or autocreated through the use of some EDIT operators like MULTIPLY.
2018-10-15 10:29:01 +02:00
Joakim Hove
e1948ccf99 Add operator[] to GridDims 2018-09-07 10:20:50 +02:00
Joakim Hove
4d5ef337ec Accept default values when parsing MULTREGT keyword 2018-08-31 15:47:28 +02:00
Joakim Hove
a2394c06f5 Refacored MULTREGT scanner 2018-08-31 14:32:10 +02:00
Atgeirr Flø Rasmussen
98e3bbcf1d Changes to make the code compile and run. 2018-06-29 15:57:15 +02:00
Joakim Hove
976bfdab35 Use opm-internal algorithm for volume calculation 2018-06-29 15:57:15 +02:00
Steinar Foss
d9ffb579e1 Removed MessageContainer. OpmLog used instead.
...

...

...

GenerateKeywords.cmake changed.

ParserContext.handleerror takes only two args.

Schedule: removed all MessageContainer.

...

...

...

GridProperties: removed MessageContiner.

...

Eclipse3DProperties: removed MessageContainer.

...

TabelManager:removed MessageContainer.

...

.nnn.

...

...

...

...

...

...

...

...

...

...

...

...

...
2018-03-26 10:15:18 +02:00
Lars Petter Øren Hauge
800cc2af62 Support default construction uppon ADD/MULTIPLY
Allow keywords that can be default constructed to do so when acted uppon
by MULTIPLY and ADD.

Setting the "MULTIPLY" keyword to act on "PORV" would throw an
exception:

"Program threw an exception: Fatal error processing MULTIPLY keyword.
Tried to scale not defined keyword PORV"

Now the initPORV is called if the MULTIPLY keyword is parsed with PORV.
Note that MULTIPLY for PORV will also work in the GRID section (which it
does not in eclipse), but will fail if it is placed prior to setting a
variable PORV depends on.

Commit authored by Sveinung Styve Rundhovde and Lars Petter Hauge
2018-02-26 13:51:37 +01:00
Ove Sævareid
ec83e0fc18 Support for kw MAXVALUE/MINVALUE. 2018-01-24 16:01:09 +01:00
Joakim Hove
e1d0b39733 Added accessor functions to Box class 2018-01-18 12:58:32 +01:00
Joakim Hove
972979c931 Added nine argument(!) constructor for Box class 2018-01-18 10:50:04 +01:00
Joakim Hove
6379cec8e0 Changed Transmult constructor 2017-09-24 15:43:29 +02:00
Joakim Hove
28f62a019f Removed GridDims from EclipseState. 2017-09-24 09:22:54 +02:00
Joakim Hove
009e00ed61 Added EclipseGrid method to get corner positions. 2017-06-23 17:05:11 +02:00
Arne Morten Kvarving
18f15e7432 mark constructors as explicit 2017-06-09 17:38:42 +02:00
Joakim Hove
494cb74124 Limited support for cylindrical grids.
For cylindrical grids based on the keyword set DRV, DTHETAV, DZV and
TOPS the EclipseGrid implementation will create a cornerpoint
representation of the grid.
2017-06-08 08:26:43 +02:00
Joakim Hove
fbb2ce73cd Added circle property to EclipseGrid 2017-06-08 07:01:25 +02: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
Joakim Hove
ebc3a3ac79 Added GridProperties::hasDeckKeyword( )
The GridProperties::hasDeckKewyord( ) will return false for keywords
which have only been auto generated. Have also renamed
getInitializedkeyword( ) to getDeckKeyword( ).
2017-02-16 15:13:13 +01:00
Joakim Hove
0dcf411e8c Changed semantics of GridProperties.hasKeyword( )
The GridProperties.hasKeyword( ) would previously return false if a
keyword in the properties container had been auto created. This is now
changed, the hasKeyword( ) implementation will not consider whether a
keyword has been autocreated or not.

Have also added a void method GridProperties.assertKeyword( kw ) which by
side effect will ensure that the container contains the keyword kw.
2017-02-16 15:13:12 +01:00
Pål Grønås Drange
b8b5bd374b Added FIP_PROBE and tests, we now accept FIPxxxx kws 2017-01-11 12:36:22 +01:00
Atgeirr Flø Rasmussen
b4360ff1e7 Add extra braces for C++11 compilers.
With C++14 the warnings generated will probably disappear, but for now
this keeps clang happy (warning-free).
2016-12-12 14:58:13 +01:00
Atgeirr Flø Rasmussen
d753ecd9b4 Allow 'X+', 'I+', 'Y+', 'J+', 'Z+' and 'K+'.
This has been encountered in the wild. We treat it like
the documented 'X', 'I' etc. strings.
2016-12-09 15:19:40 +01:00
Joakim Hove
eb283a1434 ZCORN adjustments considers cell-cell relation. 2016-12-04 22:56:54 +01:00
Joakim Hove
c022809073 Added functionality to "fix" ZCORN problems. 2016-11-23 14:59:48 +01:00
Joakim Hove
5ebddba40e Changes in Tabdims construction:
1. Removed Tabdims(int,int,int, ....) constructor and added
    Tabdims(Deck) constructor.

 2. Added Tabdims member to Runspec( ) object.

 3. Changed std_shared_ptr<Tabdims> to Tabdims member in TableManager.
2016-11-18 10:48:02 +01:00
Joakim Hove
76f5a4d78b Handle keyword OPERATE. 2016-11-15 08:45:04 +01:00
Joakim Hove
2b53bc4c43 Add begin() and end() to Box. 2016-11-15 08:45:04 +01:00