Joakim Hove
8cf963ba3f
Using TableManager class to get input tables.
2015-09-01 12:21:11 +02:00
Andreas Lauser
8c612009ac
Merge pull request #46 from andlaus/implement_slgof_support
...
ECL satfuncs: implement support for the SLGOF keyword
2015-08-25 21:55:29 +02:00
Andreas Lauser
a58531c3de
fix the satfunc family detection code in ECL scaling points class
...
thanks to [at]totto82 for finding this.
2015-08-25 11:38:31 +02:00
Andreas Lauser
5e447cb83a
ECL satfuncs: implement support for the SLGOF keyword
...
if my understanding of this keyword is correct, it is identical to
SGOF except that the saturation column is specified in terms of Swco +
So instead of as Sg
2015-08-24 21:51:46 +02:00
Tor Harald Sandve
6c403d457e
Merge pull request #45 from andlaus/shift_gas_saturations_again
...
shift the gas saturations of the oil relperm tables again
2015-08-24 15:30:12 +02:00
Andreas Lauser
c6cafe3a7a
shift the gas saturations of the oil relperm tables again
...
it seems like this was accidentally undone while resolving conflicts in #42 .
2015-08-24 13:52:09 +02:00
Andreas Lauser
086b129773
Merge pull request #43 from andlaus/fix_compile
...
fix compilation in debug mode
2015-08-19 16:07:59 +02:00
Andreas Lauser
6e27d1ab1d
fix compilation in debug mode
2015-08-19 16:07:07 +02:00
Andreas Lauser
5490017b3f
Merge pull request #42 from totto82/family2
...
Support for Family II saturation functions input
2015-08-19 13:06:06 +02:00
Andreas Lauser
220fe9cffa
Merge pull request #38 from andlaus/SplineLaw_implement_twophase_inversion_api
...
SplineTwoPhaseMaterial: implement the two-phase inversion functions
2015-08-19 11:02:56 +02:00
Tor Harald Sandve
3c7a087d3d
Merge pull request #41 from andlaus/ecl_satfunc_improvements
...
Ecl satfunc improvements
2015-08-19 10:43:26 +02:00
Tor Harald Sandve
4431ff6d7d
Add function to check saturation function family
...
Adapt to change in the EclipseState i.e. the method
to get the saturation function family is no longer available and a
similar method is implemented in EclMaterialLawManager
2015-08-19 09:29:20 +02:00
Andreas Lauser
ef28c31368
EclHysteresisTwoPhaseLaw: use '<=' instead of '<' to decide whether to use the imbibition or the drainage curve
...
this does not change the results in any way, but for the Norne deck,
it improves performance (i.e., It Must Be Right (TM))...
2015-08-18 17:35:35 +02:00
Andreas Lauser
57948012a5
PiecewiseLinearTwoPhaseMaterial: remove unnecessary calls to min() and max()
...
it is nicer to read like this and it may improve performance a tiny
bit.
2015-08-18 17:35:22 +02:00
Andreas Lauser
0edc7b5f70
EclMaterialLawManager: shift the saturations of the oil phase the in gas-oil twophase system by the connate water saturation
...
for the oil phase relperm, the gas saturation column of the SGOF
keyword actually is Sg - Swco. why? it's ECL! don't ask why!
2015-08-18 17:24:28 +02:00
Tor Harald Sandve
3cffd067e3
PiecewiseLinearTwoPhaseMaterial: make the saturation columns of the quantities independent
2015-08-18 17:24:28 +02:00
Andreas Lauser
3693edb044
Merge pull request #40 from andlaus/revert_family_2_support
...
Revert "Add support for saturation family 2 keywords"
2015-08-18 17:23:10 +02:00
Andreas Lauser
7e83191892
Revert "Add support for saturation family 2 keywords"
...
This reverts commit a041e3ccff
.
it does not compile with the current opm-parser.
2015-08-18 17:20:29 +02:00
Andreas Lauser
4a7e099246
Merge pull request #37 from totto82/family2
...
Add support for saturation family II keywords
2015-08-18 17:02:54 +02:00
Tor Harald Sandve
a041e3ccff
Add support for saturation family 2 keywords
...
Saturation functions can no be given using the family 2 keywords SWFN,
SGFN and SOF3.
2015-08-17 07:08:13 +02:00
Andreas Lauser
8e11a8254e
Merge pull request #39 from andlaus/change_connate_water_treatment
...
EclDefaultMaterial: do not add the connate water saturation to Sw_ow
2015-08-14 17:42:50 +02:00
Andreas Lauser
14e4692386
EclDefaultMaterial: do not add the connate water saturation to Sw_ow
2015-08-14 17:40:05 +02:00
Andreas Lauser
8e51155f24
Merge pull request #36 from andlaus/inconsistent_hysteresis_updates
...
EclDefaultMaterial: use inconsistent saturations for the hysteresis update
2015-08-14 15:32:03 +02:00
Andreas Lauser
fb6eb1279a
SplineTwoPhaseMaterial: implement the two-phase inversion functions
...
these are required for ECL hysteresis.
2015-08-14 14:04:20 +02:00
Andreas Lauser
a8aaa168e2
EclDefaultMaterial: allow the parameters to decide if consistent or inconsistent hysteresis are used
2015-08-14 09:33:28 +02:00
Andreas Lauser
893538c9f3
EclDefaultMaterial: use inconsistent saturations for the hysteresis update
...
with this, I got slightly better performance than the opm-core master
version if flow is tasked on simulating the full Norne deck. Be aware
that from the physical POV, this is wrong.
2015-08-14 09:26:28 +02:00
Andreas Lauser
83de8aceb1
Merge pull request #35 from andlaus/connate_water_fixes
...
Connate water fixes
2015-08-14 09:26:10 +02:00
Andreas Lauser
a52c279fc8
Merge pull request #34 from andlaus/fix_two-point_krw_scaling
...
fix saturation scaling points for two-point krw scaling
2015-08-13 17:39:24 +02:00
Andreas Lauser
0d1c711d8e
EclDefaultMaterial: increase the epsilon for division-by-zero-avoidance to 1e-20
...
also, treat saturations smaller than 0 as 0. this also makes clamping the
kro values to range [0, 1] superfluous.
2015-08-13 17:37:19 +02:00
Andreas Lauser
797012a8ba
EclDefaultMaterial: add the connate water saturation to the wetting-phase saturation in the gas-oil system
2015-08-13 17:34:21 +02:00
Andreas Lauser
be4593841f
EclDefaultMaterial: Make sure that the water saturation is at least the connate water saturation
...
I thought this would not make a difference if the tables are
extrapolated by constants, but apparantly it makes a difference for
endpoint scaling.
2015-08-13 17:31:56 +02:00
Andreas Lauser
ca2a4bbb4e
fix saturation scaling points for two-point krw scaling
...
kudos to [at]osae for finding this!
2015-08-12 18:07:05 +02:00
Andreas Lauser
10dc683c75
Merge pull request #33 from andlaus/only_non-wetting_phase_ecl_hysteresis
...
limit ecl relperm hystersis to the non-wetting phase
2015-08-12 13:21:35 +02:00
Andreas Lauser
edf345219f
limit ecl relperm hystersis to the non-wetting phase
...
I have trouble seeing why this can possibly physically justified
(because oil is once the wetting and once the non-wetting phase), but
things seem to be like this as the documentation says that in case of
chosing the relperm hysteresis model 0 via the EHYSTR keyword,
hysteresis is only used for the non-wetting phase.
2015-08-11 17:23:02 +02:00
Andreas Lauser
f48891ffb0
Merge pull request #30 from andlaus/no_limits_in_krn
...
EclDefaultMaterial: do not limit the saturations in krn()
2015-08-10 12:31:38 +02:00
Andreas Lauser
89cbb8aab7
EclMaterialLawManager: slightly clean up the materialLawParams() methods
2015-08-07 18:23:32 +02:00
Andreas Lauser
a82648a002
embed the scaled endpoints directly into the relevant parameter objects
...
this hopefully improves performance slightly.
2015-08-07 18:23:32 +02:00
Andreas Lauser
8b9cfa0a65
EclDefaultMaterial: do not limit the saturations in krn()
...
this is required to get a match with the current opm-core satfuncs for
Norne.
2015-08-07 16:47:23 +02:00
Andreas Lauser
53309405c2
EclMaterialLawManager: make it use compressed instead of logically Cartesian elements
...
for grids with many inactive cells, this can change quite a bit of
memory and might even lead to slightly better performance because of
the memory prefetching potentially works better.
2015-08-06 16:44:00 +02:00
Andreas Lauser
5d2dadc6e1
replace custom conditional type selector by std::conditional
...
I did not know about std::conditional until today...
2015-07-29 13:56:53 +02:00
Andreas Lauser
fc2e6c9918
implement a EclMaterialLawManager class
...
this class internalizes and manages the material parameters from the
ECL deck because this turns out to be a non-trivial task.
2015-07-28 17:24:31 +02:00
Andreas Lauser
7cbffc22c6
introduce SimpleModularFluidState and make ModularFluidState not depend on the FluidSystem anymore
...
it is called "simple" because the usage is somewhat simpler: The
quantities are stored and those which are not can be specified using
simple boolean template arguments instead of having to pass the class
names of the storage modules. The definition of the class is quite a
bit more involved than the non-"simple" variant, though.
2015-07-28 17:24:27 +02:00
Andreas Lauser
a25cee980b
implement a multiplexer three-phase fluid-matrixinteraction for ECL problems
...
this allows to switch between the Default three-phase implementation,
Stone1 and Stone2 at runtime.
2015-07-28 17:24:25 +02:00
Andreas Lauser
11ccc40e44
implement Stone2 three-phase fluid-matrixinteractions for ECL problems
2015-07-28 17:24:22 +02:00
Andreas Lauser
d46f4bafe3
implement Stone1 three-phase fluid-matrixinteractions for ECL problems
2015-07-28 17:24:20 +02:00
Andreas Lauser
c7c4784746
some updates for EclDefaultMaterial
...
it now uses shared pointers to the underlying twophase material law
parameter objects and it can be used with hysteresis.
2015-07-28 17:24:18 +02:00
Andreas Lauser
014a8faa04
implement ECL hysteresis
...
so far, this is only for relperm hysteresis. the Eclipse docu seems to
be incorrect (or at least vague) for capillary pressure hysteresis...
2015-07-28 17:24:16 +02:00
Andreas Lauser
4dea8c0642
add invertion methods to some of the two-phase fluid-matrix interactions
...
these are required for hysteresis
2015-07-28 17:24:14 +02:00
Andreas Lauser
01aaaea95c
Brooks-Corey: fix some comments
...
they were misleading or wrong.
2015-07-28 17:24:12 +02:00
Andreas Lauser
bb100ced1c
implement a two-phase fluid-matrix interaction for ECL end-point scaling
2015-07-28 17:24:09 +02:00