Commit Graph

3754 Commits

Author SHA1 Message Date
Joakim Hove
8d9090b8f9 Merge pull request #747 from joakim-hove/nosim-param
Will look for param: 'nosim' and override deck.
2016-06-29 16:41:36 +02:00
Joakim Hove
09f22f370a Will look for param: 'nosim' and override deck. 2016-06-29 08:03:38 +02:00
Atgeirr Flø Rasmussen
d2300e79e4 Merge pull request #714 from blattms/fix-euclidian-norm
Fixes the parallel Euclidian product for multiple phases.
2016-06-28 00:25:46 +02:00
Atgeirr Flø Rasmussen
004f14158a Merge pull request #745 from atgeirr/fix-changed-signature
Adapt to changed updateWellControls() signature.
2016-06-27 16:56:21 +02:00
Atgeirr Flø Rasmussen
85fdb20c4e Adapt to changed updateWellControls() signature. 2016-06-27 16:52:45 +02:00
Atgeirr Flø Rasmussen
5e18aab106 Merge pull request #744 from blattms/fix-wells-for-null-pointers
Fix wells for null pointers
2016-06-27 16:24:01 +02:00
Atgeirr Flø Rasmussen
bcf210c03e Merge pull request #711 from blattms/print-all-well-switching-in-parallel
Print all well switching in parallel.
2016-06-27 16:22:02 +02:00
Markus Blatt
b76887ca0b Prevent signed-unsigned-comparison warning. 2016-06-27 15:42:07 +02:00
Markus Blatt
6c69b2fd99 Adds missing parallel reduction to euclidianNorm for multiple components 2016-06-27 15:33:54 +02:00
Markus Blatt
9149c6ad13 Fixes the parallel Euclidian product for multiple phases.
This is used to compute the Euclidian product for the saturations.
Thes are ordered in an interleaved manner (all saturations for cell
with index 0, the all for index 1, ...). Up to now the implementation
assumed a different ordering: blockwise (all saturations for phase 0 first,
then all saturations phase 1, ...).
With this commit the computation uses the right assumption.
2016-06-27 15:33:54 +02:00
Atgeirr Flø Rasmussen
4d834ee371 Merge pull request #742 from blattms/fix-wellstate-for-no-wells
Fix handling of no wells in WellStateFullyImplicitBlackoil.hpp
2016-06-27 14:54:48 +02:00
Markus Blatt
90132a3bc5 Removed trailing underscore for local variable. 2016-06-27 14:40:14 +02:00
Atgeirr Flø Rasmussen
ce9ddedc76 Merge pull request #739 from GitPaean/fixing_bugs_without_plyshlog
only calculating representative radius when having PLYSHLOG.
2016-06-27 13:52:14 +02:00
Markus Blatt
a1832f2e5e Make numWellVars work for null well pointers. 2016-06-27 13:06:16 +02:00
Markus Blatt
f04eec04ba Set wellsActive to false for null well pointers. 2016-06-27 13:05:37 +02:00
Markus Blatt
c20620534a Allow access to wells pointer for wells.
Using &stdwells.wells() throws an assertion for null pointers
without -DNDEBUG, but was used nevertheless. That prevented running
models without wells.
2016-06-27 13:03:30 +02:00
Markus Blatt
9a7b77af9c Do not store number of phases in StandardWells.
The wells pointer might be null and we need to access its number of
phases in the constructor to store it. With this commit we prevent that
storage and simply ask the well struct whenever we need the number of
phases. Of course the code using it needs to check that there are wells
but that is done in most parts of the opm-simulators currently
(MultiSegmentWells and Solvent are/might be an exception).
2016-06-27 12:14:17 +02:00
Markus Blatt
5ed788ce6f Fix handling of no wells in WellStateFullyImplicitBlackoil.hpp
In that case we cannot call numPhases() on the wells as it produces
a floating point exception. As we do not use that information in this case
anyway, we simply use -1 instead to prevent the call.
2016-06-27 11:57:04 +02:00
Atgeirr Flø Rasmussen
80b8b5f12f Merge pull request #737 from atgeirr/sequential
Experimental sequential solvers
2016-06-27 11:38:13 +02:00
Atgeirr Flø Rasmussen
7489f15ee9 Add sequential models for black oil.
This commit adds sequential solvers, including a simulator variant
using them (flow_sequential.cpp) with an integration test (running
SPE1, same as for fully implicit).

The sequential code is capable of running several (but not all) test
cases without tuning or special parameters, but reducing ds_max a bit
(from default 0.2 to say 0.1) helps with transport solver
convergence. The Norne model runs fine (esp. with a little tuning). A
parameter iterate_to_fully_implicit (defaults to false) is available,
when set the simulator will iterate with alternating pressure and
transport solves towards the fully implicit solution. Although that
takes a lot extra time it serves as a correctness check.

Performance is not competitive with fully implicit at this point:
essentially both the pressure and transport models inherit the fully
implicit model and do a lot of double (or triple) work. The point has
been to establish a proof of concept and baseline for further
experiments, without disturbing the base model too much (or at all, if
possible).

