Commit Graph

4299 Commits

Author SHA1 Message Date
Andreas Lauser
6bc8080722 Merge remote-tracking branch 'totto82/frankenstein_mod' into frankenstein_merge_master
* totto82/frankenstein_mod:
  Avoid copying of matrices inside StandardWellsDense.
2016-09-15 11:48:24 +02:00
babrodtk
537c5d71b8 Added missing code for polymer model for output 2016-09-15 11:40:36 +02:00
Atgeirr Flø Rasmussen
bbd2575e00 Merge pull request #825 from babrodtk/bugfix_output_writer
Bugfix for output writer
2016-09-15 09:57:27 +02:00
Tor Harald Sandve
a84adf05a5 Merge pull request #2 from dr-robertk/frankenstein_mod
Avoid copying of matrices inside StandardWellsDense.
2016-09-14 16:03:19 +02:00
babrodtk
f7e3185546 Fixed bug where rsSat/rvSat were never set 2016-09-14 15:41:47 +02:00
Andreas Lauser
5278b88e2e Merge remote-tracking branch 'remotes/totto82/frankenstein_mod' into frankenstein_merge_master
* remotes/totto82/frankenstein_mod:
  Fix seg-fault for cases without wells
  Some micro performance improvments and cleaning
  Add THP support in the denseAD well model
  Only solve the linear system when it is not converged.
  Revert changes to NewtonIterationBlackoilInterleaved.cpp
  add and use class wellModelMatrixAdapter
  Remove unused code and remove Eigen vectors
  New updateState
  Some cleaning and small changes
2016-09-14 15:03:17 +02:00
Markus Blatt
8c18bfcc50 Added missing include for unordered_set.
This is what the travis build
https://travis-ci.org/OPM/opm-simulators/builds/159576974 complained about.
2016-09-14 14:41:27 +02:00
Kristian Hole-Drabløs
af2a59d1b8 Added more cases/models to ctest 2016-09-14 13:12:58 +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
Robert Kloefkorn
a9663447c2 Avoid copying of matrices inside StandardWellsDense. 2016-09-13 23:07:38 +02:00
Markus Blatt
63d785d7ba Work around explicit empty constructor of unordered_set in C++11
With GCC version (Debian 4.9.2-10) 4.9.2 we get the following error
when compiling with -std=c++11 (default for dune 2.4):

converting to ‘const std::unordered_set<std::basic_string<char> >’ from initializer list would use explicit constructor
2016-09-13 10:58:26 +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
Andreas Lauser
62de30d9b2 Merge remote-tracking branch 'origin/master' into frankenstein 2016-09-12 23:18:02 +02:00
Tor Harald Sandve
cd749b3452 Fix seg-fault for cases without wells 2016-09-09 15:17:34 +02:00
Tor Harald Sandve
49f3306abe Some micro performance improvments and cleaning
-- The jacobian and residual in the reservoir is updated directly
-- The sparsity pattern are provided to the well matrices.
-- Some cleaning in updateWellState()
2016-09-09 14:58:54 +02:00
Tor Harald Sandve
3d86cc3668 Add THP support in the denseAD well model
Tested on a set of modified SPE1DECK with VFP for injectors and
producers
2016-09-09 11:33:34 +02:00
Bård Skaflestad
fbc47cc186 Merge pull request #815 from bska/omit-empty-kr
phase-KR: Don't emit empty property arrays

This is a self-merge.
2016-09-08 19:32:36 +02:00
Bård Skaflestad
dccf75d806 Initialise fields in declaration order 2016-09-08 16:28:43 +02:00
Bård Skaflestad
964c0142cc phase-KR: Don't emit empty property arrays
Check that we actually have data values for relative permeability
properties {WAT,OIL,GAS}KR before attempting to output the arrays.

While here, also correct an apparent misprint in the criterion for
whether or not to activate relperm output.  We should check
'liquid_active' and 'vapour_active', not 'aqua_active', when
considering OILKR and GASKR properties respectively.
2016-09-08 16:28:43 +02:00
Joakim Hove
67db2a5e5b Merge pull request #814 from joakim-hove/create-eclipse-grid
Updated OutputWriter signature.
2016-09-08 16:26:20 +02:00
Tor Harald Sandve
0c21f2e3de Only solve the linear system when it is not converged. 2016-09-08 11:24:24 +02:00
Tor Harald Sandve
902eff18a5 Revert changes to NewtonIterationBlackoilInterleaved.cpp
Some tempory changes is removed in
NewtonIterationBlackoilInterleaved.cpp to make flow run again.
2016-09-08 11:23:41 +02:00
Joakim Hove
ff333b4112 Updated OutputWriter signature. 2016-09-08 10:18:52 +02:00
Atgeirr Flø Rasmussen
6962eb070c Merge pull request #813 from qilicun/fix-segfault-in-fip
Remove SolutionState dependency in FIP calculation.
2016-09-08 10:15:08 +02:00
Atgeirr Flø Rasmussen
ef3926da9d Merge pull request #805 from babrodtk/output_writer_celldata
Output writer cell data
2016-09-08 09:55:09 +02:00
Liu Ming
e0fad32695 remove SolutionState dependency in FIP calculation. 2016-09-08 09:41:02 +08:00
Andreas Lauser
e21327dced use the PORV 3D property from opm-parser to determine the pore volume
this simplifies handling the pore volume by centralising the code,
i.e., moving it into opm-parser. (in particular, it makes the MINPV
handling consistent with the active cells which get removed by the
grid.) If eclipse turns out to be inconsistent here, we need to deal
with atrocities like the MULTREGP keyword on a case-by-case basis,
i.e., it would considerably uglify the code and be an additional
maintainance burden.

