Commit Graph

242 Commits

Author SHA1 Message Date
kel85uk
1a33e81d9c Cleans up the code and removes unused functions 2018-06-04 15:28:53 +02:00
kel85uk
e2513038c4 Implemented initialization procedure. 2018-06-04 15:28:49 +02:00
kel85uk
5a87818bb2 First addition of the class BlackoilAquiferModel. 2018-06-04 15:28:46 +02:00
Tor Harald Sandve
ee88790dea Add a flow specialization for blackoil with energy conservation
The energy conservation is enabled by specifying either TEMP or
THERMAL in the deck. The deck also needs to contatin relevant fluid and rock
heat properties.

The blackoil + energy equations are solved fully implicit.
2018-04-30 13:45:18 +02:00
Andreas Lauser
3924bb1e6e explicitly disable all extensions supported by black oil model for the base simulator
this should not really be necessary because they are supposed to be
disabled by default, but it makes things a bit more explicit
2018-04-06 11:01:33 +02:00
Atgeirr Flø Rasmussen
9897ae361e
Merge pull request #1428 from totto82/relax_convergence
Add option for relaxed CNV tolerance
2018-04-04 16:38:47 +02:00
Andreas Lauser
a42ece61ed BlackoilModelEbos: set the default output directory to the empty string
an empty string is interpreted as "write the output files into the
same directory as the input". this is the current 'flow' default
behavior, plain ebos uses "." as the default location for output,
i.e., the current directory from which the simulator is run from.
2018-03-12 15:17:39 +01:00
Tor Harald Sandve
15aeac3f90 Add option for relaxed CNV tolerance
Use a relaxed tolerance for individual cells (CNV) when iter >
max_strict_iter.

tolerance_cnv_relaxed_ is defauled to 1.0e9
This assure the same behaviour as current master, where CNV criterion is
ignored when iter > max_strict_iter

TODO: Test this with a stricter default ( <= 1.0)
2018-03-12 08:23:57 +01:00
Atgeirr Flø Rasmussen
1380564256
Merge pull request #1425 from totto82/fix_enable_storage_term_false
Bugfix. enableStorageCache=false
2018-03-09 14:13:10 +01:00
Atgeirr Flø Rasmussen
717a9180e5
Merge pull request #1422 from blattms/resort-to-split-operator
If requested use matrix with well contributions only for the preconditioner.
2018-03-07 14:33:09 +01:00
Tor Harald Sandve
0c4ae5991f Use advanceTimeLevel() and updatedFailed() methods from model 2018-03-06 13:18:03 +01:00
Markus Blatt
01b25f27ed Allow to add well contributions to both matrix and preconditioner matrix.
matrix_add_well_contributions=true will add to both the preconditioner matrix
and the matrix of the linear operator. preconditioner_add_well_contributions=true
will only add the contributions to the preconditioner matrix.
2018-03-05 16:48:10 +01:00
Tor Harald Sandve
5f33a1a1bc Bugfix. enableStorageTerm=false
Shift intensiveQuantities each timestep
2018-03-05 14:53:59 +01:00
Andreas Lauser
999653783b do not name exception objects if they are not used
ICC rightfully produces a warning here...
2018-03-03 13:31:17 +01:00
Markus Blatt
12d2114bd7 Add well contribution to preconditioner matrix and always use old operator approach for wells.
It turned out that applying the well part of the full matrix has to be
done after the application of the non-well interactions. Otherwise we
screw up the ordering so much that convergence suffers a lot.

Kudos got Atgeirr for inspiration based on his testing.
2018-03-02 20:57:43 +01:00
Markus Blatt
f07874cf42 Cleanup code.
Removed unused boolean switch in WellModelMatrixAdapter and removed commented code.
2018-03-02 20:57:10 +01:00
Atgeirr Flø Rasmussen
b276aaa16b Changes made to test variations of matrix vs matrixless(ish) operator. 2018-03-02 14:22:59 +01:00
Markus Blatt
96a636f25b Let WellModel decide whether to apply well contributions.
It queries the Well whether the jacobian also contains well contributions.
If not then it applies them in the operator in addition. Thus the
well knows whether that is needed or not.
2018-02-26 15:16:07 +01:00
Markus Blatt
b5d55b9fb2 Fix indentation and whitespace. 2018-02-26 14:35:04 +01:00
Markus Blatt
22dfa6f135 Setup auxiliary module only once with all possible well completions.
Clearing the auxiliary modules will result in the sparsity pattern being
recomputed. Previously we did this before each nonlinear solve. But for the
master branch the sparsity pattern was only computed once for the whole
simulation.

To get the same behaviour (one sparsity pattern computation) we change the
auxiliary module to include all well perforations that might become active
during the simulation and do this once up front of a simulator run.

Please note that the new matrix entries might also improve convergence for
the ILU if the well is not active.
2018-02-26 14:35:04 +01:00
Markus Blatt
07f61c2a2b Add auxiliary module in BlackoilModelEbos constructor.
Previously, we did this during assemble. Unfortunately, this resulted
in the sparsity pattern being recomputed every time instead of just
once for a non-linear solve.
2018-02-26 14:35:04 +01:00
Markus Blatt
799cbb4b62 Add influences by well perforations to matrix.
This is only done upon request and uses the auxiliary module approach
provided by ewoms.

