Commit Graph

133 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
4ea87b31b2 Change output dir default.
With this the default output dir is the location of the deck file
(as stored in the IOConfig), rather than the current working directory.
2017-03-16 15:43:46 +01:00
Joakim Hove
bdc9ffb578 Policy change: warn when missing well/group. 2017-03-15 15:41:25 +01:00
Joakim Hove
6ed41d282e White spcae change. 2017-02-16 15:03:27 +01:00
Arne Morten Kvarving
86fbb36fd2 adjustments for imported files
- adjust include paths
- add new test to build system
- add new example to build system
2017-02-10 13:02:00 +01:00
Andreas Lauser
42ec0ca3c3 do not explicitly pass the permeability to the well model anymore
this information is already part of the EclipseState. The reason why
this should IMO be avoided is that this enforces an implementation
detail (ordering of the permeability matrices) of the simulator on the
well model. If this needs to be done for performance reasons, IMO it
would be smarter to pass an array of matrices instead of passing a raw
array of doubles.  I doubt that this is necessary, though: completing
the full Norne deck takes about 0.25 seconds longer on my machine,
that's substantially less than 0.1% of the total runtime.
2017-01-27 13:06:09 +01:00
Joakim Hove
270e5f9c0e Passing keys to the restart load function.
- Renamed EclipseWriter -> EclipseIO.
 - Loading from restart file is a method on the EclipseIO class.
2017-01-25 23:16:08 +01:00
Atgeirr Flø Rasmussen
1d918453c9 Warn instead of throw when missing DIMS keyword.
Default values will be used for parsing.
2017-01-13 11:07:02 +01:00
Markus Blatt
0a904deb02 Only try to merge files from a parallel run if ouptput requested.
If it is not requested then output_dir is not created and boost
will throw an exception if we try to read from a non existing
directory.
2017-01-09 12:09:49 +01:00
Jørgen Kvalsvik
d2b5327a72 RockCompressibility takes only EclipseState 2016-12-20 12:39:34 +01:00
Andreas Lauser
3fb55f06e5 flow*: reset the locale settings on startup 2016-12-08 12:17:36 +01:00
Robert Kloefkorn
c5ca9649d7 [bugfix] Make initialization work in parallel for flow_ebos. 2016-12-01 16:50:31 +01:00
Joakim Hove
21b1b2318d Merge pull request #943 from jokva/write-init-and-egrid-rename
Rename to EclipseWriter.writeInitial
2016-11-22 12:59:51 +01:00
Jørgen Kvalsvik
ffc3de0f6e Rename to EclipseWriter.writeInitial 2016-11-22 09:52:41 +01:00
Andreas Lauser
d989c1e2fc Merge remote-tracking branch 'origin/master' into frankenstein
* origin/master:
  Do not throw for unrecognized file when merging log files.
  Do not populate cellData but issue a warning in parallel.
  Removed ternary operator in inline initialization.
  Correctly mark transfer of ownership for ouptut writer
  Indent nested #if
  Remove Solution.sdc assignment
  Cater variable name change in BCRSMatrix of DUNE 2.5
  Fix using local active cells for writing eclipse files in parallel.
  add restart test for SPE1CASE2_ACTNUM
  rename the 'flow' binary to 'flow_legacy' and set a symbolic link
  Added ctest for restart files
2016-11-11 18:29:46 +01:00
Markus Blatt
3eba3353d0 Correctly mark transfer of ownership for ouptut writer 2016-11-10 13:04:30 +01:00
Markus Blatt
077dc02481 Fix using local active cells for writing eclipse files in parallel.
Previously, the eclipseGrid used by EclipseWriter was constructed from
the one in the EclipseState with the current CpGrid. Unfortunately the
latter was the distributed version resembling only the local part that
the processor works on. Therefore the information about the active cells
was wrong when writing results (which raised an exception in the writer).

With this commit we construct the EclipseWriter before distributing the grid
and use this writer later on in the OutputWriter.
2016-11-07 19:35:53 +01:00
Andreas Lauser
414dda420a Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v9
* origin/master:
  dune.module: change version to 2017.04-pre
  FlowMain: make sure to always print exception messages to the terminal
2016-11-04 13:56:44 +01:00
Andreas Lauser
edbfdb5ef3 FlowMain: make sure to always print exception messages to the terminal
this patch only uses OpmLog if it is set up properly, else it uses
std::cout. the reason why this is needed is that there's a
chicken-and-egg problem: exceptions which are thrown before the
logging system has been initialized -- most prominently while parsing
the deck -- cause the simulator to silently abort without any user
notification which can be very confusing. On the other hand,
initializing the logging system requires a fully initialized
EclipseState object, i.e. currently to initialze the logging system
the deck must be parsed and in order to print the exceptions thrown
while parsing the deck one needs the logging system.

