Commit Graph

33 Commits

Author SHA1 Message Date
Liu Ming
c2622708e4 rename ParseMode as ParseContext. 2016-03-17 09:57:59 +08:00
Jørgen Kvalsvik
dd77a39d95 Remove Equil + EquilWrapper, replace with upstream
Upstream (opm-parser) now provides a better Equil + EquilRecord, and
simultaneously deprecated EquilWrapper. This patch fixes the resulting
breakage.

One important note: The new Equil does not expose integers for live
oil/wet gas initialization procedure methods, but rather booleans
through constRs/constRv methods. This is how the variable behaves
according to the Eclipse reference manual (EQUIL keyword section).

Code has been updated to reflect this.
2016-03-01 09:59:54 +01:00
Bård Skaflestad
99368d73d2 RegionMapping<>: Support arbitrary region IDs
This commit introduces a new public method, activeRegions(), that
retrieves those region IDs that contain at least one active cell.
We furthermore extend the cells() method to support lookup of
arbitrary region IDs.  Non-active region IDs produce empty cell
ranges.

Intended use case is

    for (const auto& reg : rmap.activeRegions()) {
        const auto& c = rmap.cells(reg);

        // use c
    }
2015-09-15 15:33:22 +02:00
Joakim Hove
23b3670c1e Updated to use ParseMode. 2015-08-06 15:56:51 +02:00
Arne Morten Kvarving
a87b46a037 fix tests
- cannot use BOOST_CHECK_CLOSE around 0 due to a relative test
- slacken a tolerance significantly
2015-04-24 10:49:13 +02:00
Tor Harald Sandve
dfa2c42233 Changes in the ref. solution in the DeakAllDead test 2014-08-12 07:08:57 +02:00
osae
91a19ff333 Correcting the equil test. 2014-08-11 13:19:17 +02:00
osae
c1732b0b32 Make use of EclipseState for EQLNUM and SWATINIT. 2014-06-26 14:46:57 +02:00
Andreas Lauser
05775a0b36 Glue in support for the grid property modifier keywords
this basically means using Opm::EclipseState instead of the raw deck
for these keywords.

with this, property modifiers like ADD, MULT, COPY and friends are
supported for at least the PERM* keywords. If additional keywords are
required these can be added relatively easily as well.

no ctest regressions have been observed with this patch on my machine.
2014-06-11 13:48:49 +02:00
Andreas Lauser
21719a6860 fix the equilibration test by using new values
thanks to @bska for the hints.
2014-06-04 13:26:37 +02:00
Andreas Lauser
f360562aee remove EclipseGridParser compatibility methods from all classes 2014-05-21 11:22:43 +02:00
Atgeirr Flø Rasmussen
b225970686 Add (all-zero) initialisation of new EquilRecord fields. 2014-04-15 13:41:10 +02:00
osae
a43ae52c18 Some additional tests: live gas, RSVD and RVVD 2014-04-03 09:07:00 +02:00
osae
054e7b42b8 Update tests and provide some eclipse output. 2014-03-31 15:32:06 +02:00
Atgeirr Flø Rasmussen
d13bf03e1f Bugfix in RsSatAtContact: use min(), not max().
Also modified test to match output.
2014-02-27 14:57:38 +01:00
Atgeirr Flø Rasmussen
1c9675605c Fix bug in RS initialisation.
Also throw if default init is specified and datum != goc depth.
2014-02-27 14:48:14 +01:00
Atgeirr Flø Rasmussen
a7c45d4e9f Rename PhasePressureSaturationComputer -> InitialStateComputer.
Also add (unused so far) rs_ field to class.
2014-02-27 09:08:39 +01:00
Atgeirr Flø Rasmussen
91ae9df907 Add test for live oil initialisation.
The test is not finished or verified yet.
2014-02-27 08:31:51 +01:00
Atgeirr Flø Rasmussen
38c89f363d Made phase mixing functors a class hierarchy.
In summary:
 - added RsFunction (base class),
 - made NoMixing, RsVD, RsSatAtContact inherit RsFunction,
 - RS and RV are no longer template arguments for EquilReg class,
 - EquilReg constructor now takes two shared_ptr<Miscibility::RsFunction>,
 - use of constructor updated, mostly using make_shared.
