Commit Graph
9609 Commits
Author SHA1 Message Date
Andreas Lauser a812041184 ebos: implement partial elimination of systematic mass defects
the idea is to compensate the residual of the final solution of a time
step by means of an opposing source term in the next time step.

This patch has been developed as a joint project with [at]totto82 and
[at]osae.

(`flow` is unaffected by this because for now drift compensation is an
experimental feature and thus disabled within the production
simulator.)
2019-03-05 11:32:11 +01:00
Tor Harald Sandve d4d518fd35 Merge pull request #1740 from andlaus/use_flow_well_model
ebos: use the same well model, aquifer model and linear solver as flow
2019-03-05 10:57:18 +01:00
Andreas Lauser a5863a1f36 CMakeLists.txt: remove unecessary condition
thanks to [at]akva2 for catching this.
2019-03-04 15:42:57 +01:00
Andreas Lauser f4435a5de9 fix the default build system
for some reason, libraries produced for a module are not linked to the
executables of the module by the default build system. so far this did
not matter for `ebos` but with this PR, it starts using stuff from
`libopmsimulators`...
2019-03-04 15:38:07 +01:00
Tor Harald Sandve d0bacde369 Merge pull request #1739 from andlaus/misc_fixes
Miscellaneous fixes and improvements
2019-03-04 15:21:04 +01:00
Andreas Lauser d9c67ef551 ebos: use the same well model, aquifer model and linear solver as flow
This enables `ebos` to run Norne and other non-trivial data
sets. While at it, adapt the tolerances by `ebos`.

This patch only affects the research simulator, i.e. `flow` is
unaffected by it.
2019-03-04 14:23:59 +01:00
Andreas Lauser d7e74e7c4e fix review comment by [at]totto82 2019-03-04 13:59:50 +01:00
Andreas Lauser c37bc1cf38 flow: hide a few unused eWoms parameters
these parameters where introduced with support for the TUNIING keyword
in `ebos`. since `flow` implements its own time stepping these
parameters are unused and should thus be hidden from view in it.
2019-03-04 13:58:38 +01:00
Andreas Lauser 21f5c1fbd3 ISTLSolverEbos: throw NumericalIssue instead of LinearSolverProblem
the former is caught by `ebos`, while the latter isn't. Alternatively,
this can be fixed by deriving `LinearSolverProblem` from
`NumericalIssue`, if preferred.
2019-03-04 13:58:38 +01:00
Andreas Lauser b60305082d EclBaseProblem: fix the parent type tags for the EclBaseProblem tag in the non-default cases
this bitrot a bit because it was never seen by the compiler. (I still
did not check if `ebos` compiles and works if `CpGrid` is replaced by
dune-alugrid or `PolyhedralGrid`.)
2019-03-04 13:58:38 +01:00
Andreas Lauser 3ca8b8f285 ebos: improve the messages printed during the run
the convergence behaviour can now be understood and the report step
information is printed, too. This does not affect `flow`, becase it
implements its own newton and time stepping routines.
2019-03-04 13:58:38 +01:00
Andreas Lauser 8e5f1279f3 EclWellManager: do not use parallelism
the speedup gained by parallelism here are simply not worth the
headaches.

note that `flow` is unaffected by this because it uses
`Opm::BlackoilWellModel`.
2019-03-04 13:58:38 +01:00
Andreas Lauser 43dd9928b4 EclNewtonMethod: Fix convergence criterion if the residual is volumetric 2019-03-04 13:58:38 +01:00
Andreas Lauser 0a9d6a0760 include missing header files
this makes the well model and the equil initializer header more autonomous.
2019-03-04 13:58:38 +01:00
Tor Harald Sandve 40f4a2656f Merge pull request #1741 from andlaus/NewtonRawTolerance_to_NewtonTolerance
EclProblem: Rename NewtonRawTolerance to NewtonTolerance
2019-03-04 13:13:04 +01:00
Kai Bao a83db39cce warning instead of throwing for nnc between active cells and inactive cells 2019-03-04 12:49:17 +01:00
Andreas Lauser f36680bf3a EclProblem: Rename NewtonRawTolerance to NewtonTolerance
this property is not used by `flow` because `flow` implements its own
Newton method, but it not renaming the property prevents `flow` from
building.
2019-03-01 10:48:06 +01:00
Atgeirr Flø Rasmussen 9c6fea72ac Merge pull request #1737 from akva2/import_ebos
Import ebos from eWoms
2019-03-01 10:19:09 +01:00
Arne Morten Kvarving 55dec3d2eb Merge pull request #5 from andlaus/move_ebos
make the build system happy about the imported ebos binary
2019-02-28 10:04:35 +01:00
Andreas Lauser ef956da9b5 make the build system happy about the imported ebos binary
also, a few data files changed their location.
2019-02-27 22:34:10 +01:00
Arne Morten Kvarving 8d6e903c3f Import ebos from eWoms 2019-02-27 10:48:51 +01:00
Kai Bao 83fc76e6a3 Merge pull request #1736 from andlaus/fix_aquifers
aquifers: add missing serialize() and deserialize() methods
2019-02-25 20:51:27 +01:00
Andreas Lauser 6753e9ca31 aquifers: add missing serialize() and deserialize() methods
the original purpose of those is to provide a checkpoint/restart
mechanism using an ad-hoc file format. They might also be useful for
implementing the adjoint functionality, though.
2019-02-25 15:04:16 +01:00
Tor Harald Sandve 5163131f59 Merge pull request #1735 from andlaus/fix_wells_Schur
well model: fix application of Schur complements
2019-02-25 14:21:17 +01:00
Andreas Lauser 46e41228b5 flow: call getConvergence() on the raw reservoir residual
i.e., the residual without the Schur complement for the wells being
applied. This hopefully fixes the issue pointed out by
[at]totto82.
2019-02-25 11:24:30 +01:00
Andreas Lauser f5e7ca9bb3 well model: fix application of Schur complements
using the eWoms API for wells, the Schur compliment was not applied at
all. If `BlackOilWellModel::linearize()` was made non-trivial, the
Schur complement was applied twice in `flow`. With this patch, we only
apply this using the eWoms API (in
`BlackOilWellModel::linearize()`). I could not observe a signficant
effect on the convergence behaviour of `flow` for the cases which I
tested (Norne and realization 5 of Model 2).
2019-02-25 10:51:30 +01:00
Joakim Hove 935642ba88 Merge pull request #1716 from joakim-hove/unsupported-keywords
The missing features check takes a ParseContext argument
2019-02-22 07:49:43 +01:00
Tor Harald Sandve f540a83542 Merge pull request #1733 from andlaus/hide_ebos_params
do not print the new core-ebos time step tuning parameters in the usage message
2019-02-20 13:53:22 +01:00
Andreas Lauser c9dfad2a3d prefix the ECL timestep tuning parameters with 'Ecl' 2019-02-20 12:47:12 +01:00
Andreas Lauser 148728973f fix the output of the size of the next time step if timestepping is done externaly 2019-02-20 12:47:12 +01:00
Andreas Lauser b1a526e5c2 ebos: remove unused deprecated function 2019-02-20 12:47:12 +01:00
Andreas Lauser a34a8d6b9e ebos: implement partial support for the TUNING keyword
this only implements the parameters that are currently supported by
`flow`.
2019-02-20 12:47:12 +01:00
Andreas Lauser 0b600cb824 Merge pull request #483 from totto82/massratebc
Add option for setting mass boundary rate from deck
2019-02-20 12:15:21 +01:00
Tor Harald Sandve 430e667517 Add option for setting mass boundary rate from deck
Usage
BCRATE
1 1 1 1 1 10 X WATER 1e-7 /