note that besides supporting of MULTREGP, the code should now also
handle explicitly setting the pore volume via the PORV keyword
correctly....
2016-09-07 15:04:30 +02:00
babrodtk
f54db0f7f6 Removed need for extra constructor in CellData 2016-09-07 14:59:16 +02:00
babrodtk
17d171fae6 Fixed erroneous unit for b 2016-09-07 14:59:16 +02:00
babrodtk
332d1bb318 Removed special case handling of ALLPROPS keyword 2016-09-07 14:59:16 +02:00
babrodtk
0b24dffe05 Fixed unit for bw/bo/bg in output 2016-09-07 14:59:16 +02:00
babrodtk
eb56ecab12 Refactored the logic of writing without cell properties 2016-09-07 14:59:16 +02:00
babrodtk
739976535f Added rs and rv output capabilities 2016-09-07 14:55:53 +02:00
babrodtk
40b2b95d87 Extended the support for keywords for restart file output 2016-09-07 14:55:53 +02:00
babrodtk
35bed24465 Initial version for outputting cell data 2016-09-07 14:55:53 +02:00
Tor Harald Sandve
746f9a56cc add and use class wellModelMatrixAdapter
The well contribution is substracted in the MatrixAdapter
i.e. Ax - BinvDCx
2016-09-07 14:37:48 +02:00
Atgeirr Flø Rasmussen
4d2d004c43 Merge pull request #769 from blattms/fix-step-used-by-parallel-io
Fix step number used by parallel io and OutputWriter::writeTimeStep
2016-09-07 14:09:56 +02:00
Atgeirr Flø Rasmussen
ff09dbef71 Merge pull request #811 from atgeirr/remove-unneeded-include
Remove unused include.
2016-09-07 13:54:23 +02:00
Atgeirr Flø Rasmussen
be8f8b479f Merge pull request #773 from blattms/honor-unordered_map-in-simulationdatacontainer-when-gathering-data
Do not assume ordering in an unordered_map when gathering data.
2016-09-07 13:52:08 +02:00
Atgeirr Flø Rasmussen
68a0d3796b Remove unused include. 2016-09-07 12:53:19 +02:00
Tor Harald Sandve
a4dcc4b13d Remove unused code and remove Eigen vectors
-- isRS and phaseCondition is removed and hydroCarbonState in the state
is used instead
-- input of pressurediffs to computeHydrostaticCorrection() is changed
to double from Vector in WellHelpers.hpp
2016-09-07 12:25:54 +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
Joakim Hove
d7e054cbfa Merge pull request #804 from joakim-hove/remove-shared-ptr
shared_ptr<EclipseGrid> -> const EclipseGrid&
2016-09-07 11:12:29 +02:00
Tor Harald Sandve
83ff3271af New updateState
-- a new updateState is implemented based on dune vectors
-- the old is kept for comparision in this PR
-- the updateState is not identical.
Tested on spe1, spe9 and norne and it improves the convergence compares
to the old one.
2016-09-07 10:37:42 +02:00
Atgeirr Flø Rasmussen
f78155fe23 Merge pull request #808 from qilicun/fix-pav
Correct the formulation for PAV calculations.
2016-09-07 08:52:18 +02:00
Liu Ming
4b88d4edd1 use PV weighted pressure when HCPV is zero. 2016-09-07 14:00:30 +08:00
Tor Harald Sandve
952ccf8338 Some cleaning and small changes
- unused code is removed
- the scaled normed is stored in residual_norm_history for usage in
stabilized newton
- number of linear iterations is outputted
- linear solver tolerance is reduced to 0.01
- make compute wellFlux local
- rewrite ADB::V to std::vector<double>
2016-09-06 13:52:43 +02:00
Liu Ming
d5b4194a0e format fIP output for field units and check the phase is present or not. 2016-09-06 09:33:41 +08:00
Liu Ming
170607e60c check if the phase is present. 2016-09-05 16:14:27 +08:00
Liu Ming
1943978dbd update PAV formulation. 2016-09-05 10:38:57 +08:00