Commit Graph

46 Commits

Author SHA1 Message Date
Markus Blatt
5a6ace9063 Resort to setting one define for AMG support in the main simulator 2017-05-22 11:34:20 +02:00
Andreas Lauser
c3555a21d2 Merge pull request #1019 from andlaus/flow_ebos-remove-geoprops
flow_ebos: remove the legacy geologic properties object
2017-05-19 18:49:21 +02:00
Rohith Nair
59ec8a1bf5 edit based on comments 2017-05-17 17:46:10 +02:00
Andreas Lauser
48b7d6ea56 improve writing of the INIT file
now, the dune APIs are used whereever possible and the data is
computed for the global grid, i.e. for parallel runs it does not need
to be gathered across the processes anymore. Also, the INIT file is
now only written once instead of twice.

I've verified that the sequential and the parallel INIT files stay
identical for the Norne case and that the INIT file does not change
w.r.t. before this patch.
2017-05-12 15:44:55 +02:00
Andreas Lauser
7cbea4be41 fix a bug in the transmissibility output code
the fact that faces may point into the opposite Cartesian direction
was not considered and these output fields are specified
w.r.t. logically Cartesian cell indices. (not compressed ones!)
2017-05-12 15:43:51 +02:00
Andreas Lauser
adb2715c8d flow_ebos: also write the non-input NNCs to the init file
the corresponding code was shamelessly lifted from the DerivedGeology
class. it has been substantially modified to adapt it to the flow_ebos
specifics, though.
2017-05-12 15:43:51 +02:00
Andreas Lauser
e2e0e3290d flow_ebos: do no longer use the legacy object for geologic properties
it was already almost unused (except for output). Besides making the
overall flow_ebos code leaner because it reduces redundancies, this
patch also implies a small reduduction of memory consumption and a
minor performance improvement. the latter is due to the fact that the
transmissibilities now do not need to be calculated more often than
necessary anymore.
2017-05-12 15:43:51 +02:00
Rohith Nair
b95f4fb6a0 edit 2017-05-09 14:05:01 +02:00
Rohith Nair
94da18514f edit 2017-05-09 14:00:49 +02:00
Rohith Nair
53f2a13eb9 Adds header for .PRT file with the following information
1. Flow binary information
2. host names(s)/ machine names
3. host hardware
4. Operating system
5. User
6. System time and date
2017-05-09 13:58:21 +02:00
Arne Morten Kvarving
3c0cb9e950 adjust for changed ParameterGroup namespacing 2017-04-28 15:36:25 +02:00
Andreas Lauser
5144359ac0 flow_ebos: update banner
since flow_ebos is the new silverback simulator of the opm-simulators
clan, it should itself as "flow"(the old silverback announces itself
as "flow_legacy" already).

Also some people seem to have been confused by the eWoms version and
codename. Since this information only exhibits limited value IMI,
let's remove it here.
2017-04-28 12:52:30 +02:00
Andreas Lauser
ef2a560fb3 flow_ebos: print statistics about failed time steps
the performance summary at the end of a Norne run which are printed by
`flow_ebos` now looks like this on my machine:

```
Total time (seconds):         773.757
Solver time (seconds):        753.349
 Assembly time (seconds):     377.218 (Failed: 23.537; 6.23965%)
 Linear solve time (seconds): 352.022 (Failed: 23.2757; 6.61201%)
 Update time (seconds):       16.3658 (Failed: 1.13149; 6.91375%)
 Output write time (seconds): 22.5991
Overall Well Iterations:      870 (Failed: 35; 4.02299%)
Overall Linearizations:       2098 (Failed: 136; 6.48236%)
Overall Newton Iterations:    1756 (Failed: 136; 7.74487%)
Overall Linear Iterations:    26572 (Failed: 1786; 6.72136%)
```

for the flow_legacy family, nothing changes.
2017-04-11 11:12:11 +02:00
Atgeirr Flø Rasmussen
85e1544553 Use ensureDirectoryExists() instead of boost::filesystem directly.
Motivated by
 - proliferation of identical code
 - need to avoid strange behaviour with "." directory on some boost versions
 - potenial for further refactoring to avoid boost entirely
2017-04-06 12:14:54 +02:00
Atgeirr Flø Rasmussen
f504ca34f4 Merge pull request #1041 from blattms/fix-output_writer-setup
Fix output writer setup
2017-03-17 18:12:52 +01:00
Markus Blatt
13956625b6 Removed duplicate output writer setup.
The cat must have dragged that in during some of the various rebases of this branch.
This introduced a segmentation fault as for the second setup eclIO was already null.
2017-03-17 11:08:55 +01:00
Atgeirr Flø Rasmussen
059367e14d Change default output dir for flow_ebos. 2017-03-16 16:05:33 +01:00
Markus Blatt
0650f9b42e Deactivate gather code when MPI is not available.
In this case some of the used classes do not exist.
2017-03-16 14:52:59 +01:00
Markus Blatt
2f95e33d59 Do not use the equilGrid in Ebos as it is deleted after the constructor.
Instead we create our own global grid representation.
2017-03-16 14:52:59 +01:00
Markus Blatt
fd3e3596a9 Setup output writer and write initial values in parallel correctly.
Before this commit only the solution of process 0 was written.
To fix this we make the equilGrid of Ebos available. It is used
for the output writer. The properties written initially are gathered from
all processes first using the new gather/scatter utility.
2017-03-16 14:52:59 +01:00
Robert Kloefkorn
82658c92d0 Removal of SimulatorFullyImplicitBlackoilOutputEbos.{h,c}pp.
All simulators now use SimulationDataContainer to store intermediate data that
is passed to the output Solution container. This is in cases not the most
efficient way, but it's unified to avoid errors from code duplication.
2017-02-09 16:57:45 +01:00
Andreas Lauser
ec1f136f37 fix the build
and also, do not std::move a unique_ptr. (that's a quite strange
thing, semantically.)
2017-01-27 13:23:32 +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
bc35b753b5 Merge pull request #1003 from blattms/merge-only-created-parallel-files
Only try to merge files from a parallel run if ouptput requested.
2017-01-12 17:00:12 +01:00
Andreas Lauser
7a7ebc010f flow_ebos: remove the redundant gravity objects
the canonical source is now the EclProblem object.

