Commit Graph

82 Commits

Author SHA1 Message Date
Kai Bao
26a9582ece
Merge pull request #3911 from GitPaean/fixing_numerical_aquifer_equil
Fixing equilibration when having numerical aquifers.
2022-05-26 22:09:32 +02:00
Paul Egberts
a255613452
Merge branch 'master' into vapoilwat 2022-05-11 11:55:54 +02:00
Kai Bao
78bd95c593 also update cellZSpan_ and cellZMinMax
when updating cell center depth due to numerical aquifer cells.
2022-05-05 15:01:09 +02:00
Tor Harald Sandve
af95a3f22b fix density in initialization for case without DISGAS 2022-04-12 11:31:17 +02:00
Paul Egberts
ab3be6dce4 adjustments to account for vaporized water 2022-04-08 22:36:39 +02:00
Tor Harald Sandve
0c9bb3990e
Merge pull request #3830 from plgbrts/vapwat
Adding explicit input specification of water-gas ratio (RVW) and RVW output plus simulator gas-water system with salt precipitation and water evaporation for
2022-04-07 09:03:26 +02:00
Tor Harald Sandve
82099705ac fix initialization EQUIL + water and gas 2022-03-11 12:38:38 +01:00
Paul Egberts
797fdc278b water-gas ratio input and output plus simulator for salt precipitation and water evaporation 2022-03-01 20:52:43 +01:00
Paul Egberts
8044beb25d corrected TypeTag 2022-01-14 11:46:40 +01:00
Paul Egberts
0824ee0694 Initialization of solid salt saturation 2022-01-14 11:46:39 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
Joakim Hove
dec387d95d Replace numerical assert check with std::isfinite() and throw 2021-11-02 17:04:48 +01:00
Tor Harald Sandve
10480b4f8f combine co2store and numerical aquifers 2021-09-17 16:05:26 +02:00
Arne Morten Kvarving
d55df4330e fixed: do not use Opm:: prefix when inside namespace Opm 2021-05-25 12:06:06 +02:00
Tor Harald Sandve
f71f0932c9 add throw for unsupported positive item 9 in EQUIL 2021-05-03 13:03:08 +02:00
Tor Harald Sandve
c55864b1be extrapolate saltvd table 2021-04-20 09:24:26 +02:00
Kai Bao
24d5d73009 cleaning up comments
There is no functional change.
2021-03-15 21:15:56 +01:00
Kai Bao
116b77bd8a addressing the reviewing comments for PR OPM/opm-simulators#3039
putting the numerical aquifer related modification in a function and the
function is called after the equilibration calculation, so it will work
for different equilibration methods.
2021-03-15 10:21:40 +01:00
Kai Bao
a43c45e6ff setting numerical aquifer cells water saturation to 1.0
was removed accidently during cleaning up
2021-02-22 23:15:26 +01:00
Kai Bao
5e408ad71b trying to make the numerical aquifer runs in parallel
the current approach is not necessarily correct. When aquifer cells are
on the overlap layers, things are much more complicated.

But it mostly affects only the summary output of the numerical aquifers.
The well data should be fine.
2021-02-22 23:15:26 +01:00
Kai Bao
2b85e93ef6 some cleaning up
not functionality changes.
2021-02-22 23:15:26 +01:00
Kai Bao
524e63a255 adapting to the upstream interface change. 2021-02-22 23:15:26 +01:00
Kai Bao
c1a61e3b72 fixing the numerical aquifer related after rebasing 2021-02-22 23:15:26 +01:00
Kai Bao
a755b54afc rebasing and fixing the compilation.
The equilibration needs to be fixed for numerical aquifers.
2021-02-22 23:15:26 +01:00
Kai Bao
74f2fcd121 WIP in using pinched grid for numerical aquifer 2021-02-22 23:15:26 +01:00
Kai Bao
ef67d9a9e7 using the specified pressure for numerical aquifer
NOT totally sure how to use this pressure value, do we need to consider
the capillary pressure?
2021-02-22 23:15:26 +01:00
Kai Bao
80c0073a69 set water saturations for numerical aquifer cells to be 1. 2021-02-22 23:15:26 +01:00
Kai Bao
1d5b60a600 using the depth specified by numerical aquifer
for numerical aquifer cells, instead of the depth calculated from the
grid geometry.
2021-02-22 23:15:26 +01:00
Tor Harald Sandve
82c8968ae3 only warn about empty regions when none of the partitions contains the region 2021-01-27 12:47:41 +01:00
Tor Harald Sandve
b202a025c0 some clean up 2020-12-02 13:04:34 +01:00
Tor Harald Sandve
246c339b13 Pass gridView instead of the vanguard to the initialization 2020-11-27 13:46:04 +01:00
Tor Harald Sandve
6c06a72466 dunify and make the initialization parallel 2020-11-27 12:38:17 +01:00
hnil
16cd1f0ef3 Removed use of explicit regular falsi.
Use the standard solver from opm-common instead.
2020-09-26 13:07:01 +02:00
Kai Bao
897fc77a1d
Merge pull request #2791 from GitPaean/increasing_maxIter
increasing maxIter to 1000 for function satFromPc
2020-09-21 21:18:20 +02:00
Joakim Hove
9809dcc804 Remove references to unused class SimulationDataContainer 2020-09-21 07:16:11 +02:00
Kai Bao
775793676c increasing maxIter to 1000 for function satFromPc
it is a temporary fix to make some parallel running easier. We need to
change it manually to make some parallel running pass.
2020-09-17 20:59:58 +02:00
Arne Morten Kvarving
74fac38d85 changed: remove GET_PROP_TYPE / GET_PROP macro usage 2020-08-27 08:19:39 +02:00
Tor Harald Sandve
9d72b6ad1a clean-up saltved implementation based on code review 2020-08-18 11:04:39 +02:00
Tor Harald Sandve
491b532a6a Add trivial saltvd table for cases without saltvd given in the deck 2020-08-18 10:55:43 +02:00
Tor Harald Sandve
bd9186b41d implement Saltvd 2020-08-18 10:55:43 +02:00
Tor Harald Sandve
88ee892fdf pass the saltConcentration to the waterPVT 2020-07-02 13:44:01 +02:00
Bernd Flemisch
21df1cbe31 [properties] adapt to changes in the property system
`NEW_PROP_TAG` is now a definition and not just a declaration.
Eliminate superfluous declarations, include headers with definitions.
Make one necessary forward declaration explicit.
2020-05-18 15:54:26 +02:00
Kai Bao
93655244ce increasing the max iteration number for statFromPc
when doing the equilibration.
2020-04-30 12:12:58 +02:00
Bård Skaflestad
b288602dfc Equilibration: Add Experimental Support for Horizontal Subdivision
This commit adds a very early, alpha-quality implementation of the
"horizontal subdivision" strategy (N < 0) of the EQUIL directive.
This in turn enables more accurate derivations of the initial fluids
in place.

