Commit Graph

149 Commits

Author SHA1 Message Date
Andreas Lauser
a02f315ace EclipseWriter: remove old parser
this patch gets rid of the old-parser-taking methods of
EclipseWriter. this avoids quite a few consistency issues and also
reduces the amount of duplicate work required.
2014-04-02 14:25:03 +02:00
Roland Kaufmann
5371e19d19 Use new parser in common output interface
Since EclipseWriter can now take a Deck instead of an EclipseGridParser
the interface can be changed to take this type instead.
2014-04-01 14:33:55 +02:00
Atgeirr Flø Rasmussen
3adcadff42 Remove debug output. 2014-03-28 13:04:32 +01:00
Atgeirr Flø Rasmussen
27a396b439 This re-adds the bhp reports to the summary output.
It was lost in the shuffling bewteen branches when working on the new parser.
2014-03-28 13:01:10 +01:00
Atgeirr Flø Rasmussen
417c08e890 Merge pull request #536 from andlaus/EclipseWriter_dont_restrict_pressure
EclipseWriter: don't convert the pressure field to active cells
2014-03-21 08:59:41 +01:00
Andreas Lauser
2397eecf6f EclipseWriter: work around a GCC 4.4 smart_ptr bug
maybe it is not a bug but a slightly spec. The problem is that GCC 4.4
does not implicitly convert std::shared_ptr<$FOO> to
std::shared_ptr<const $FOO> which caused the recent Jenkins build
errors at Statoil. Note that this problem only occurs with the output
writer in conjunction with the old Eclipse parser, so
OPM/opm-autodiff#105 also makes the problem disappear. The present
patch addresses the root cause, though...
2014-03-20 16:58:57 +01:00
Andreas Lauser
2443903928 EclipseWriter: don't convert the pressure field to active cells
because that array already is restricted to the active cells...

found using ASAN.
2014-03-20 15:59:02 +01:00
Markus Blatt
ae6ef8249b Use empty constructor to construct empty shared_ptr.
At least for g++-4.4. shared_ptr does not have a constructor
taking an integer and therefore compilation fails. Therefore we
resort statements to construct empty pointers, like
```parser_(0)```
to using the empty constructor:
```parser_()```

This patch closes #533
2014-03-20 10:51:18 +01:00
Andreas Lauser
75374c8745 EclipseWriter: add method variants taking the new instead of the old parser 2014-03-19 17:36:05 +01:00
Andreas Lauser
4aa4108367 EclipseWriter: Don't mingle multiple operations using arguments
This means that EclipseKeyword now never processes the data it
gets. Instead the data must be explicitly preprocessed by the calling
site using the new auxiliary functions "convertUnit()",
"extractFromStriped()", etc. This approach needs a few additional
temporary copies of the data, but given the facts that readability of
this code is much better using this approach, and that EclipseWriter
is neither a performance- nor a memory critical codepath, I don't care
too much about those temporary arrays...
2014-03-19 17:36:05 +01:00
Atgeirr Flø Rasmussen
1ef11653b4 Merge pull request #515 from andlaus/EclipseWriter_cleanups
Eclipse writer cleanups
2014-03-17 15:24:07 +01:00
Andreas Lauser
314b3a32d8 some cleanups for EclipseWriter
- the output=true|false parameter gets respected now
- if output is "true", it is checked that the value of the
  "output_dir" parameter is a directory (although I did not find an
  easy way to check whether it is writable short of writing a file to
  it.)
- the "output_interval" parameter gets respected as well
- the index of a written timestep is now independent of the time step
  index of the simulation: the initial solution is always 0, the first
  result written to disk is always 1 and so on... (i.e., it does not
  matter anymore how many steps the simulator needed between two writes)

