Commit Graph

1309 Commits

Author SHA1 Message Date
Andreas Lauser
0fd43afede add the ALL keyword
This keyword is undocumented but seems to be widely used. (It is even
featured by an example in the Reference Manual.)
2014-10-13 17:38:45 +02:00
Andreas Lauser
ee9b7d2cae Extend deck grooming functions to detect keywords which are in invalid sections 2014-10-13 16:06:09 +02:00
Andreas Lauser
a4f55f5f8d JSON keyword definitions: make the "sections" item mandatory
the empty list can be used which means that the keyword may occur in
any section. (which is useful for e.g. section delimiters.)
2014-10-13 16:06:09 +02:00
Andreas Lauser
d94097617b ParserKeyword: add the glue code so that it knows its sections 2014-10-13 16:05:59 +02:00
Andreas Lauser
28fa0fa3b4 JSON keyword definitions: add a "sections" item
this which specifies the allowed sections of the keyword. (surprise!)
2014-10-13 16:05:59 +02:00
Andreas Lauser
8d56ef5179 PlyadsTable: do not require the second column to be strictly monotonic
monotonic is sufficient. thanks to [at] qilicun for the catch!
2014-10-13 12:22:09 +02:00
Joakim Hove
da5fd34262 Merge pull request #319 from qilicun/add_wpolymer
Let parser recongnize keyword WPOLYMER.
2014-10-13 08:39:59 +02:00
Liu Ming
697f2245f7 Let parser recongnize keyword WPOLYMER. 2014-10-13 10:56:30 +08:00
Liu Ming
209ecbeb21 size of PLYMAX should be determined by NPLMIX in REGDIMS not MISCIBLE. 2014-10-13 09:52:12 +08:00
Joakim Hove
685bd7171a Merge pull request #317 from qilicun/kw_polymer
add kyeword polymer.
2014-10-11 14:16:12 +02:00
Liu Ming
173661f14b add kyeword polymer. 2014-10-11 11:31:42 +08:00
Joakim Hove
e0cf8cebde Added postprocessor properties to scatter from top.
For the petrophysical properties PERM? and PORO only the top layer must
be specified, cells further down can be copied from the layer
above. This functionality is implemented with a GridProperty
postprocessor.
2014-10-10 15:48:57 +02:00
Joakim Hove
1df2e656a9 Added post processor to GridProperty 2014-10-10 15:48:01 +02:00
Joakim Hove
f8abfe6333 Added keyword MULTPV 2014-10-10 15:48:01 +02:00
Joakim Hove
e8c5176f1b Added containsNaN() method to GridProperty 2014-10-10 15:48:01 +02:00
Joakim Hove
b26475031c Added GridProperty::multiplyWith( ) 2014-10-10 15:48:00 +02:00
Joakim Hove
88d9319197 Added iset() method to GridProperty 2014-10-10 15:48:00 +02:00
Joakim Hove
dc3f37dd27 Added LogParser argument. 2014-10-10 15:24:58 +02:00
Joakim Hove
82e8d1a56b Added static_cast<long long> before calling std::to_string() 2014-10-10 15:24:26 +02:00
Joakim Hove
14ba7e7e74 Merge pull request #310 from andlaus/improve_logging
Improve logging
2014-10-10 15:04:18 +02:00
Andreas Lauser
c41f5ac2ed ParserLog: print messages to a stream
If no ParserLog object is provided, stdout is used by default. The
stream can also be used to write to a logfile or it can be omitted
entirely. thanks to [at] joakim-hove for insisting on it...
2014-10-10 12:40:35 +02:00
Joakim Hove
e5fe0a9b9a New MULTREGT test based on copy FLUXNUM -> MULTNUM 2014-10-09 17:14:27 +02:00
Andreas Lauser
c73cb0b39a add most of the keywords required to parse decks used by the IRIS history matching codes
this basically comes down to adding a few flag keywords but also
requires to add a few E300 fields to TABDIMS...

the grid cannot be instantiated yet as these deck seem to use some
peculiar constructs to specify the grid data. In particular it uses
property modifiers for keywords that specify the grid. (which might be
not allowed by Eclipse but work anyway...) the deck contains something
like

```
GRID

EQUALS
DX  50.0 /
DY  50.0 /
DZ  50.0 /
/
```

