Commit Graph
211 Commits
Author SHA1 Message Date
Atgeirr Flø Rasmussen 14276f9175 Capitalize nested namespace names.
equil -> Equil
miscibility -> Miscibility
2014-02-24 15:55:14 +01:00
Atgeirr Flø Rasmussen 34595ae225 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 2b8deb20fd 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 c7af2aa8ca Add test case with capillary transition region. 2014-02-21 08:55:15 +01:00
Atgeirr Flø Rasmussen e6d21e31d3 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 5e1ad40afd Add test case for capillary inversion. 2014-02-21 08:32:15 +01:00
Atgeirr Flø Rasmussen 4408ea669b Add another test deck for initialisation.
This deck includes capillary functions.
2014-02-20 15:39:15 +01:00
Atgeirr Flø Rasmussen e81aa92c03 Complete pressure test for dead-oil deck. 2014-02-19 13:41:20 +01:00
Atgeirr Flø Rasmussen f6f4a1a0da Modify test data. 2014-02-19 13:40:02 +01:00
Atgeirr Flø Rasmussen b3ac9529c8 Merge branch 'master' into initialisation 2014-02-10 13:24:35 +01:00
Atgeirr Flø Rasmussen 6100f1758f Fix variable shadowing warning. 2014-02-05 15:05:26 +01:00
Atgeirr Flø Rasmussen 4396130765 Still working on test_equil.cpp. 2014-02-05 11:26:29 +01:00
Atgeirr Flø Rasmussen b1ffc25476 Fix contact depths in test deck. 2014-02-04 10:57:23 +01:00
Atgeirr Flø Rasmussen f7a2989697 Created simple data for init testing. 2014-02-04 09:38:47 +01:00
Atgeirr Flø Rasmussen 562b00effb Add (unfinished) test case. 2014-02-03 15:36:20 +01:00
Atgeirr Flø Rasmussen 48f210ebbd Merge remote-tracking branch 'bska/initialisation' into initialisation 2014-01-31 15:41:58 +01:00
Bård Skaflestad dedbe9272c Fix fallout from PR #474
The check introduced in PR #474 (commit ad899fc) means all decks
must supply valid depth data.  Update test decks accordingly to
restore "make test".
2014-01-31 14:24:02 +01:00
Bård Skaflestad 965918a8a3 Include <numeric> for std::iota()
Header was missing in earlier revision.
2014-01-21 17:54:47 +01:00
Bård Skaflestad aa9e28a5b8 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 88b9db9a45 Test cell subset phase pressure assignment. 2014-01-21 17:54:46 +01:00
Bård Skaflestad e84e6ee4bb 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 4ea3e7ed53 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
Tor Harald Sandve 598c7a0cb8 Added pvt functionality for wetgas
The pvt interface is extended to handle wet-gas systems:
1. rvSat is added as a function in the PVT interface
2. SinglePvtLiveGas computes the pvt values and its derivatives
3. The old rbub variable is changed to rsSat for clearity
4. The new interface is tested in test_blackoilfluid with data from
liveoil.DATA and wetgas.DATA
2014-01-10 16:07:02 +01:00
Joakim Hove b346845903 Added functions to get type, target and distr of *current* control. 2014-01-06 14:40:03 +01:00
Joakim Hove 58ba8f45eb Added new function well_controls_iset_distr(). 2014-01-06 12:22:15 +01:00
Joakim Hove fdf7bdba85 Added new functions to set target and type and invert value of current control. 2014-01-06 12:06:36 +01:00
Joakim Hove 85984a72e4 Changes test_wells to use well_controls_get_xxx() functions. 2014-01-06 10:34:25 +01:00
Joakim Hove 9d9c6a5676 Changed test_wellsmanager to use well_controls_get_xxx() functions. 2014-01-06 10:26:46 +01:00
Joakim Hove 0b37bdd1ec Temporarily added symbol HAVE_WELLCONTROLS before including well_controls.h - to get acces to the internal elements in struct WellControls. 2014-01-05 16:25:31 +01:00
Joakim Hove 35d46225b8 Removed #include <opm/core/well_controls.h> from wells.h and inserted explicit #include <opm/core/well_controls.h> where needed. 2014-01-05 15:03:30 +01:00
Joakim Hove 61ec55403a Added test calls to wells_equal() and well_controls_equal(). 2014-01-03 16:01:15 +01:00
Joakim Hove 35b371dfa9 Added test_wellmanager which loads wellmanager from deck and tests many values. 2014-01-03 16:00:57 +01:00
Kristian Flikka fd942e347d Implementation (not finished) of wells_equal, well_controls_equal, and tests. To build a WellsManager test for old and new parser
Conflicts:
	CMakeLists_files.cmake
