Commit Graph

153 Commits

Author SHA1 Message Date
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
Liu Ming
daf1eb9e74 use const reference instead of shared_prt. 2016-07-08 14:52:37 +08:00
Liu Ming
77fedce11e remove unused argument. 2016-07-08 08:19:03 +08:00
Liu Ming
1b5b112031 call checkDeck() in FlowMain instead of checkKeywords(). 2016-07-07 15:38:03 +08:00
Liu Ming
064f512893 Diagnostics keywords that not supported by flow. 2016-07-07 10:38:29 +08:00
Joakim Hove
e262d0da68 Renamed writeInit -> writeInitAndEgrid( ) 2016-07-01 12:26:25 +02:00
Atgeirr Flø Rasmussen
c7e6070d31 Correctly override NOSIM. 2016-06-30 15:30:49 +02:00
Joakim Hove
09f22f370a Will look for param: 'nosim' and override deck. 2016-06-29 08:03:38 +02:00
Atgeirr Flø Rasmussen
c1e5a64329 Merge pull request #712 from totto82/fix_2p_equil_init
Allow for 2 phase initialization using EQUIL
2016-06-24 14:42:54 +02:00
Atgeirr Flø Rasmussen
f1af4f945c Make variable const. 2016-06-17 11:48:04 +02:00
Atgeirr Flø Rasmussen
d29355d17d Remove unneeded (implicit) template argument. 2016-06-17 11:39:00 +02:00
Atgeirr Flø Rasmussen
d8390590f8 Refine setting of (linear) solver_approach.
Ensure that the parameter is printed also if defaulted.
2016-06-17 11:00:56 +02:00
Jørgen Kvalsvik
dfac3adaea Pass NNC to OutputWriter constructor
Keep up with an interface change in opm-output.
2016-06-16 13:34:29 +02:00
Liu Ming
49fbf5e493 document function and switch implementation. 2016-06-16 14:02:34 +08:00
Liu Ming
8224e7cef9 switch function calling order. 2016-06-16 09:48:39 +08:00
Liu Ming
936cd8dc33 Add separate function for setup logging. 2016-06-15 15:24:05 +08:00
Liu Ming
969ce5ca53 add blank line before and after "Reading Parameters" 2016-06-13 13:43:50 +08:00
Joakim Hove
dd5d9b34a2 Merge pull request #688 from jokva/refactor-output-restart
Breaking opm-core dependency in opm-output; new summary implementation
2016-06-10 13:15:46 +02:00
Liu Ming
8f04300ce3 use default prefix. 2016-06-10 09:27:49 +02:00
Tor Harald Sandve
d1d3b86299 Allow for 2 phase initialization using EQUIL 2016-06-08 09:22:52 +02:00
Liu Ming
7ca182f962 change Prtinfo to Note. 2016-06-08 09:18:10 +02:00
Liu Ming
b2c126f7c2 Support new message type: Prtinfo 2016-06-07 14:11:24 +02:00
Atgeirr Flø Rasmussen
50e8c5dbd8 Merge pull request #708 from totto82/fix_hydrocarbonstate
Adds has_disgas and has_vapoil flags to hydrocarbonstate initialization
2016-06-07 11:38:27 +02:00
Jørgen Kvalsvik
71560b5fb2 BlackoilOutputWriter rewritten to use opm-output
Changes to BlackoilOutputWriter as mandated by the split and rewrite of
opm-output. Notable changes:

* BlackoilOutputWriter is no longer a child class of OutputWriter.
* Minor interface changes; writeTimeStep requires a Wells pointer
* restore requires a Wells* pointer
* VTK/Matlab support rewrites; no longer inherits OutputWriter
* WellStateFullyImplicitBlackoil::report added, to write its data to a
  opm-output understood format