v2: don't change the API of the DerivedGeology class. thanks to
    [at]atgeirr for noticing that this can be avoided.
2017-01-12 11:20:02 +01:00
Andreas Lauser
8c76bf5b9b FlowMainEbos: remove the redundant pointer to the MaterialLawManager 2017-01-11 17:16:46 +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
Andreas Lauser
ef731672c9 remove the BlackoilPropsAdInterface abstraction layer
instead, directly use BlackoilPropsAdFromDeck.
2017-01-02 13:19:23 +01:00
Andreas Lauser
2761df3791 FlowMainEbos: fix the output of the initial condition
I probably did not see this warning when testing f7910af7d7 because
I'm currently flooded by deprecation warnings stemming from
Eigen. (these warnings are caused because I use Ubuntu 16.04 and an
old version of Eigen is cloned by the build system that is not system
installed.)
2016-12-15 09:57:53 +01:00
Andreas Lauser
3fb55f06e5 flow*: reset the locale settings on startup 2016-12-08 12:17:36 +01:00
Robert Kloefkorn
bf18ee7fb9 fix the merge fallout 2016-12-06 20:05:24 +01:00
Andreas Lauser
ef15d76831 Merge commit 'refs/pull/947/head' of https://github.com/OPM/opm-simulators into no_opm-parser_pointers
* https://github.com/OPM/opm-simulators:
  [bugfix] add defunct_well_names to BlackoilModelEbos.
  [bugfix] fix ownerMask for parallel FIP code.
  flow_ebos: tell the ebos in ourselves to not handle SWATINIT
  [bugfix] Make initialization work in parallel for flow_ebos.
  [bugfix] make flow_ebos work when no wells are present.
  flow_ebos: only instantiate the grid once
2016-12-06 19:43:47 +01:00
Andreas Lauser
f7910af7d7 flow_ebos: do not use (smart) pointers for opm-parser objects anymore
this patch also includes code to make FlowMainEbos more autonomous
(i.e. it does not derive from FlowMainBase anymore). this allows more
flexibility how and what stuff gets created.
2016-12-05 20:11:43 +01:00
Robert Kloefkorn
42ab4d133f [bugfix] add defunct_well_names to BlackoilModelEbos. 2016-12-02 11:13:06 +01:00
Robert Kloefkorn
c5ca9649d7 [bugfix] Make initialization work in parallel for flow_ebos. 2016-12-01 16:50:31 +01:00
Andreas Lauser
5ebed2f500 flow_ebos: only instantiate the grid once
it now uses the grid object which gets created by ebos for everything
which should make the parallelization efforts easier. I also tried to
cut back the use of the legacy property objects (i.e., for the fluid,
geologic and rock properties), but this effort ran aground because of
the initialization and output code. (also, if those two were fixed,
there would probably be issues with the Newton update.)

I ran Norne with this and there did not seem to be any notable
performance regressions or benefits.
2016-12-01 16:50:06 +01:00
Andreas Lauser
e84de929cf flow_ebos: alter the startup message
... to make apparent from the output which simulator was used.
2016-11-14 14:18:11 +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
6754bad00b Merge branch 'master' into frankenstein
* master:
  Update to shared_ptr-less parser interface.
2016-10-20 20:16:42 +02:00
Tor Harald Sandve
cd76816ea5 Stay in sync with changes in restartWriter in the eclipseState 2016-08-19 10:30:49 +02:00
Andreas Lauser
3e8792b9cc some output related fixes
there was a screw-up with the output directory (to set it you need to
modify the EclipseState by means of the IOConfig object? WTF?) and it
seems like the FlowMain.hpp was modified since FlowMainEbos.hpp was
added so there was some terminal output missing.
2016-08-14 21:44:47 +02:00
Andreas Lauser
92eefb4718 flow_ebos: make the ebos simulator less verbose 2016-08-09 18:38:23 +02:00
Andreas Lauser
626d3e1da5 flow_ebos: only instantiate a single deck and a single EclipseState 2016-08-09 18:38:23 +02:00
Andreas Lauser
17c1e1083e only instanciate the grid once
i.e., pass through the one which is created by ebos...
2016-08-09 18:38:23 +02:00
Andreas Lauser
3027e1f39d flow_ebos: do no longer use the generic FlowMain class
this will allow to boil the code down.
2016-08-09 18:38:23 +02:00