Commit Graph

332 Commits

Author SHA1 Message Date
Jørgen Kvalsvik
e5ee6105b7 Remove parseStream support; strict input reading
Replaces the external stream-support by reading the entire contents of
input files at once, rather than lazily through streams. Uses
stringstreams internally, but keeps the entire file in memory through
std::string

openString/File has been renamed to loadString/File
2016-05-03 09:16:27 +02:00
Jørgen Kvalsvik
4d7f97d322 Refactor ParseState to use explicit stack
Rewrites ParseState to use an explicit stack of open file streams
instead of spawning multiple ParseState objects. While recursion is
*the* most elegant to solve a typical include-file system, the global
nature of eclipse declarations make this clumsy (at best). Instead,
maintain an explicit stack of open files and logically parse the input
as if it was all concatenated into one large file.

Also adds some convenient ways of accessing the current (and
interesting) top of the stack.
2016-05-03 09:15:46 +02:00
Pål Grønås Drange
444f74642c Refactored EclipseState.getEclipseGrid to getInputGrid 2016-04-19 16:47:05 +02:00
Pål Grønås Drange
ba01b7eb53 Fixes support for BOXed ACTNUM
* Added ACTNUM as keyword to Eclipse3DProperties
* Removed certain checks from EclipseGrid that are no longer of use
* Added tests to EclipseGridTests that test boxed ACTNUM and activeCells
* Made EclipseGrid non-const in EclipseState since we must run resetACTNUM
* Fixed a minor typo in an error message in EclipseGrid
* Fixed typo in GridProperty: Deckeyword -> DeckKeyword
* Fixed two errors in tests recently introduced relating to Ecl3DProps
* Removed test in EclipseGridTests; We now accept too small ACTNUM vectors
* Added ACTNUM test for GridProperties
2016-04-19 10:54:09 +02:00
Pål Grønås Drange
7cffdb0ecf Renamed to get3DProperties() 2016-04-12 14:42:35 +02:00
Pål Grønås Drange
3680dfcb97 Substantial edits to Eclipse3DProperties and ptr's
* moved region-property from EclipseState to Eclipse3DProperties
* moved initGridopts from EclipseState to Eclipse3DProperties
* made several Eclipse3DProperties methods private
* removed obsolete tests
* replaced log with throw internally in private method---is domain_error
* removed typedef in SatFuncPropertyInitializers
* postprocessors take raw pointers, not shared_ptr---these will be phased out
* fixed return reference instead of copy several places
** gridProperties<T> in Eclipse3DProperties are now references, not shared_ptr
** Eclipse3DProperties takes const Deck&, not shared_ptr
** EclipseGrid and Section are references
2016-04-12 14:42:34 +02:00
Pål Grønås Drange
e48b64c41d Substantial edits to Eclipse3DProperties
* Removed all references to state, need to fix initPORV
* Made TransMult return raw pointer const GridProperty over shared pointer.
* Moved getDirectionProperty and hasDirectionProperty out of API
** Removed tests as these methods are no longer public
* Moved grid properties stuff to new class
* Removed use of deck in SatfuncInitializers, moved to TableManager
* Removed shared_ptr for several members of EclipseState and 3DProperties
* Moved region-property from EclipseState to Eclipse3DProperties
* Moved initGridopts from EclipseState to Eclipse3DProperties
* Made several Eclipse3DProperties methods private
* Postprocessors take raw pointers, not shared_ptr---these will be phased out
* Fixed return reference instead of copy several places
** GridProperties<T> in Eclipse3DProperties are now references, not shared_ptr
** Eclipse3DProperties takes const Deck&, not shared_ptr
* Removed obsolete tests
2016-04-12 14:42:18 +02:00
Joakim Hove
328a0ab27d Renamed OpmLoadDeck -> opmi
Have renamed the OpmLoadDeck test program to the working name opmi - Opm
Inspector. Currently the opmi executable will only load a deck and
create a EclipseState instance, but the plan is to extend this
executable to be a general Eclipse deck inspector, e.g.

   opmi --wells CASE.DATA