these changes have been proposed by @atgeirr. Thanks!
2014-03-14 19:45:15 +01:00
Atgeirr Flø Rasmussen
065efc5b0e Merge pull request #520 from qilicun/plyshear
Read keyword PLYSHEAR.
2014-03-14 12:36:21 +01:00
Liu Ming
5fff1d25dc Read keyword PLYSHEAR. 2014-03-14 15:34:38 +08:00
Kari B. Skjerve
c34d7a40fc Added support of SWCR and SOWCR in CornerpointChopper 2014-03-11 14:51:23 +01:00
Atgeirr Flø Rasmussen
d2e1eb8d02 Merge pull request #485 from atgeirr/fix-initial-call-eclipsewriter
Fix SimulatorTimer-related bug in EclipseWriter.
2014-02-05 18:25:29 +01:00
Atgeirr Flø Rasmussen
2250d7bb95 Suppressed some unused parameter warnings. 2014-02-05 14:46:22 +01:00
Atgeirr Flø Rasmussen
8ad4dd172f Moved explicit template instantiation inside namespace.
Clang requires this to happen inside the namespace of the class
(which is in the anonymous namespace) and issues an error diagnostic.
2014-02-05 14:44:58 +01:00
Atgeirr Flø Rasmussen
a2b7f0a4e4 Fix SimulatorTimer-related bug in EclipseWriter.
Since writeTimeStep() now gets called also before the first timestep is done,
the EclipseWellTotal::update() method was in error, always calling
SimulatorTimer::stepLengthTaken(). That method cannot be called if the
timer's currentStepNum() is 0, so that is checked for and intercepted.
The total rate in that case is of course zero.
2014-02-05 11:28:40 +01:00
Bård Skaflestad
1513712e6b Merge pull request #481 from atgeirr/fix-summary-output
Fix summary output, now contains output for all steps.
2014-01-31 11:49:58 -08:00
osae
a186c0fb9c Removed blanks from strings. 2014-01-31 14:35:35 +01:00
Atgeirr Flø Rasmussen
f1ae040aef Removed erroneous comment. 2014-01-31 14:07:30 +01:00
Atgeirr Flø Rasmussen
9f253eb9ae Add summary output of bottom hole pressures. 2014-01-30 14:18:09 +01:00
Atgeirr Flø Rasmussen
445800f738 Fix summary output, now contains output for all steps.
Previously, the summary output was rewritten for each step,
leaving only the last step's data in the summary data file.
2014-01-30 11:36:31 +01:00
osae
f8696edd7b RV is back in business - a second attempt. 2014-01-29 08:56:07 +01:00
osae
841acacf78 RV is back in business. 2014-01-29 08:42:33 +01:00
osae
fa470063ca Saturation table scaling and hysteresis.
This commit implements some additional scaling keywords.  This includes
the ISWL-family that provide hysteresis behaviour via alternative
scaling of the tables.  The old parser has been somewhat extended for
testing purposes.  The commit also includes a slight refactoring of the
SatFunc-family where a new base class has been introduced.
2014-01-28 16:36:55 +01:00
Tor Harald Sandve
ed9e4e376a Initialization using the RV keyword
The initial Rv value is specified using the RV keyword in the Parser.
The Rv values are used in the computation of the initial surface
volumes.
2014-01-10 16:07:02 +01:00
Arne Morten Kvarving
f1ba3d4b70 added: nonstandard 'RHO' field in eclipse grid parser
note that as this is a nonstandard field, there is no unit conversion
handling. use with caution
2013-12-12 12:43:30 +01:00
Roland Kaufmann
392c6b3892 Actually use transformation function that was passed 2013-11-28 19:34:47 +01:00
Roland Kaufmann
7eeb381f45 Fix grammatical error in comment 2013-11-28 11:37:39 +01:00
Roland Kaufmann
039e549033 Allow sequentially layed out arrays to be indexed
If we want to index into two arrays that has been concatenated (for
instance oil phase pressure continuously, then water phase pressure
continuously), then this variant (courtesy of @bska) will cover both
variants (intermixed striding (where offset < stride) and sequentially
striding (where offset > stride)).
2013-11-28 11:10:52 +01:00
Roland Kaufmann
a997c17a51 Offset is irrelevant for the number of records
We are interested in how many records there are, since we extract one
item per record. The offset is just used to index into each record, and
doesn't affect the total number of records.
2013-11-28 01:04:03 +01:00
Roland Kaufmann
a0a574b01a Use the previous step length to calculate historic rate 2013-11-27 00:37:40 +01:00
Roland Kaufmann
9cba2591e9 Do without the timestep index adjustment
If the output routines are called at the right place in the simulator,
then the numbering scheme coincide with that of Eclipse, and no
adjustments are necessary.
2013-11-27 00:24:30 +01:00
Roland Kaufmann
9bcb7aed30 Convert permeability to milli-Darcy when writing 2013-11-26 23:43:58 +01:00
Roland Kaufmann
d62226dd3c Introduce conversion function to avoid explicit copy
We already copy the data once from the OPM state into the ERT-managed
memory, so we may as well fudge a conversion routine in there (at the
expense of having to do this everywhere).
2013-11-26 23:22:25 +01:00
Roland Kaufmann
c3e0b83927 Write initial solution when the writer is initialized 2013-11-26 22:34:42 +01:00
Roland Kaufmann
7e349636c1 Propagate initial state to the writer as well
The writeTimeStep method is called *after* each timestep and does
not include the initial state of the reservoir. If the writer wants
to dump the initial state of the reservoir, this must be done in
writeInit, which is called before the simulator is run, but after
the initial state has been set up.
2013-11-26 22:34:42 +01:00
Roland Kaufmann
1c0051b40e Factor out code that writes solution field variables
We will reuse this later for also writing the initial solution.
2013-11-26 22:34:42 +01:00
Roland Kaufmann
e7da0053cf Allow timestep index to be overridden
The Eclipse timestep index can not always be retrieved from the
SimulatorTimer object; the initial state is 0 in Eclipse (and does not
have an index in OPM), and the timestep in OPM is not increased until
*after* the timestep is completed (i.e. it is not initialized to -1).
2013-11-26 22:34:42 +01:00
Roland Kaufmann
6becc16567 Don't use the wrong index for the timestep 2013-11-26 14:08:17 +01:00
Roland Kaufmann
d15056be11 Added comment about header/data for each timestep
We would like to build up and write the header only once (with
ecl_sum_fwrite_smspec) and then the data for each timestep (with
ecl_sum_fwrite_step), but since the data attach to the summary
object and so does the header, how do we keep the header in memory
without also accumulating all the data?
2013-11-26 12:28:56 +01:00
Roland Kaufmann
bf19e48e67 Add virtual destructor to avoid memory loss upon free 2013-11-26 11:40:37 +01:00
Roland Kaufmann
a145c7489f Use forward list since we don't need random access 2013-11-26 11:19:39 +01:00
Roland Kaufmann
d67088b15d Let timestep and well report be owned by summary
Instead of calling the destroy functions for the timestep and well
report objects, the ERT memory allocated for these are contained in
the summary handle and freed together with that.

The timestep and well report objects thus becomes only views into this
memory; it is no longer allowed for these to outlive the summary section
(not that this was ever sensible in the first place).
2013-11-26 10:46:10 +01:00
Roland Kaufmann
e806be8f83 Setup a new summary section for each timestep
Although this will lead to parsing the same input data over and over
again (setting up the smspecs for the wells), the summary files contain
this redundant information because in Eclipse, wells can appear and
disappear during the run.
2013-11-26 10:16:30 +01:00
Roland Kaufmann
aff6fad661 Use more generic simulator state
We can dump the state of the two-phase incompressible simulators as
well as the blackoil simulators by just using the common interface.
2013-11-25 14:14:51 +01:00
Roland Kaufmann
754ff4c2ee Use std namespace for div function
Although GCC 4.6.3 implements div by including stdlib.h (where
everything is put in the global namespace), and then importing these
into std, not every compiler does this (one could for instance think
that in #include <stdlib.h> inside the namespace).
2013-11-25 14:14:50 +01:00
Roland Kaufmann
f45f7d19a0 Don't copy data needlessly 2013-11-25 14:14:50 +01:00