Commit Graph

1081 Commits

Author SHA1 Message Date
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