Relies on utility/Compat.hpp for quick conversion to the opm-output
defined formats.
2016-06-07 10:15:07 +02:00
Tor Harald Sandve
d035881a0a Adds has_disgas and has_vapoil flags to hydrocarbonstate initialization
Gas saturation must be used as primalvariable if DISGAS and VAPOIL is
not used.
2016-06-07 08:23:47 +02:00
Liu Ming
db1e0fa397 write all the messages into debug file. 2016-06-06 15:39:10 +02:00
Liu Ming
865577742f write debug information into a separate file. 2016-06-06 12:20:41 +02:00
Atgeirr Flø Rasmussen
0f290e3f6e Separate non-neighbour and non-cartesian connections.
The non-cartesian connections are required by the output facilities,
while the truly non-neighbour connections (meaning those not in the grid)
should be used by all other code.
2016-05-24 11:54:17 +02:00
Atgeirr Flø Rasmussen
bd774ed06c Merge pull request #679 from qilicun/log_simulation_messages
write simulation details to log file.
2016-05-19 15:09:39 +02:00
Pål Grønås Drange
2620dda8c3 Moved NNC to GeoProps, populating NNC at update
* FlowMain now gets NNC by `geoprops_->nnc()`
* Refactored update()
* Moved big chunk of unused code to new private method pinchProcess_
* Reordered logic to unite the NNC logic
2016-05-19 13:33:09 +02:00
Pål Grønås Drange
973914931d Introducing NNC output
* Compute NNC by face2cell information from a grid
* Pass NNC information to EclipseWriter
* Made NNC respect ECLIPSE input data
* nncStructure() is now exportNncStructure()
2016-05-19 13:23:18 +02:00
Liu Ming
626bde704a fix indentation. 2016-05-19 17:10:13 +08:00
Liu Ming
b134455a4d use OpmLog to control terminal output limits. 2016-05-19 10:51:52 +08:00
Tor Harald Sandve
01c782dbf3 Remove primalvariable_ and use hydroCarbonState instead
the hydrocarbonstate is stored in the reservoir state and
used instead of the primalvariable_
The initial hydrocarbonstate is computed using
initHydroCarbonState(...);
2016-05-13 09:04:48 +02:00
Atgeirr Flø Rasmussen
5fabce7c2c Check if dir already exists before creating.
May be necessary on some platforms for the current dir (".").
2016-05-10 09:22:31 +02:00
Liu Ming
f5a57b8a26 Let OpmLog control output. 2016-05-10 13:51:10 +08:00
Liu Ming
431a21d632 write simulation details to log file. 2016-05-09 13:33:44 +08:00
Atgeirr Flø Rasmussen
8e550bf98c Merge pull request #668 from qilicun/get-messages-from-parser
extract messages from parser.
2016-05-04 10:16:57 +02:00
Pål Grønås Drange
96d073a13e set default output directory to . 2016-05-03 17:38:29 +02:00
Atgeirr Flø Rasmussen
34bc69c257 Move helpers to the detail namespace, layout changes.
The helpers were moved to the bottom of the file for clarity.
Misc. layout and whitespace changes, also fix two minor
errors in comments.
2016-04-29 14:59:18 +02:00
Atgeirr Flø Rasmussen
8ea71e2f15 Use a small lambda to avoid repeating code. 2016-04-29 14:58:44 +02:00
Kjell W. Kongsvik
c7bbd2489e Use output_dir_ member instead of querying the parameters again. 2016-04-29 13:06:36 +02:00
Kjell W. Kongsvik
385c7e74d2 Remove parameters from EclipseWriter constructor 2016-04-29 13:06:36 +02:00
Liu Ming
c23fa6f359 correct spelling. 2016-04-29 14:16:48 +08:00
Liu Ming
f29f087435 extract messages from parser. 2016-04-29 14:13:21 +08:00
Atgeirr Flø Rasmussen
07fec302f4 Cherry-pick Atgeirr's Remove Deck parameter patch
Remove Deck parameter from GridInit constructor.

