Commit Graph

1998 Commits

Author SHA1 Message Date
Andreas Lauser
d76bf11902 adapt to the removal of the unit system of opm-core
the one which is in opm-parser is now a drop-in replacement.
2016-10-10 17:00:09 +02:00
Joakim Hove
39be053aef Using data::Solution for transfer of 3D data. 2016-10-10 10:52:51 +02:00
Atgeirr Flø Rasmussen
7e0cb99bad Merge pull request #839 from babrodtk/summary_data
Summary data output
2016-10-10 10:00:17 +02:00
babrodtk
68f1cff930 Bugfix parallel computation of weighted pressure etc. 2016-10-07 15:11:59 +02:00
babrodtk
4f696809b3 Removed superfluous std::move 2016-10-07 15:11:59 +02:00
babrodtk
2d8e612d01 Refactoring 2016-10-07 15:11:59 +02:00
babrodtk
b774982878 Initial version of summary data 2016-10-07 15:06:53 +02:00
Atgeirr Flø Rasmussen
f3ac93a8c8 Merge pull request #853 from blattms/fix-PR-842
Make WellSwitchingLogger work with DUNE 2.3
2016-10-07 14:50:18 +02:00
Andreas Lauser
43601b98af flow_ebos: only invalidate the intensive quantities after an iteration if necessary
"if necessary" means that the solution has changed (which is the case
iff the linear solver needs to do some work...
2016-10-07 11:46:08 +02:00
Markus Blatt
828f118801 Do not store collective communication in the wells object.
Instead of this we rely on the default constructor of
WellSwitchingLogger. This finally fixes the compile
issues with DUNE 2.3.
2016-10-07 10:46:54 +02:00
Markus Blatt
3e6b1949ea Make sure that updateWellControls is called on each process.
The new WellSwitchingLogger within updateWellControls uses
collective communication with all processes. Therefore all
of them need to enter the function as other flow_mpi will deadlock.
Therefore this commit calls the method even with non local wells
active.
2016-10-05 23:53:43 +02:00
Jørgen Kvalsvik
13a4364d55 Schedule::getGroup returns reference, not pointer 2016-10-05 15:32:24 +02:00
Markus Blatt
80fb5b66d7 Use speaking name for bool in getCellData 2016-10-05 11:45:59 +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
12b3456f3b Fixup 46e22f515 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
6d0d063413 Omit "Unhandled keyword" messages on non-root processes 2016-10-05 10:33:14 +02:00
Markus Blatt
d4b818c948 Omit fluid in place messages on non-root process 2016-10-05 10:33:14 +02:00
Markus Blatt
fd24070931 Omit "well converge" on non-root process 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
Tor Harald Sandve
22f1df612b Allow crossflow if all perforations is crossflowing 2016-10-03 09:54:28 +02:00
Atgeirr Flø Rasmussen
4c0b21d2f8 Merge pull request #843 from totto82/start_using_TUNING
Add an option for using values from TUNING in the timestepping.
2016-09-30 13:03:07 +02:00
Tor Harald Sandve
bef33ed00c Add an option for using values from TUNING in the timestepping.
if the paramter use_TUNING is set to true, the adaptive timestepper will
initalize with relevant values from the TUNING keywords.
2016-09-30 10:28:34 +02:00
Tor Harald Sandve
09a86747b5 Feed solvent wellrates to data::wells for summary output 2016-09-30 09:49:16 +02:00
Tor Harald Sandve
8e2657ce4d Some tuning in the Appleyard 2016-09-30 08:57:52 +02:00
Tor Harald Sandve
69811e9585 Use correct pvtregions in rsSat and rvSat calculations 2016-09-30 08:57:52 +02:00
Tor Harald Sandve
84c33e0e96 Add trivial well equation when there is no flow
Fixes case when all perforations in a well are crossflowing while
crossflow is not allowed
2016-09-30 08:57:52 +02:00
Tor Harald Sandve
07339be80e BUGFIX. Make frankenstein compile and run
- remove outout of initial timestep
- pass phaseUsage to report(...) in WellStateFullyImplicitBlackoil.hpp
2016-09-30 08:57:52 +02:00
Andreas Lauser
6722c67534 Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v2 2016-09-29 18:38:39 +02:00
Andreas Lauser
fa626a543b make it work with the latest master branches
it broke because the Compat.hpp header was removed today.
2016-09-29 18:24:54 +02:00
Atgeirr Flø Rasmussen
4a82ac386b Merge pull request #844 from blattms/report-step-iterations-in-step_timing.txt
Correct number of (nonlineat) iterations/linearizations in step_timing.txt
2016-09-29 17:44:37 +02:00
Atgeirr Flø Rasmussen
4a6fcde45e Merge pull request #837 from totto82/output_solvent2
Output solvent saturation
2016-09-29 17:32:51 +02:00
Andreas Lauser
36b00ba570 Merge remote-tracking branch 'origin/master' into frankenstein_merge_master 2016-09-28 21:20:47 +02:00
Markus Blatt
0bdab6e579 Correct number of (nonlineat) iterations/linearizations in step_timing.txt
Previously, for all step zero was reported. With this commit
we set these numbers in the SimulatorReport and now they end
up correctly in step_timings.txt
2016-09-28 12:05:52 +02:00
Tor Harald Sandve
45eae4bbc8 Output solvent saturation
-- Compat.hpp is moved to opm-simulators
-- add SSOL if solvent is present
2016-09-27 08:40:04 +02:00
Atgeirr Flø Rasmussen
08c5e31265 Do not move when it would disable copy elision. 2016-09-26 09:33:13 +02:00
Tor Harald Sandve
7f91eade7e Move Compdat.hpp from opm-core to opm-simulators 2016-09-23 13:03:12 +02:00
Arne Morten Kvarving
78049a174e fix output of gas phase
fixes a regression caused by 65b512e903
2016-09-21 10:46:50 +02:00
Anders Matheson
65b512e903 Use PhaseUsage to determine output phases 2016-09-20 09:44:17 +02:00
Anders Matheson
0ac0c97612 Output rates for present phases 2016-09-19 16:43:41 +02:00
Atgeirr Flø Rasmussen
9d991292be Merge pull request #832 from totto82/fix_outputRSsat_solvent
BUGFIX. Store RsSat and RvSat in simulator container also in the Solvent model
2016-09-19 13:47:03 +02:00
Atgeirr Flø Rasmussen
06e41bdaca Merge pull request #819 from blattms/use-defunct-wells-from-loadbalancer-for-wellsmanager
Use names of defunct wells from loadbalancer for wellsmanager
2016-09-19 13:42:42 +02:00
Tor Harald Sandve
cb5238f5dc BUGFIX
Updated solvent model after #825
Store rsSat and rvSat in simulator container for outut.
2016-09-19 11:10:14 +02:00
Atgeirr Flø Rasmussen
51237cb960 Merge pull request #829 from blattms/parallelize-computeFluidInPlace
Correctly parallelize computeFluidInPlace
2016-09-19 09:31:05 +02:00
Atgeirr Flø Rasmussen
48f151bfca Merge pull request #806 from andlaus/implement_multregp
use the PORV 3D property from opm-parser to determine the pore volume
2016-09-16 09:46:22 +02:00
babrodtk
5b75649a07 Simplified arguments to computeWaterShearVelocityFaces 2016-09-15 15:56:06 +02:00
Markus Blatt
2c70f05d6b Correctly parallelize computeFluidInPlace.
Its first implementation computed wrong results in parallel. With this commit
we noe have completely parallelized the computations and the results seem correct
for parallel runs with norne.
2016-09-15 15:43:08 +02:00
Markus Blatt
e15f9bfb9c Save space in computeFluidAndSpace.
Both hcpv and res will be used to save only dims elements. As dims
will most likely be much smaller than the number of cells, we only
allocate containers of size dims with this commit.
2016-09-15 15:35:27 +02:00
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
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
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
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
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
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
Atgeirr Flø Rasmussen
983c7d9957 Merge pull request #787 from totto82/fix_minpv_actnum
BUGFIX. Correctly handle ACTNUM in minPvFillProps_()
2016-09-02 15:17:28 +02:00
Markus Blatt
4a6be3d33b Fix step number used to create global well state in parallel output.
When running in parallel a well state object with the well information
of the whole grid needs to constructed to gather the information from all
processes. Previously, this was done with the report step exported by the
timer. This was wrong for the following reason:
The output occurs after solving the time step and the timer is already
incremented. This means that we constructed the well state for gathering the
data for the next report step, already. Unfortunately, at that step some
wells that we have computed results for might have been shut. In that case
an exception with message "global state does not contain well ..." was thrown.

This problem occured for Model number 2 and might have been due to shut wells
because of banned cross flow.

With this commit we use the last report step if this is not an initial write
and not a substep.
2016-09-02 14:41:47 +02:00