Commit Graph

54 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
45de38a019 Throw exception if datum not in oil zone.
We are not capable of handling this, and must abort.
2014-02-04 10:56:09 +01:00
Atgeirr Flø Rasmussen
30d65e6c32 Removed RK4IVP's inheritance from binary_function.
Three reasons:
 - class is a unary functor,
 - the typedefs obtained were not used,
 - binary_function is deprecated in C++11.
2014-02-03 11:32:46 +01:00
Atgeirr Flø Rasmussen
0061b25408 Merge remote-tracking branch 'bska/initialisation' into initialisation 2014-01-31 15:41:58 +01:00
Bård Skaflestad
311ac78340 Add a layer of glue to extract data from deck
This is a work in progress.
2014-01-23 10:16:49 +01:00
Bård Skaflestad
f71ba5a9f7 Install crude handling of data point outside vertical span
The initial implementation of RK4IVP<>::operator() failed to take
into account the possibility that we might need to evaluate the
function outside the vertical span for which it was initially
defined.  This situation occurs, for instance, in the not uncommon
cases of the GOC being above or the WOC being below the model.

This commit installs a crude Hermitian extrapolation procedure to
handle these cases.  Refinements are likely.
2014-01-21 17:54:47 +01:00
Bård Skaflestad
ada48fd0b5 Document requirements of CellRange. 2014-01-21 17:54:47 +01:00
Bård Skaflestad
955cb795f3 Document public interface of phasePressures(). 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
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
Tor Harald Sandve
0c6bf64a33 Phase pressure is used for surface volumes calculations 2014-01-10 16:07:02 +01:00
Tor Harald Sandve
9e2ec6e558 Initialization using the RV keyword
The initial Rv value is specified using the RV keyword in the Parser.
The Rv values are used in the computation of the initial surface
volumes.
2014-01-10 16:07:02 +01:00
Tor Harald Sandve
d5b47295e3 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
027ffb3c5a Implemented well_controls based on well_controls_get_xxx() functions. 2014-01-06 14:40:55 +01:00
Joakim Hove
17b800796f 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
0450e1bb77 Extracted everything related to well controls to separate header well_controls.h - to simplify introducing new parser. 2014-01-03 16:04:12 +01:00
Tor Harald Sandve
c77d82a4ee Change name to initBlackoilStateFromDeckUsingRS
The second input of initBlackoilStateFromDeck that computes surface
volumes based on gas/oil ratio is changed from
BlackoilPropertiesInterface to Props. To avoid duplication with the old
initBlackoilStateFromDeck its name is changed to
initBlackoilSurfvolUsingRS.
2013-11-28 15:56:17 +01:00
Tor Harald Sandve
c1b6d57d32 Compute initial saturations from surface volumes
Add new function is added that computes saturation from surface volumes
solving z = As for each cell. This function is used to compute an
intial guess to the saturations in initState_impl.hpp.
2013-11-28 15:56:17 +01:00
Roland Kaufmann
1a1269d9d7 Extract common parts of blackoil and incomp. state
Put the identical parts of the simulator state into a base class that
they can be referenced from when adressing the common fields.
2013-11-13 13:48:28 +01:00
Kristian Flikka
3f970244de 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
877829f43a Added method equals in BlackoilState.hpp 2013-10-28 17:42:32 +01:00
Atgeirr Flø Rasmussen
88011cca2e Modify error message. 2013-10-07 12:57:51 +02:00
Atgeirr Flø Rasmussen
d4bb9c0611 Guard against erroneous use of initBlackoilSurfvol(). 2013-10-07 12:46:35 +02:00
Atgeirr Flø Rasmussen
5140d99e60 Merge pull request #386 from totto82/propsMRST
Changes to the props in order to  sync with MRST (Eclipse)
2013-10-07 03:41:09 -07:00
Tor Harald Sandve
aa126cb59f The initBlackoilStateFromDeck is now called only if RS is given in deck 2013-09-24 15:25:52 +02:00
Roland Kaufmann
f8f6836c2b 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
Tor Harald Sandve
7d12b0cc5c An initial guess of the surface volume is now computed using the RS
factor in order to compute a more accurate A matrix.
2013-09-24 11:14:22 +02:00
Roland Kaufmann
1341903bb7 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
d6fa31b452 convert users of the ASSERT and the ASSERT2 macros to standard assert() 2013-09-05 13:04:37 +02:00
Andreas Lauser
cb76a0fd7f convert THROW to OPM_THROW 2013-09-05 13:04:37 +02:00
Andreas Lauser
408d3389c3 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
Júlio Hoffimann
c077912466 Remove trailing whitespaces 2013-07-28 08:34:13 -03:00
Atgeirr Flø Rasmussen
5d457ff708 Ensures well rate initialization actually happens.
Do not use the well's comp_frac member, only rely on the control's distr
member for initialization. This forced a change to WellsManager's
initialization of the distr member.
2013-06-02 23:30:43 +02:00
Atgeirr Flø Rasmussen
175cecacda Bugfix in well rate init.
Do not always try to initialize, also initialize proper phase rates.
2013-06-02 22:19:43 +02:00
Atgeirr Flø Rasmussen
ad4c9a47e0 Refined well state initialization.
For SURFACE_RATE controlled wells, initialize wellRates() to match.
2013-06-02 21:58:30 +02:00
Atgeirr Flø Rasmussen
c280f2b0dd Initialize rate-controlled well bhp with safety factor.
Safety factor is 1.01 (INJECTOR) or 0.99 (PRODUCER), similar to
mrst's ad-fi/utils/initWellSolLocal.m > initialize().
2013-05-30 11:03:08 +02:00
Atgeirr Flø Rasmussen
a0a9c482ea Created new initialization routine, using RS from deck. 2013-05-27 15:44:07 +02:00
Atgeirr Flø Rasmussen
6e9a46b34d Added gasoilratio() to BlackoilState. 2013-05-27 12:53:06 +02:00
Atgeirr Flø Rasmussen
125c573461 Added assert to guard against wrong usage. 2013-05-24 09:21:41 +02:00
Atgeirr Flø Rasmussen
8592ca825a Added wellRates() member. 2013-05-21 23:54:30 +02:00
Bård Skaflestad
3f4c2ea564 Always interpret 'ref_pressure' as a double
Otherwise, when specifying (e.g.)

   ref_pressure=1.0e-5