Possible because we now use the EclipseGrid-taking
overload of processEclipseFormat() for CpGrid.
2016-04-20 15:30:45 +02:00
Atgeirr Flø Rasmussen
be67e0f7a5 Update include file locations. 2016-04-14 11:32:08 +02:00
Pål Grønås Drange
fd9f67ae55 Using API get3DProperties() 2016-04-12 14:47:50 +02:00
Pål Grønås Drange
77fc26475b Using new EclipseState API, made ->s into .s 2016-04-12 14:47:50 +02:00
Atgeirr Flø Rasmussen
cf6ed11f46 Merge pull request #626 from qilicun/adapt-changes
adapt changes to relpermDiagnostics.
2016-04-04 15:04:50 +02:00
Liu Ming
778d318bb3 adapt changes to relpermDiagnostics. 2016-04-01 12:33:02 +08:00
Liu Ming
c314c30e79 if output_dir exists, save PRT file in that folder. 2016-04-01 09:27:39 +08:00
Liu Ming
0108216a68 Merge remote-tracking branch 'remotes/opm/master' into change-PRT-folder 2016-04-01 09:22:59 +08:00
Atgeirr Flø Rasmussen
543c1655b9 Merge pull request #616 from jokva/accept-filename-without-DATA
Flow accepts base name for input Deck
2016-03-31 15:33:23 +02:00
Jørgen Kvalsvik
9df3b2fda9 Flow accepts base name for input Deck
Enables flow to accept a basename for a case by appending a .DATA suffix
should it not be provided. It already supported reading the basename
from a .DATA extension file, but not opening said file by handing it to
the parser.
2016-03-30 08:51:41 +02:00
Atgeirr Flø Rasmussen
463866b523 Create state_ in all cases. 2016-03-29 10:48:36 +02:00
Joakim Hove
18c07d5d66 Replaced SimulatorState -> SimulationDataContainer 2016-03-29 10:48:36 +02:00
chflo
e63bf7aead Changed includes due to OpmLog moved from parser to common 2016-03-17 16:19:07 +01:00
Liu Ming
debf039175 rename ParseMode as ParseContext. 2016-03-17 08:55:52 +08:00
Liu Ming
f0a2959a6d use EclipsePRTLog. 2016-03-15 09:43:18 +08:00
Liu Ming
74fedcc53b Save PRT in the same folder as summary file. 2016-03-07 09:58:17 +08:00
Atgeirr Flø Rasmussen
96938548c1 Merge pull request #603 from atgeirr/remove-unused-parameter
Adapt to removed init() parameter.
2016-03-04 11:22:08 +01:00
Atgeirr Flø Rasmussen
a19607fabc Merge pull request #593 from qilicun/integrate_diagnostics
integrate relperm diagnostics into flow.
2016-03-04 09:49:10 +01:00
Atgeirr Flø Rasmussen
6dd3f0ebb3 Adapt to removed init() parameter. 2016-02-29 11:05:35 +01:00
Jørgen Kvalsvik
19e41bd246 Change Deck access methods/types to references
opm-parser#677 changes the return types for the Deck family of classes.
This patch fixes all broken code from that patch set.

https://github.com/OPM/opm-parser/pull/677
2016-02-19 11:55:19 +01:00
Liu Ming
b15320b659 change diagnostics function call order. 2016-02-19 16:40:45 +08:00
Liu Ming
fe06257f27 rename LOG to PRT file. 2016-02-19 16:23:31 +08:00
Liu Ming
66cde4e052 integrate relperm diagnostics into flow. 2016-02-19 12:45:23 +08:00
Markus Blatt
51b8d9acb1 Fixes the exception for models with threshold pressures.
Since the support for threshold pressures running Norne with
flow_mpi aborted error messages like
```
Program threw an exception: [/home/mblatt/DUNE-test/opm-autodiff/opm/autodiff/BlackoilModelBase_impl.hpp:383] Illegal size of threshold_pressures input ( 153924 ), must be equal to number of faces + nncs ( 78316 + 0 ).
```
This commit now distributes the threshold pressures (if present) just like the rest
of the model properties and Norne does not abort here any more.

Please note:
1. If there are NNCs flow_mpi will abort with an error.
2. We might want to resort to reading and calculating the threshold pressure
  (and maybe other properties) on distributed grids instead of using communication.
2016-02-18 17:00:08 +01:00
chflo
399b4f11c4 restart flow 2016-02-10 14:47:55 +01:00
Jørgen Kvalsvik
087710df7d Fixes includes wrt opm-parser PR-656
Several files stopped compiling due to relying on opm-parser headers doing
includes. From opm-parser PR-656 https://github.com/OPM/opm-parser/pull/656
this assumption is no longer valid.
2016-01-20 15:11:30 +01:00
Atgeirr Flø Rasmussen
dc4274f4a2 Include nncs in threshold pressures.
This was left out when rebasing (it had been introduced in the flow etc. mains).

This also fixes a bug: the nnc thresholds should be inserted at the end of the
vector to be consistent with the operators, not at the beginning.
2015-12-21 11:12:55 +01:00
Atgeirr Flø Rasmussen
78dbb79ea4 Fix compile error for in-class member init.
Reported by Kai Bao.
2015-12-21 11:12:01 +01:00
Atgeirr Flø Rasmussen
39900761a8 Transform FlowMain to use CRTP.
Main content is now in FlowMainBase, which takes Implementation as
a template parameter. FlowMain inherits from FlowMainBase with itself
as Implementation template parameter. Only the createSimulator() method
is implemented in FlowMain (as opposed to in FlowMainBase). All subclasses
must implement createSimulator().
2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
bb49ddbfc4 Improve comments. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4d31a99f5b Moved content of warnIfUnusedParams() into runSimulator(). 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4711fd3dfe Complete refactoring of FlowMain. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
7a536570dc Split out readDeckInput() method. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
4fae28f3d3 Split out setupOutput() method. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
64eef0609a Split out setupParameters() method. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
966ace2c53 Split out printStartupMessage() method. 2015-12-18 13:58:12 +01:00