Commit Graph

31 Commits

Author SHA1 Message Date
Andreas Lauser
e142094443 remove the "Eclipse" prefix from all classes in namespace "EclipseWriterDetails"
this have become become superfluous by the namespace...
2014-07-14 13:58:53 +02:00
Andreas Lauser
d71c2a0fa6 EclipseWriter: introduce namespace EclipseWriterDetails
it is for -- well -- the implementation details of EclipseWriter...
2014-07-14 13:58:53 +02:00
Andreas Lauser
15ff31f307 EclipseWriter: stop making UnstructuredGrid think it is special
instead, the same interface as for Dune::CpGrid is now
used. (i.e. pass all relevant information as separate arguments.)
2014-07-14 13:58:50 +02:00
Andreas Lauser
6ac1196859 EclipseWriter: use opm-parser's EclipseGrid class
this unifies the grid creation code paths with the one used by the
simulators and simplfies things.
2014-07-14 13:58:35 +02:00
Andreas Lauser
f96417e81c rename all "newParserDeck" objects to "deck"
The "new" parser is now "the" parser...
2014-05-21 11:22:43 +02:00
Markus Blatt
fdd19fd3f6 Reintroduce lifetime guarantees for UnstructuredGrid used.
In this pull requested we resorted to storing the data items (e.g. cart_dims, global_cell,
etc.) instead of the UnstructuredGrid. Unfortunately, this is a change of the lifetime
guarantees: Previously, a shared_ptr to the Unstructuredgrid was stored. Thus the data members
were available for the lifetime of the EclipseWriter. With the previous changes the grid could
actually have been destroyed before the writer.

Therefore we no store a shared_ptr to the UnstructuredGrid again (in addition to the datamembers).
Thus at least for UnstructuredGrid the old guarantees still hold.
2014-04-09 10:31:46 +02:00
Markus Blatt
ebc86bc624 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Manually resolved conflicts in:
	opm/core/io/eclipse/EclipseWriter.cpp
	opm/core/io/eclipse/EclipseWriter.hpp
	opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp
2014-04-08 21:50:00 +02:00
Andreas Lauser
b4b03ffee3 EclipseWriter: remove unused method activeToGlobalCellData_() 2014-04-02 16:47:59 +02:00
Andreas Lauser
c8683b39d0 EclipseWriter: fold the writeSolution_() method back into writeTimeStep()
because this was the only caller...
2014-04-02 16:47:27 +02:00
Andreas Lauser
3ce9d6b3b1 output writers: remove the state parameters from writeInit()
because as discussed with Atgeirr, this function should no longer
write the initial solution, it also does no longer need to know the
initial simulator state...
2014-04-02 16:42:04 +02:00
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
Markus Blatt
8668ce7b71 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Manually resolved conflicts:
	opm/core/io/eclipse/EclipseWriter.cpp
	opm/core/io/eclipse/EclipseWriter.hpp
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/simulator/initState_impl.hpp
	opm/core/wells/WellsManager.cpp
	opm/core/wells/WellsManager.hpp
2014-03-27 15:27:11 +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
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
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
Markus Blatt
fa5060c6c8 Refactored EclipseWriter to make it possible to support CpGrid. 2014-02-26 10:53:31 +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
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
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
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
419cffe73b Define destructor in .cpp to handle forward-def field
The EclipseSummary field is just forward declared in the header, and
the compiler cannot create a proper destructor based on just that. If
we define it in the compilation unit, it will get instantiated there
once and for all and the compiler won't try to create it (and leave it
to the linker to sort out duplicates) everywhere the header is used
(which may be in another module, even).

This is similar to commit 18b9f2b for SimulatorOutput.
2013-11-25 14:14:50 +01:00
Roland Kaufmann
d83d7d829c Writing output should not change the state
Therefore we take const parameters across the board. (This is a
follow-up to the patch which declared the UnstructuredGrid const).
2013-11-25 14:14:50 +01:00
Roland Kaufmann
1baf7369ef Use constant grid in output writing
Grid manager returns a const UnstructuredGrid*, and the entire chain
of pointer-passing glory should adhere to this const-ness.
2013-11-25 14:14:48 +01:00
Roland Kaufmann
cec6f12f50 Store reference to UnstructuredGrid in EclipseWriter 2013-11-25 14:14:48 +01:00
Roland Kaufmann
ce7eb44836 Propagate UnstructuredGrid to the EclipseWriter ctor
The writer will need to know which cells are the active cells after
post-processing (because these are the cells there is stored results
for in the pressure and saturation arrays), and thus not only the
raw input grid (to get the COORD and ZCORN arrays which is not easily
detainable from the UnstructuredGrid), *and* the UnstructuredGrid
needs to be available.
2013-11-25 14:14:48 +01:00
Roland Kaufmann
568e597561 Use shared_ptr to signal lifetime requirement
The code is now allowed to use C++11, where shared_ptr is available
in the standard. To specify that the parser object must be present
for the output writer in its entire lifetime, we require to be passed
a shared_ptr. (This can be faked for local storage anyway).
2013-11-25 14:14:47 +01:00
Roland Kaufmann
b0b50618d0 Only write the declared phases to file
Only the phases that are specified in the input deck should be written.
Hence the class should work with both two- and three-phase simulations.
2013-11-25 14:14:47 +01:00
Roland Kaufmann
6f32b92f6c Renamed away extraneous verbosity in filenames 2013-11-25 14:14:47 +01:00