v2: only prevent using the logging system if has not been set
up. thanks to [at]blattms for the suggestion!
2016-11-03 17:22:51 +01:00
Robert Kloefkorn
4ff23191eb [feature] make flow and flow_ebos use the same linear solver setup. 2016-11-02 16:41:11 +01:00
Andreas Lauser
ddecdc9dbe Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v7
* origin/master:
  Bugfix: use correct object in sequential model.
  Bugfix: properly handle two-phase cases.
  Bugfix: pass both normal and extra data to output.
  Update well data output integration.
  Adapt to API change in opm-parser.
  Ensure logging only on first rank.
  Add isIORank_ member to avoid repeated calls.
  Rename isRankZero() -> isIORank() for consistency.
  Ensure only first-rank logging.
  Add isRankZero() utility.
  Bugfix: missing return.
  do not set limits for prt log and set correct value for Note.
  correct function call order and add whitespace.
  supprot MESSAGES default vaule.
  wellToState reads new opm-output data exchange
  Write control to data::Wells. Missing ability to restore.
  Avoid using buggy wellstate api
  Stop report early if there are no wells
  Update to interface change in opm-output
2016-10-28 09:22:38 +02:00
Atgeirr Flø Rasmussen
1edbc9f238 Merge pull request #866 from atgeirr/convergence-failure-not-error
Convergence failure classification, fix for parallel logging
2016-10-21 12:49:07 +02:00
Atgeirr Flø Rasmussen
2d15c1ffec Adapt to API change in opm-parser. 2016-10-21 11:21:02 +02:00
Atgeirr Flø Rasmussen
3a6353a455 Merge pull request #820 from qilicun/support-MESSAGES
support MESSAGES keyword.
2016-10-21 11:04:39 +02:00
Atgeirr Flø Rasmussen
d527b6862a Ensure logging only on first rank. 2016-10-20 22:47:30 +02:00
Andreas Lauser
6754bad00b Merge branch 'master' into frankenstein
* master:
  Update to shared_ptr-less parser interface.
2016-10-20 20:16:42 +02:00
Liu Ming
7c51158ec4 do not set limits for prt log and set correct value for Note. 2016-10-20 21:00:51 +08:00
Jørgen Kvalsvik
1c6a4b34da Update to shared_ptr-less parser interface. 2016-10-20 14:08:04 +02:00
Liu Ming
0695555a77 correct function call order and add whitespace. 2016-10-20 16:27:46 +08:00
Liu Ming
164f74c93c supprot MESSAGES default vaule. 2016-10-20 15:54:02 +08:00
Andreas Lauser
44d3d5b536 Merge branch 'master' into frankenstein
* master: (42 commits)
  Let only one rank write to step_timing.txt
  Do not refer users to issue tracker if multiple procs log.
  Remove unused variable.
  Use vector instead of VLA, also add missing includes.
  changed: bundle eigen3 in the original tarball for debian
  update redhat6 packaging
  Bugfix parallel computation of weighted pressure etc.
  Fixed uninitialized bug, and added logging/comment
  Removed superfluous std::move
  Refactoring
  Initial version of summary data
  Do not store collective communication in the wells object.
  Make sure that updateWellControls is called on each process.
  Make WellSwitchingLogger work with DUNE 2.3
  Schedule::getGroup returns reference, not pointer
  Removed warning in WellSwitchLogger::calculateMessageSize
  Correctly initialize MPI for multisegment wells test
  Changed some names in WellSwitchingLogger
  Use speaking name for bool in getCellData
  Whitespace and other formatting changes
  ...