2014-01-03 16:00:10 +01:00
Bård Skaflestad 9e1e50d159 Switch condition interface to phase presence facility
Commit a5a4d7b introduced density and viscosity evaluators into the
SinglePvtInterface that accepted an externally assignable condition
to distinguish saturated from unsaturated cases.  As a result of a
few low-level technical problems with that approach, this commit
changes those affected interfaces to use the black-oil specific
'PhasePresence' facility of commit a033329 instead.

Update tests and callers accordingly.

Suggested by: @andlaus
Approved by:  @atgeirr
2013-12-03 16:12:52 +01:00
Tor Harald Sandve a5a4d7ba39 Added functions for b and mu with isSaturated as input.
Functions for volume factor and viscosity that explicitly take a boolean
variable indicating whether the fluid is saturated or not is added to
the SinglePvtInterface.

Corresponding changes are done in the dependent PVT files.

The new functionality is tested in test_blackoilfluid
2013-11-28 15:56:17 +01:00
Andreas Lauser ae901534c3 spline: fix the monotinic_() method and creation of monotonic splines
also, extend the unit test for it. (*phew* that was much more fun than
appreciated because of all the index shifts. I'm still not 100% sure
that everything works in all corner cases, but at least my confidence
is at 95%.)
2013-11-07 19:53:31 +01:00
Andreas Lauser c9067c4bda spline: some fixes to make Spline::intersect() work correctly
most of these issues are fallout from the conversion of the spline
class from a moments (second derivative) based approach to hermite
base functions:

- the second and third derivatives where incorrect, and the third
  derivative was not available in the public interface.
- The unit test did not check the derivatives
- The coefficients for the monomial basis were off by the factors
  stemming from the derivatives
- The intersectIntervall_() method used std::max() instead of
  std::min() at one place and still added the base offset for the x
  values as indicated by Stoer
2013-11-07 15:06:59 +01:00
Kristian Flikka ed8efaefe1 Replaced include math.h with cmath, and changed from fabs to abs. Fixed an error in the testfile, a filename was wrong 2013-11-04 13:51:32 +01:00
Joakim Hove e7e2f6588b Added test with accompanying data for Blackoilstate::equals() 2013-10-28 17:43:29 +01:00
Roland Kaufmann f3877facb0 Only use Clang-specific pragma if compiler is Clang
Otherwise the compiler will probably give us a warning that these
pragmas are unknown. By default that warning is disabled with our
own build system, but we also want to be able to link to our library
without incorporating the entire build system too.
2013-09-24 11:15:26 +02:00
Atgeirr Flø Rasmussen d086ee5c63 Merge pull request #344 from andlaus/import_propertysystem
Import propertysystem
2013-09-23 04:18:02 -07:00
Roland Kaufmann cbe232e880 Add missing header include 2013-09-20 10:51:18 +02:00
Andreas Lauser 9733d9c995 add a test for the property system 2013-09-19 20:09:07 +02:00
Atgeirr Flø Rasmussen 86d09115b9 Merge pull request #345 from andlaus/import_splines
Import splines
2013-09-19 10:26:02 -07:00
Andreas Lauser 0d0ab3bd5a refactor the spline code: merge everything into one class 2013-09-19 18:48:54 +02:00
Roland Kaufmann 244c867505 Don't warn about functions not emitted
If a function is used by a template but this template is not
instantiated, the function will still be defined in the header
of a module but it won't be callable because it is in an anonymous
namespace and thus we get a warning.

This only happens in Clang; GCC consider functions referenced from
templates as used.

fixup! Don't warn about functions not emitted
2013-09-19 13:09:44 +02:00
Andreas Lauser 8ef3b6e6c7 introduce classes for monotonic, full, periodic and natural cubic splines 2013-09-09 13:29:50 +02:00
Andreas Lauser c25ec5999e convert users of the ASSERT and the ASSERT2 macros to standard assert() 2013-09-05 13:04:37 +02:00
Andreas Lauser 19e5d5cea2 convert THROW to OPM_THROW 2013-09-05 13:04:37 +02:00
Andreas Lauser d11db08084 include iostream in the files which use std::cerr or std::cout
for some of these files this is needed to make to keep it compiling
after the next patch because the new ErrorMacros.hpp file will no
longer implicitly includes <iostream>. for the remaining files it is
just good style.

While at it, the includes for most of these files have been ordered in
order of decreasing abstraction level.
2013-09-05 13:04:37 +02:00