Could the list the wells and so on.
2016-04-02 21:44:11 +02:00
Joakim Hove
b0a12b230e Internalize first output step for restart and RFT. 2016-03-28 18:47:30 +02:00
Liu Ming
88d489e876 rename ParseMode as ParseContext in IntegrationTests folder. 2016-03-17 08:28:17 +08:00
Joakim Hove
0979d8050e Load-test of opm-data/solvent_test_suite/SPE5CASE1 2016-03-12 19:18:55 +01:00
Tor Harald Sandve
3991bf6e51 Add new keyword TLPMIXPA
The TLPMIXPA keyword can be used for giving pressure depended Todd-
Longstaff parameters. The implementation follows the description of
PMISC.
2016-03-08 15:14:21 +01:00
chflo
0db3abab94 Added copyright header to files that were without it 2016-03-04 14:56:18 +01:00
Joakim Hove
7b5bc29d81 Merge pull request #691 from jokva/parser-keywords-unique
Parser stores keywords as unique_ptr
2016-02-22 09:09:03 +01:00
Jørgen Kvalsvik
78e1ab9db5 Parser stores keywords as unique_ptr
Removes shared_ptr< ParserKeyword > exchange in Parser interface and
replaces it with unique_ptr storage and raw pointers for return values.
This has some implications:

* addParserKeyword() no longer takes shared_ptr<>, but unique_ptr&&
  addParserKeyword has been modified to create unique_ptr instead of
  shared_ptr.

* generated-source/ParserKeyword* no longer use make_shared which had a
  -massive- impact on compile times, which are now more-or-less
  trivialised (on my machine: 7.5s -> 1s per file). This because the
  compiler no longer generates a bunch of forwarding make_shared
  instances of subclasses that are immediately thrown away, but rather
  uses an inline make_unique that instantiates the -parent- class
  unique_ptr.
2016-02-19 14:19:41 +01:00
Andreas Lauser
442cdafeda EclipseState: make the grid properties returned by get*GridProperty() constant
that's because they are not supposed to be modified outside of the
EclipseState. (if they are, why? I'd consider that *very* bad style
since it is also possible to copy these objects and modify the copy
and also this was used nowhere within the OPM project.)

also, the has*Property() is now working as expected: if e.g.,

```c++
bool hasSatnum = eclipseState->hasIntProperty("SATNUM");
eclipseState->getIntProperty("SATNUM");
assert(hasSatnum == eclipseState->hasIntProperty("SATNUM"));
```

will now work for decks which does not explicitly specify
SATNUM. (before the getIntProperty() method silently created the
SATNUM property which caused hasIntProperty() to change its
opinion. With this patch, the property will still be silently created,
but has*Property() ignores it, i.e., that method could be renamed to
hasExplicit*Property() which -- as far as I understand this -- was its
intention from start.)
2016-02-19 13:35:45 +01:00
Jørgen Kvalsvik
7eb52f1023 Removes DeckKeyword's dependency on ParserKeyword
The completely constructed Deck isn't supposed to have any relationship
with the Parser structures (which are completely stateless in terms of
input data), and ParserKeyword in DeckKeyword was an anomaly. With
recent refactorings this lead to subtle lifetime issues.

This patch breaks this dependency and cleans up DeckKeyword accordingly,
while changing checkDeck to now take the parser as an additional
argument, to look up whether or not some DeckKeyword is in the right
section. This now also means that Parser* objects can be destroyed once
the Deck is created.

The Section::checkSectionTopology has been moved to Parser.cpp. It is a
temporary home for the feature to make the project compile nicely (i.e.
createKeywordList can be compiled as before, without introducing a
circular dependency on itself via Parser.cpp), until some proper cleanup
of the parser code has been done. It never really fully belonged in
Section.cpp anyway, so this is a first step in the direction of some
slight renaming.
2016-02-18 13:27:24 +01:00
Jørgen Kvalsvik
f0ae5db131 opm-parser adoption of Deck automatic ownership
Since the Deck* family of classes have changed their interfaces to no
longer use shared_ptr, a lot of code broke. This patch fixes all
problems in tests, other signatures and accesses to now use the new Deck
interfaces.
2016-02-18 13:27:24 +01:00
Atgeirr Flø Rasmussen
e1301fa32e Add missing #include directives. 2016-02-14 23:38:24 +01:00
Jørgen Kvalsvik
4b98943665 Replaces unecessary header includes with fwd decls
Every header is self-contained and includes only what it must to
function, relying on users include what they need in source files,
adopting a pay-what-you-use model (in particular for internal
dependencies).
2016-01-26 13:23:22 +01:00
Jørgen Kvalsvik
04900a4bb6 ParserKeywords.hpp -> ParserKeywordsX.hpp
To reduce compiler stress and be more explicit w.r.t. dependencies, all
files now includes only the keywords they need, instead of the
collection of all files.
2016-01-21 09:25:58 +01:00
Jørgen Kvalsvik
c85a032240 Splits tables' implementations into .cpp file
Most tables are trivial extensions of SimpleTable, but had their
implementation in headers. This required them to include more headers
than we want to expose and makes them harder to maintain and verify.
Instead, all these SimpleTable derivatives are now implemented in
Tables.cpp, only declaring their interfaces in their respective .hpp
files. Clients won't notice the difference.

