Commit Graph

23 Commits

Author SHA1 Message Date
Andreas Lauser
7f3a9f1f43 catch NumericalIssue instead of NumericalProblem
the underlying problem is that the OPM build system does not define a
HAVE_OPM_COMMON macro in config.h.
2018-02-08 12:02:25 +01:00
Joakim Hove
566f4fbb02 Use Schedule constructor. 2017-11-06 14:20:41 +01:00
Atgeirr Flø Rasmussen
e0570fc980 Fix issues for iterated sequential implicit. 2017-06-12 15:36:56 +02:00
Atgeirr Flø Rasmussen
e01eca28ca Bugfix: avoid modification of flux data every iteration. 2017-06-12 15:36:48 +02:00
Atgeirr Flø Rasmussen
7e8ed40714 Use free function for multi-phase upwinding. 2017-06-01 14:15:31 +02:00
Atgeirr Flø Rasmussen
90d90fb452 Fix output of relative permeability for sequential model.
Bug caused assert() failures for debug mode runs.
2017-04-21 15:30:40 +02:00
Kai Bao
72d0d4ddb8 revising the computeWellPotentials in StandardWells
so it compute the potentials for each well instead of each perforation.
2017-04-11 16:51:16 +02:00
Atgeirr Flø Rasmussen
27c0430932 Change include paths for moved headers. 2017-02-10 16:07:25 +01:00
Andreas Lauser
ef731672c9 remove the BlackoilPropsAdInterface abstraction layer
instead, directly use BlackoilPropsAdFromDeck.
2017-01-02 13:19:23 +01:00
Andreas Lauser
8c5f92dbc4 extend and clean up the SimulatorReport 2016-11-25 21:19:57 +01:00
Kai Bao
8474ff2895 fixing all the simulators that call solveWellEq.
Not all the group control functionalities working for allt the
simulators. Some need to be fixed later.
2016-11-16 13:25:35 +01:00
Jørgen Kvalsvik
1c6a4b34da Update to shared_ptr-less parser interface. 2016-10-20 14:08:04 +02:00
babrodtk
739976535f Added rs and rv output capabilities 2016-09-07 14:55:53 +02:00
Atgeirr Flø Rasmussen
69812fddd2 Remove unnecessary override of computeFluidInPlace().
It also called itself, causing infinite recursion.
2016-08-30 13:18:54 +02:00
Liu Ming
056708574c compute fluid in place by regions. 2016-08-30 10:30:25 +02:00
Liu Ming
28583e4237 Add computeFluidInPlace function. 2016-08-30 10:30:25 +02:00
Atgeirr Flø Rasmussen
a084d36da6 Merge pull request #752 from andlaus/pass_timer_instead_of_dt
pass the simulation timer object instead of the time step size
2016-08-02 11:05:27 +02:00
Liu Ming
b43cbe0531 drop useages of std::numeric_limits for counting well iterations. 2016-07-14 10:25:32 +08:00
Andreas Lauser
5410d97701 pass the simulation timer object instead of the time step size
models may need a more detailed picture of where they are in the
simulation. Note that since the timer objects are available at every
call site, this is also not a very deep change.
2016-07-12 15:55:12 +02:00
Liu Ming
d3e6a657cd Initial well iterations as a special number, output it if it is valid. 2016-06-30 09:04:44 +08:00
Liu Ming
e6930df28c make assemble method return IterationReport. 2016-06-28 16:20:33 +08:00
Atgeirr Flø Rasmussen
baeab02bd6 Adapt to changed updateWellControls() signature. 2016-06-28 15:50:50 +08:00
Atgeirr Flø Rasmussen
6572aeed5e 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-28 15:50:50 +08:00