2016-10-14 19:31:56 +02:00
Markus Blatt
ab05cb66d9 Whitespace and other formatting changes 2016-10-05 11:45:51 +02:00
Markus Blatt
bfb7ccfa8b Moved ParallelFileMerger to its own file. 2016-10-05 11:39:06 +02:00
Markus Blatt
c0ca9afe5a Prevent loss of log messages in parallel by merging multiple files.
This completes f94459d5ed
Each process with rank >0 will use .<deckname>.<rank>.DEBUG, and
<deckname>-<rank>.PRT for logging (instead of <file>.<rank>as before.
After the simulator has finished running we will append the content
of those files to the usual log files. If these files have a non-zero
size we will omit a warning as this should not happen if logging is
done right.
2016-10-05 10:33:15 +02:00
Markus Blatt
07318edfa1 Added a parallel aware logger for switching wells.
It will collect all the switches. Afterwards they are collect on
the root process and logged there.

This commit includes a small test program.
2016-10-05 10:33:15 +02:00
Markus Blatt
02e8211067 Use <FILE>.<rank for nonzero ranks to capture fallout.
These files will be empty unless we fail to to log messages
only on the root process. Currently that is the case for
the messages about switching the well controls.
2016-10-05 10:33:15 +02:00
Markus Blatt
fd52d0e223 Print "Reading parameters" only once in parallel. 2016-10-05 10:33:15 +02:00
Markus Blatt
c5fd95affe Stop creating file outside output_dir for parallel runs.
Only the root process did set the output_dir correctly. Others
used the default. Therefore all messages logged by non-root
processes did end up in the current directory even if an
output_dir was passed to flow_mpi.
2016-10-05 10:33:15 +02:00
Markus Blatt
61a28cf12f Disable relperm diagnosis for non-root processes 2016-10-05 10:33:15 +02:00
Markus Blatt
81a617e892 Switch off output in EclipsePRTLog for non-root processes. 2016-10-05 10:33:15 +02:00
Markus Blatt
70d4dedfd2 Omit deck check warnings on non-root processes 2016-10-05 10:33:14 +02:00
Markus Blatt
2a6494cfcd Only extract parser message on process 0 2016-10-05 10:33:14 +02:00
Andreas Lauser
36b00ba570 Merge remote-tracking branch 'origin/master' into frankenstein_merge_master 2016-09-28 21:20:47 +02:00
Andreas Lauser
4ecd6ca64a fix some serious screw-ups
almost all of them were caused by recent changes in the master
branch:

- there were methods added which depend on the types `V` and
`DataBlock`. these do not make much sense in the context of the
frankenstein simulator. Also, these types are defined globally for the
whole Opm namespace in `BlackoilModelBase_impl.hpp` (which should be
prosecuted as a fellony IMO)! Besides this, their names are useless;
'V' is the letter which comes after `U` in the alphabet and when it
comes to computers basically everything can be seen as a chunk of data
(i.e., a `DataBlock`).
- it seems like the new and shiny dense-AD based well model was never
compiled with assertations enabled, at least some asserts referenced
non-existing variables.
- the recent output-related API changes were pretty unfortunate
because they had the effect of tying the (sub-optimal, IMO) internal
structure of the model even closer to the output code: as far as I can
see, `rq` does only make sense if the model works *exactly* like
BlackoilModelBase and friends. (for flow_ebos, this could be
replicated, but first it would be another unnecessary conversion step
and second, most of the quantities in `rq` are of type `ADB` and much
of the "frankenstein" excercise is devoted to getting rid of these.) I
thus reverted back to an old version of the output code and created a
`frankenstein` branch in my personal `opm-output` github fork.
2016-09-13 23:58:59 +02:00
Markus Blatt
33edf62a78 Use set of names of defunct wells from load balancer for parallel WellManager.
Instead of the WellsManager guessing which wells are handled by other
processes we now use tha ouput of the load balancer to compute wells
that are handled by other processes.

With the previous approach it was not possible to calculate this information
correctly. Wells with only one completion next to the border of the
processes' partition were represented on multiple processes. In additition
wells that the eclipse schedule section defined with completions on non-active
cells in sequential runs were not at all calculated in parallel runs.

With the new approach the CpGrid::loaBalance routine returns the set names of
wells that are not handled by this process when setting up the simulation. This
information is then used throughout the simulation.
2016-09-13 10:58:26 +02:00
Joakim Hove
ff333b4112 Updated OutputWriter signature. 2016-09-08 10:18:52 +02:00
Atgeirr Flø Rasmussen
98ec930a25 Merge pull request #770 from blattms/call-writeInit-before-distributing-grid
Call writeInit with global grid and properties.
2016-09-07 11:29:19 +02:00
Atgeirr Flø Rasmussen
61af1fa53d Remove unused nnc arg from BlackoilOutputWriter constructor. 2016-08-30 13:18:06 +02:00
Jørgen Kvalsvik
ab95133d1c Match RestartConfig interface in opm-parser 2016-08-11 09:59:07 +02:00
Pål Grønås Drange
bd58792714 TransMult, Init, and SimConfig are references, applyModifierDeck takes reference, and EclipseState constructor too 2016-08-08 10:07:09 +02:00
Markus Blatt
d6aea1663d Call writeInit with global grid and properties.
Previously, the call was made after the grid was distributed.
This means that each process wrote it, but only with his cells
active which was just a part of the whole domain.

With this commit we make the writeInit call before distributing the
grid and make sure that only one process calls it.
2016-07-22 17:37:14 +02:00