(1 Pascal in bars), the value gets reinterpreted as

   ref_pressure=1

which is one bar.
2013-05-14 10:19:12 +02:00
Andreas Lauser
40fe2abf04 make config.h the first header to be included in any compile unit
this is required for consistency amongst the compile units which are
linked into the same library and seems to be forgotten quite
frequently.
2013-04-10 12:56:14 +02:00
Atgeirr Flø Rasmussen
8dee94dc0f Use markup for parameter lists. 2013-03-22 11:09:38 +01:00
Atgeirr Flø Rasmussen
f9f5cbf321 Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2013-03-18 12:47:23 +01:00
Atgeirr Flø Rasmussen
c78b7de680 Renamed newwells.h -> wells.h.
Also moved implementation file to subdir.
2013-03-18 10:33:34 +01:00
Atgeirr Flø Rasmussen
b73a33f4af Adapt include statements to moved headers. 2013-03-14 10:29:42 +01:00
Bård Skaflestad
d0fa32011b Opm::WellState::init(): Handle shut wells
This is a minor bugfix to account for the presence of shut wells
(characterised by "ctrls[w]->current < 0").  The existing code would
lead to indexing outside the "ctrls" array in the context of a shut
well.
2013-01-18 13:23:37 +01:00
Atgeirr Flø Rasmussen
0eb54ca90a Added perfPress() to WellState. 2012-10-01 16:39:35 +02:00
Atgeirr Flø Rasmussen
fa6b772972 Changed well initialization and property calculation.
Bhp is now initialized to bhp target for bhp-controlled wells.
Mobilities and pvt properties are now calculated from
well perforation pressure and injection specifications for
injectors, producers still use cell properties as before.
2012-09-14 09:53:11 +02:00
Halvor Møll Nilsen
50ff22141d Added writing of timings in param format 2012-08-21 09:57:36 +02:00