This will inject 1e-7 of water (mass/time/length/length) on the x side of the
boundary cells with cartesian index [1 1 1] to [1 1 10]
2019-02-20 10:56:53 +01:00
Andreas Lauser d1fa4e3248 do not print the new core-ebos time step tuning parameters in the usage message
they are not used by `flow`.
2019-02-20 10:51:24 +01:00
Tor Harald Sandve b4382c23e8 Merge pull request #481 from andlaus/add_experimental_mode
introduce an "experimental mode"
2019-02-20 09:39:33 +01:00
Joakim Hove 657c45be92 Merge pull request #1732 from joakim-hove/trivial-change
Remove unused ParameterGroup.hpp header file
2019-02-19 16:23:14 +01:00
Andreas Lauser c80e4c40c4 fix missing semicolon 2019-02-19 11:04:40 +01:00
Andreas Lauser 10d1d5c9a7 introduce an "experimental mode"
this is a compile time switch with the intention to be able to more
easily turn experimental features that are not yet considered to be
production quality on and off. DUNE has a similar mechanism (i.e., the
`DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS` macro), but it relies on
the preprocessor.

For now, the property does not have any effect.
2019-02-19 10:22:34 +01:00
Tor Harald Sandve 9de0e54b63 Merge pull request #475 from andlaus/fix_ecl_restart
ebos: Fix restart from ECL files
2019-02-19 10:11:02 +01:00
Andreas Lauser 7165ae246a ebos: clarify startup message
this hopefully makes the purpose of `ebos` clear in its
description. this prose should be interpreted as "if you use ebos in
production, you are on your own and you should only expect a very
limited amount of support (or even sympathy) if something breaks".
2019-02-19 10:07:01 +01:00
Andreas Lauser 5b032a6a28 fix the issues found by [at]tosa82 in his review
in particular the missing synchronization after restarts was very
nasty to find. thanks a ton for pointing this out!

also, IIRC changing DR[SV]DT in the schedule section has been working
properly for a while, so the comment which stated the opposite is
removed as well.
2019-02-19 09:07:12 +01:00
Andreas Lauser 65d44a055f EclProblem: fix a few minor style issues 2019-02-18 15:30:28 +01:00
Andreas Lauser 427741fe84 ebos: Fix restart from ECL files
Some time loop stuff was missing in the doobly-doo, the init() method
of the well model was not called and there was the slightly deeper
issue that the initial solutions where not calculated on restarts
which breaks everything that relies on them. (at the moment, that's
everything which is related to non-trivial boundary contitions.)
2019-02-18 15:29:27 +01:00
Andreas Lauser 2e75eaa0ac Merge pull request #390 from joakim-hove/opm-rst-default-false
[Equinor internal]: Opm rst default false
2019-02-18 12:19:13 +01:00
Tor Harald Sandve a86ee61bf6 Merge pull request #478 from andlaus/ebos_remove_mass_conservative_init
ebos: remove the code to calculate a mass conservative initial condtion if the specified condition is inconsistent
2019-02-18 11:18:12 +01:00
Kai Bao 2d933f2303 Merge pull request #1695 from WesselDeZeeuw/BaseClassAquifer
Base class aquifer
2019-02-18 10:44:51 +01:00
WesselDeZeeuw 73faaf95b4 added aquiferConstants() 2019-02-18 09:19:26 +01:00
Arne Morten Kvarving 2bba0a395f fix initialization order 2019-02-18 09:19:26 +01:00
WesselDeZeeuw fd4bdd6492 Trying to fix the WReorder Warning 2019-02-18 09:19:26 +01:00