In the case of adding the influences we do not execute applyWellModelScaleAdd
or applyWellModel in the operator
2018-02-26 14:35:04 +01:00
Markus Blatt
d0fcd1a8e9 Add non neighboring connections induced by well perforations to matrix sparsity pattern
This is only done upon request and uses the auxiliary module approach
provided by ewoms.
2018-02-26 14:32:50 +01:00
Atgeirr Flø Rasmussen
cf9b7c39b9 Adapt to moved opm-grid headers. 2018-02-10 08:33:33 +01:00
Andreas Lauser
3d0fca2f08 adapt to the gridManager() -> vanguard() change in ewoms 2018-02-08 16:27:42 +01:00
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
Atgeirr Flø Rasmussen
532403c5fb
Merge pull request #1391 from totto82/RFIP
Use FIP, EGRID and INIT output code in ebos.
2018-02-06 12:54:01 +01:00
Arne Morten Kvarving
141186ad1d changed: opm/[core -> common]/utility/parameters 2018-01-30 16:33:45 +01:00
Tor Harald Sandve
6d0c716d76 Clean-up FIP 2018-01-29 08:56:55 +01:00
Arne Morten Kvarving
4315665b64 changed: expose category as member for dune 2.6
the enum can only be used with a define, and that would
just be a temporary solution in any case
2018-01-22 17:23:22 +01:00
Tor Harald Sandve
0e6fe26a61 Start using ecl output from Ebos
The wells, FIP and initial output of NNCs is still handled
by code in opm-simulators. The plan is to move more of the
functionality to ebos.

All tests pass and MPI restart works
2018-01-04 09:29:58 +01:00
Tor Harald Sandve
969d8f238d Use phase and comp info from FluidSystem
TODO: The output, fip and restart still uses a mixture of old and
new phase indices. This needs to be adressed in future PRs
2018-01-03 08:44:37 +01:00
Tor Harald Sandve
7567748f2d Adapt to changed initial FluidState type in ebos 2017-12-15 08:19:01 +01:00
Tor Harald Sandve
095b82212c Use the initial solution from Ebos 2017-12-04 10:35:30 +01:00
Atgeirr Flø Rasmussen
eef7b8ea94
Merge pull request #1348 from totto82/refactorBlackoilModelEbos
Put the ebosSimulator start and end methods where it belongs
2017-11-29 20:49:18 +01:00
Tor Harald Sandve
9edb351d34 Put the ebosSimulator start and end methods were it belongs
Move the beginEpisode/endEpisode call to ebos to beginReportStep/
endReportStep and beginTimeStep/endTimeStep call to ebos to prepareStep/
afterStep
2017-11-24 15:16:03 +01:00
Tor Harald Sandve
054361d537 Make it possible to combine solvent and RESV
Compute the conversion factor for solvent using the RateConverter.hpp
2017-11-22 15:21:21 +01:00
Alf B. Rustad
ad68c05982 Change substep to time step in logging 2017-11-17 08:25:21 +01:00
Kai Bao
8274fc9275 replacing BlackoilPhases:: with Oil Water Gas in well model
and also WellStateFullyImplicitBlackoil.

There are more places to do so, while it might be easier to create a
header file for this.
2017-11-16 12:08:58 +01:00
Atgeirr Flø Rasmussen
6591ca89f6
Merge pull request #1324 from totto82/moveApplyWellToRes
Apply the well residuals to cell residuals in SolveJacobianSystem
2017-11-10 09:57:42 +01:00
Atgeirr Flø Rasmussen
e7a6e8f2c5
Merge pull request #1322 from totto82/fixResetSolution
BUGFIX Update the solution variable in ebos
2017-11-09 10:35:38 +01:00
Tor Harald Sandve
5647485daa Apply the well residuals to cell residuals in SolveJacobianSystem
This was moved to assemble() some time ago but according to my logic it
belongs in the solve method since this is only a trick to solve the well
equations simultaneously with the reservoir equations.

A buggy side effect of the currect implementation was that the well
residual was considered in the convergence test. I.e. this move changes
the convergence behaviour of the simulator.
2017-11-09 08:40:08 +01:00
Tor Harald Sandve
4bb5213f37 BUGFIX Update the solution variable in ebos
Updating the solution variable in updateState() was conceptually wrong
and lead to incorrect results if the linear solver failed before the
updateState() method was called. i.e. in the first iteration.
2017-11-08 14:21:31 +01:00
Tor Harald Sandve
b9bc4b00cb Make the wellModel self-contained
The wellModel is now persistent over the time steps,
with an update method called every reportStep/episode.

This allows the following simplifications:

    1. move the wellState to the WellModel
    2. add a ref to the ebosSimulator to the wellModel
    3. clean up the parameters passed to the wellModel methods
    4. move RESV handling to the WellModel and the rateConverter
    5. move the econLimit update to the WellModel
2017-11-08 13:57:36 +01:00
Kai Bao
ba8eb708d1 fixing reviewing comments from PR 1279. 2017-10-16 17:01:15 +02:00
Kai Bao
fc06923c50 changing StandardWellsDense to BlackoilModelEbos
for a better naming.
2017-10-12 13:39:58 +02:00
Kai Bao
a03a67c85e not checking getWellConvergence more than one times
which is a bug. Not it is moved out of the for loop.
2017-10-12 13:37:05 +02:00
Kai Bao
c3b4188295 making message about catching FMatrixError more specific
in BlackoilModelEbos.
2017-10-12 13:37:05 +02:00
Atgeirr Flø Rasmussen
f30b95e0e7 Merge pull request #1298 from blattms/cleanup-version-ifs
[cleanup] Removes unnecessary if clauses for unsupported DUNE versions.
2017-10-12 13:28:45 +02:00
Atgeirr Flø Rasmussen
91cac266b4 Merge pull request #1299 from andlaus/remove_SimulationParameter
do not set the SimulationParameter property anymore
2017-10-12 10:47:03 +02:00