Interactions with SWATINIT are completely untested, and the initial
Rs/Rv derivations in this context are possibly incomplete.  More
work is likely needed in this area, but this does at least enable
more widespread testing.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
4b04a36a2f Initial State Calculator: Prune Unneeded Steps and Variables
In particular, remove unneeded function parameters and don't form a
per-cell PVT zero-based index when we're not going to use the
values.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
f0ed53a6f1 Vertical Extent: Prune Unneeded 'cellcount' Parameter
The purpose of this function is to determine the vertical extent of
a set of cells.  Counting the number of cells in the region is not
its responsibility.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
6292855bd5 Initial State Calculator: Refactor Cell Loop
This commit splits out the per-cell initial state derivation to two
separate helper functions, equilibrateCellCentres() and cellLoop().
The latter manages the per-cell assignments to pertinent data
members and calls an arbitrary "equilbration method" that is
provided as a callback and which calculates per-cell phase
pressures, phase saturations and mixing ratios (Rs/Rv).

In turn, the equilibrateCellCentres() uses the cellLoop() to affect
the existing equilibration procedure within a cell using values at
the depths of the cell centres only.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
fd2d8536eb Refactor Phase Saturation Derivation Procedure
This commit introduces a new helper class,

    Opm::EQUIL::Details::PhaseSaturations<>

that subsumes the responsibility of the existing helper function

    Opm::EQUIL::phaseSaturations<>()

and generalises that functionality to arbitrary depth points within
single cells.  This is in preparation of adding support for the N<0
case of the initial fluid in place procedure defined in the EQUIL
keyword.  The class consumes an already equlibrated pressure table
for the pertinent equilibration region, calculates capillary
pressure values and inverts Pc curves to derive saturation values.
If the capillary pressure curves are constant within a cell, then a
simple depth consideration with respect to the implied sharp phase
interface is used to derive saturation values.  We also preserve
existing support for SWATINIT-type initialisation of the water
saturation field.

Switch InitialStateComputer<>::calcPressSatRsRv() over to using the
pressure and saturation helper classes instead of the original
helper functions since this provides additional control.  Also
remove those helper functions to reduce risk of confusion over which
method to use.  Update the unit tests accordingly.
2020-04-14 23:01:02 +02:00
Bård Skaflestad
d039a1d60e Basic Equilibration: Prepare for Subdivision Strategy
This commit is the first step of several that implements ECLIPSE's
"accurate fluid-in-place" model initialization procedure based on
subdividing the vertical range/extent of individual cells.  This
first step puts the O/G/W phase-pressure calculation into a helper
class,

    Opm::EQUIL::Details::PressureTable<>

through which phase pressure values can be calculated at abritrary
depths rather than just at the cell centre depths.  In other words,
this helper class extends and subsumes the responsibilities of the
existing helper functions

    Opm::EQUIL::Details::PhasePressure::assign()
    Opm::EQUIL::Details::PhasePressure::oil()
    Opm::EQUIL::Details::PhasePressure::gas()
    Opm::EQUIL::Details::PhasePressure::water()

We still use the same ODE-based evaluation procedure for the phase
pressures and the equilibrateOWG() helper function still computes
the phase pressure values at cell centre depths only.

That, in turn, corresponds to the "N = 0" case (steady state) of the
basic equilibration facility.
2020-04-14 23:01:02 +02:00
Bård Skaflestad
74368c5f98
Merge pull request #2452 from blattms/use-region-temperature-cleaned
Use correct region temperature when calculating RS/RV
2020-04-02 15:08:53 +02:00