opm-simulators/examples
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
..
mrst Move MRST example closer to actual example 2013-05-15 10:37:50 +02:00
find_zero.cpp Rename AutoDiff::Forward -> Opm::AutoDiff. 2013-09-19 11:32:47 +02:00
flow_mpi.cpp Renamed flowMain.hpp -> FlowMain.hpp. 2015-12-18 13:58:12 +01:00
flow_multisegment_mpi.cpp Renamed flowMain.hpp -> FlowMain.hpp. 2015-12-18 13:58:12 +01:00
flow_multisegment.cpp Renamed flowMain.hpp -> FlowMain.hpp. 2015-12-18 13:58:12 +01:00
flow_polymer.cpp Create and use FlowMainPolymer class. 2015-12-18 13:58:13 +01:00
flow_sequential.cpp Add sequential models for black oil. 2016-06-28 15:50:50 +08:00
flow_solvent.cpp Create and use FlowMainSolvent class. 2015-12-18 13:58:13 +01:00
flow.cpp Renamed flowMain.hpp -> FlowMain.hpp. 2015-12-18 13:58:12 +01:00
opm_init_check.cpp Using getInputGrid API from Parser 2016-04-19 17:03:41 +02:00
sim_2p_comp_reorder.cpp Fix incomplete type error for std::ofstream in examples 2016-05-27 09:10:00 +00:00
sim_2p_incomp_ad.cpp Fix incomplete type error for std::ofstream in examples 2016-05-27 09:10:00 +00:00
sim_2p_incomp.cpp Fix incomplete type error for std::ofstream in examples 2016-05-27 09:10:00 +00:00
sim_poly2p_comp_reorder.cpp Using getInputGrid API from Parser 2016-04-19 17:03:41 +02:00
sim_poly2p_incomp_reorder.cpp Using getInputGrid API from Parser 2016-04-19 17:03:41 +02:00
sim_poly_fi2p_comp_ad.cpp Pass NNC to OutputWriter constructor 2016-06-16 13:34:29 +02:00
sim_simple.cpp Updated path to warning suppression header. 2015-10-06 12:11:49 +02:00