2014-02-26 14:47:24 +01:00
Atgeirr Flø Rasmussen
64b6a40191 Capitalize nested namespace names.
equil -> Equil
miscibility -> Miscibility
2014-02-24 15:55:14 +01:00
Atgeirr Flø Rasmussen
2b0fcfe748 Move RegionMapping class to its own header, add test.
Class now resides in opm/core/utility/RegionMapping.hpp.
2014-02-24 15:19:04 +01:00
Atgeirr Flø Rasmussen
83d0487097 Add test case with overlapping transitions.
Capillary pressure functions and contact depths
have been modified to ensure a large overlap.
2014-02-21 14:50:45 +01:00
Atgeirr Flø Rasmussen
7d63cb9204 Add test case with capillary transition region. 2014-02-21 08:55:15 +01:00
Atgeirr Flø Rasmussen
b2be489e6e Add saturation computation to and rename computer class.
Opm::equil::DeckDependent::PhasePressureComputer ->
Opm::equil::DeckDependent::PhasePressureSaturationComputer
2014-02-21 08:52:25 +01:00
Atgeirr Flø Rasmussen
dc6bcead91 Add test case for capillary inversion. 2014-02-21 08:32:15 +01:00
Atgeirr Flø Rasmussen
ebb6eaf742 Complete pressure test for dead-oil deck. 2014-02-19 13:41:20 +01:00
Atgeirr Flø Rasmussen
b134fe048a Still working on test_equil.cpp. 2014-02-05 11:26:29 +01:00
Atgeirr Flø Rasmussen
85be4b1263 Add (unfinished) test case. 2014-02-03 15:36:20 +01:00
Bård Skaflestad
76844c9c59 Include <numeric> for std::iota()
Header was missing in earlier revision.
2014-01-21 17:54:47 +01:00
Bård Skaflestad
6814b97698 Add reverse look-up mapping for region vectors
Class RegionMapping<> provides an easy way of extracting the cells
that belong to any identified region (e.g., as defined by EQLNUM) of
the deck.
2014-01-21 17:54:47 +01:00
Bård Skaflestad
4114da26bd Test cell subset phase pressure assignment. 2014-01-21 17:54:46 +01:00
Bård Skaflestad
c582d00fb6 Compute phase pressures in subset of cells
This commit adds support for assigning the initial phase pressure
distribution to a subset of the total grid cells.  This is needed in
order to fully support equilibration regions.  The existing region
support (template parameter 'Region' in function 'phasePressures()')
was only used/needed to define PVT property (specifically, the fluid
phase density) calculator pertaining to a particular equilibration
region.
2014-01-21 17:54:46 +01:00
Bård Skaflestad
4c39a8a595 Add basic equilibration facility
This commit adds a simple facility for calculating initial phase
pressures assuming stationary conditions, a known reference pressure
in the oil zone as well as the depth and capillary pressures at the
water-oil and gas-oil contacts.

Function 'Opm::equil::phasePressures()' uses a simple ODE/IVP-based
approach, solved using the traditional RK4 method with constant step
sizes, to derive the required pressure values.  Specifically, we
solve the ODE

      dp/dz = rho(z,p) * g

with 'z' represening depth, 'p' being a phase pressure and 'rho' the
associate phase density.  Finally, 'g' is the acceleration of
gravity.  We assume that we can calculate phase densities, e.g.,
from table look-up.  This assumption holds in the case of an ECLIPSE
input deck.

Using RK4 with constant step sizes is a limitation of this
implementation.  This, basically, assumes that the phase densities
varies only smoothly with depth and pressure (at reservoir
conditions).
2014-01-21 17:54:46 +01:00