which Opm::EclipseGrid can't handle yet because grid properties are only
evaluated after the grid has been instantiated...
2014-10-08 14:29:04 +02:00
Andreas Lauser
f51016db57 EclipseState: significantly extend usage of the new logging facility
in the process quite a few exceptions have been converted into log
messages.
2014-10-07 15:39:15 +02:00
Andreas Lauser
335a031185 add separate unit test for the Opm::checkDeck() function 2014-10-07 15:39:14 +02:00
Andreas Lauser
ff90fe71c0 replace the deck-internal logging system by ParserLog 2014-10-07 15:39:14 +02:00
Andreas Lauser
f600930a5f add a class for log messages of the parser
unsurprisingly, it's called ParserLog. For now, it is not used very
extensively, but it allows to demingle the log messages from the deck
objects. (i.e., it's possible to pass a const pointer to the deck
object to e.g. EclipseState and one will still get additional log
messages.)
2014-10-07 15:37:27 +02:00
Andreas Lauser
6736213bae Section::checkSectionTopology(): report more than the first error
i.e. don't return uppon encountering an error, just set a flag.
2014-10-07 14:22:56 +02:00
Andreas Lauser
76904f244f Opm::checkDeck(): complain about unrecognized keywords
"unrecognized" means "not created based on a ParserKeyword object"
2014-10-07 14:22:56 +02:00
Andreas Lauser
f76113f2b1 DeckKeyword: retain the ParserKeyword object
this is useful because DeckKeywords can have almost arbitrary names
(which match a regular expression) which makes it hard to retrieve
additional information about the keyword after it has been created...
2014-10-07 14:22:47 +02:00
Andreas Lauser
f651a8e9d8 add Opm::checkDeck()
this is analogous to Opm::Section::checkDeckTopology() but intended to be
more general. So far not too many tests are implemented...
2014-10-07 14:22:47 +02:00
Andreas Lauser
38797ea534 DeckKeyword: retain the location of keywords
this is useful for log messages.
2014-10-07 14:22:47 +02:00
Joakim Hove
4d88001b69 Merge pull request #309 from qilicun/plykw
update keyword PLYADS.
2014-09-28 11:59:17 +02:00
Liu Ming
daa6744116 update PLYADS "dimension". 2014-09-28 14:10:28 +08:00
Joakim Hove
e6733c7c8c Changed order of dimensions in PLYVISC 2014-09-28 07:54:15 +02:00
Liu Ming
f228554796 update keyword PLYADS. 2014-09-28 09:15:03 +08:00
Joakim Hove
5e6eb61023 Updated the PLYVISC keyword 2014-09-26 13:56:25 +02:00
Joakim Hove
70c94a36b2 Renamed GridProperty::size -> GridProperty::getCartesiansize 2014-09-26 09:57:33 +02:00
Joakim Hove
fa335b50fb Integrated the MULTREGT in the EclipseState/TransMult 2014-09-26 09:57:33 +02:00
Joakim Hove
9c43c63d9e Added class MULTREGTScanner
The class MULTREGTSCanner internalizes the content of one or several
MULTREGT keywords and can then scan through GridProperty region objects
to find region interfaces as specified in the MULTREGT keyword.
2014-09-26 09:53:25 +02:00
Joakim Hove
896a0b32fb Removed dummy -1 default values from MULTREGT 2014-09-26 09:53:24 +02:00
Joakim Hove
6a99d7c5ea Updated FaceDir functionality to support MULTREGT 2014-09-26 09:53:24 +02:00
Joakim Hove
95592ebbd7 Added MULTNUM keyword 2014-09-26 09:53:24 +02:00
Joakim Hove
f8cbb6592a Added getNXYZ() to the grid property. 2014-09-26 09:53:24 +02:00
Andreas Lauser
755b8f53cf check if the keyword item has sufficiently many data points before using defaultApplied()
this fixes the GridPropertyTests unit test. The morale of this is that
I should probably never trust my own stupidity...
2014-09-25 22:32:07 +02:00
Andreas Lauser
350c92375e add the PORV grid property and use NaNs as default values for most double grid property
when it comes to PORV, the final pore volumes of logically Cartesian
grids are hard to implement at this abstraction level because pore
volumes may be either specified using the PORO or by the PORV keywords
and both of them are grid properties. This means that to calculate the
pore volumes using the porosity, the porosity grid property must be
already finished when creating PORV. Because of potential interactions
between the PORV and PORO grid properties this is not possible to do
canonically at the grid property initializer stage...
2014-09-25 21:36:59 +02:00
Andreas Lauser
45619a93f2 GridPropertyInitializers: add unit test 2014-09-25 21:36:43 +02:00
Andreas Lauser
c5f602a17c grid properties: implement a table-lookup initializer for the endpoint scaling keywords 2014-09-25 21:36:42 +02:00
Andreas Lauser
f54de8eafb grid properties: introduce initializer objects
this makes it possible to define more complicated initializers for
grid properties. (needed for example for keywords like ISGU.) This
patch does not introduce them yet, but only adds the necessary
infrastructure.

notes:

 - to get around cyclic definitions in template classes, the
   EclipseState is changed to a (defaulted) template parameter which
   causes the compiler to only look up the class definition at
   instantiation time.
 - using std::shared_ptr in the property initializers would lead to
   cyclic references which would cause memory leaks. To avoid that,
   plain old references where used in most places. I think this is
   okay as the GridProperty objects should be considered internal to
   EclipseState and thus the EclipseState object should live at least
   as long as GridProperty objects...
2014-09-25 21:36:42 +02:00
Andreas Lauser
f8ec08e069 change the defaults for the *NUM integer properties to 1
and add the ENDNUM integer property.
2014-09-25 21:36:42 +02:00