Changes to existing code has been minimized by merging most such
changes as smaller PRs already, the only remaining such change is to
NewtonIterationBlackoilInterleaved. Admittedly, that code (to solve
the pressure system with AMG) is not ideal because it duplicates
similar code in CPRPreconditioner.hpp and is not parallel. I propose
to address this later by refactoring the "solve elliptic system" code
from CPRPreconditioner into a separate class that can be used also
from here
2016-06-27 10:28:09 +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
Kai Bao
d2c822e37a only calculating repesentative radius when having PLYSHLOG. 2016-06-24 10:00:06 +02:00
Joakim Hove
7649e43145 Merge pull request #736 from pgdr/add-tops-to-test-deck
Added TOPS keyword to test deck
2016-06-22 08:24:51 +02:00
Atgeirr Flø Rasmussen
ffd96c08e5 Merge pull request #733 from GitPaean/adding_MSW_test
adding a test for flow_multisegment
2016-06-21 16:59:03 +02:00
Pål Grønås Drange
0f8b472531 Added TOPS keyword to test deck 2016-06-21 16:30:40 +02:00
Kai Bao
d27524c3a7 adding a test for flow_multisegment
it is a 2D case with H__ pressure drop specification, and it takes about
2 second to run.
2016-06-21 14:43:11 +02:00
Atgeirr Flø Rasmussen
79d000812e Merge pull request #735 from atgeirr/fix-mseg-wells
Clone the Wells pointer for output use later.
2016-06-21 13:44:55 +02:00
Atgeirr Flø Rasmussen
e7c70ddb71 Clone the Wells pointer for output use later. 2016-06-21 12:00:10 +02:00
Atgeirr Flø Rasmussen
82d0c81c13 Merge pull request #730 from atgeirr/add-store-fluxes
Changes to well model for supporting sequential approach.
2016-06-20 22:46:35 +02:00
Joakim Hove
efa9a604a8 Merge pull request #723 from jokva/deprecate-wellptr
Well shared_ptr alias deprecated
2016-06-20 14:57:02 +02:00
Atgeirr Flø Rasmussen
ba9e599ec7 Use 'Vector' in place of 'V'. 2016-06-20 14:08:00 +02:00
Atgeirr Flø Rasmussen
9c0ffee8e9 Changes to well model for supporting sequential approach.
The changes are:
 - Make the WellOps struct public (needed by transport solver).
 - Make it possible to store and retrieve total reservoir volume
   perforation fluxes with getStoredWellPerforationFluxes(), controlled
   by a flag set by setStoreWellPerforationFluxesFlag(), defaulting to
   false (needed by pressure solver).
2016-06-20 11:02:49 +02:00
Atgeirr Flø Rasmussen
6dfd5ec63d Merge pull request #729 from atgeirr/refine-nonlinear-solver-interface
Refine nonlinear solver interface
2016-06-17 12:37:15 +02:00
Atgeirr Flø Rasmussen
b811ec7715 Merge pull request #728 from atgeirr/improve-solverselection
Refine setting of (linear) solver_approach.
2016-06-17 12:23:19 +02:00
Atgeirr Flø Rasmussen
f1af4f945c Make variable const. 2016-06-17 11:48:04 +02:00
Atgeirr Flø Rasmussen
82e935d92b Merge pull request #727 from atgeirr/use-update-stabilization
Add use_update_stabilization parameter.
2016-06-17 11:40:09 +02:00
Atgeirr Flø Rasmussen
d29355d17d Remove unneeded (implicit) template argument. 2016-06-17 11:39:00 +02:00
Atgeirr Flø Rasmussen
19f4cef6c1 Add new step() overload taking initial states separately. 2016-06-17 11:14:32 +02:00
Atgeirr Flø Rasmussen
fab64f5afb Add non-const overload of model(). 2016-06-17 11:14:21 +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
Atgeirr Flø Rasmussen
3776ccab9e Add use_update_stabilization parameter.
This makes it easier to run without, for example for debugging.
The default is 'true', preserving existing behaviour.
2016-06-17 10:44:53 +02:00
Atgeirr Flø Rasmussen
6fed5a50c3 Merge pull request #726 from atgeirr/const-preparestep
Use const reference parameters for prepareStep()
2016-06-17 09:21:27 +02:00
Atgeirr Flø Rasmussen
b21f4e16da Merge pull request #725 from atgeirr/add-to-helperops
Add connection_cells member of HelperOps.
2016-06-17 09:03:26 +02:00
Atgeirr Flø Rasmussen
194288865b Fix forgotten prepareStep() signatures. 2016-06-17 08:41:12 +02:00
Atgeirr Flø Rasmussen
bf5fecfe9a Make prepareStep() parameters const. 2016-06-17 08:41:02 +02:00
Atgeirr Flø Rasmussen
5f51fea874 Add connection_cells member of HelperOps. 2016-06-16 16:21:37 +02:00
Joakim Hove
d6b3650160 Merge pull request #724 from jokva/eclipse-writer-nnc-constructor
Pass NNC to OutputWriter constructor
2016-06-16 15:56:14 +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
Jørgen Kvalsvik
ef51e9a2eb Well shared_ptr alias deprecated
The shared_ptr aliasing is deprecated, and in the Well case this has
been removed upstream.
2016-06-16 10:01:04 +02:00
Atgeirr Flø Rasmussen
691969eb86 Merge pull request #721 from qilicun/minor-format-change
Add blank line before and after "Reading Parameters"
2016-06-16 08:57:55 +02:00