rebase into tables
2016-01-21 09:23:07 +01:00
Jørgen Kvalsvik
f404828d63 Cleans up headers to improve build preformance
This is an effort to improve build performance.  Several includes
scattered across the project are either unused or partially used (i.e.
just used to import a type name, not depending on the actual contents of
the header file).

Replaces a lot of these includes with forward declarations.
2016-01-21 09:22:06 +01:00
Joakim Hove
6cff4d5aae Changed PVTO / PVTG implementation 2016-01-08 14:04:29 +01:00
Joakim Hove
874a5320e7 Changed implementation of all SimpleTable tables. 2016-01-05 12:33:19 +01:00
Joakim Hove
a85bac0034 Changes in const'ness 2015-12-21 15:30:14 +01:00
Atgeirr Flø Rasmussen
7e07977f26 Add warning suppression includes. 2015-12-14 14:51:03 +01:00
Tor Harald Sandve
369943461e Store the nncs in a vector of a struct rather than three vectors 2015-12-08 12:09:06 +01:00
Tor Harald Sandve
dd0689fef6 Add NNCs 2015-12-08 09:19:07 +01:00
Tor Harald Sandve
d3f3c74358 Adress minor issues
- rename checkRange() to assertUnitRange()
- use string instead of char
2015-12-01 14:12:39 +01:00
Tor Harald Sandve
ddcba13dfe Add support for MSFN 2015-12-01 12:19:43 +01:00
Tor Harald Sandve
9badf045a9 Add support for PMISC 2015-12-01 12:19:43 +01:00
Tor Harald Sandve
e97c6461e1 Add support for MISC 2015-12-01 12:19:43 +01:00
Tor Harald Sandve
5c35b8edeb Add support for SGCWMIS 2015-12-01 12:19:43 +01:00
Tor Harald Sandve
d151bfc83a Add support for SORWMIS 2015-12-01 12:19:42 +01:00
Kai Bao
6c8736f1ce updating ParseMULTSEGWELL intergration test. 2015-11-12 12:28:08 +01:00
Atgeirr Flø Rasmussen
ac478e04e5 Silence warnings from boost. 2015-11-09 16:43:31 +01:00
Kai Bao
ecb0186a08 using const std::string& for well_name and fix CMakeLists.txt
The problem for CMakeLists.txt is from the re-basing process.
2015-11-09 14:09:31 +01:00
Kai Bao
c59aff430f correcting the typo in Presure 2015-11-09 12:14:09 +01:00
Kai Bao
8704c3eac6 adding a mutlisegment wells intergration test. 2015-11-09 12:14:08 +01:00
Joakim Hove
66423aacd0 Added integration test for modifiers in Schedule. 2015-11-09 12:05:28 +01:00
Kristian Flikka
c1e1e4bdd1 Deleted unused file MULTREGT.cpp 2015-10-16 13:50:03 +02:00
Kristian Flikka
a2c21f5d88 Added missing curly brace (found using sonar with cppcheck and vera++) 2015-10-16 13:01:39 +02:00
Joakim Hove
51e3aa82cc Update include path 2015-10-06 11:30:43 +02:00
Joakim Hove
ea86b51b8d TableContainer for PLYMAX and PLYROCK. 2015-10-04 20:03:53 +02:00
Joakim Hove
40fa456603 TableContainer for PLYADS,PLYDHFL and PLYVISC. 2015-10-04 20:03:51 +02:00
Joakim Hove
ee6b5c9675 Added basic support for PLYADSS keyword. 2015-10-01 13:32:12 +02:00
chflo
1e83914a61 OPM-218-fix: Added integration testing against SPE1CASE2 2015-09-25 10:29:27 +02:00
Joakim Hove
703427caba Added OpmLoadDeck and load tests for opm-data. 2015-09-22 15:09:50 +02:00
Joakim Hove
6623b87ee6 Added Polymer integration test. 2015-09-17 22:28:30 +02:00