Commit Graph

182 Commits

Author SHA1 Message Date
Markus Blatt
f67ed5d334 Fix matrix size and symmetry for parallel runs. 2014-04-04 21:01:32 +02:00
Markus Blatt
7fd5b65691 Merge remote-tracking branch 'upstream/master' into parallel-solver-support
Removed conflicts in:
	opm/core/linalg/LinearSolverIstl.cpp
2014-04-04 20:38:52 +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
osae
5d028d4eca Merge branch 'master' of git://github.com/OPM/opm-core
Conflicts:
	CMakeLists_files.cmake
2014-03-26 14:51:06 +01:00
Joakim Hove
f0126b2501 Removed WellsManager constructor which takes an ole Eclipsegridparser instance. 2014-03-25 18:57:58 +01:00
Atgeirr Flø Rasmussen
5a9786aa32 Merge pull request #540 from joakim-hove/wellsmanager-well-properties
Changed the access method to well rates/properties
2014-03-21 08:58:07 +01:00
Joakim Hove
2eab8aeb38 Changed the access to Parser/EclipseState/Schedule to use new well injection and production properties. To be aligned with opm-parser:e75970a28b96374409a55e3e6cea2198b6a0ea23 2014-03-21 00:35:15 +01:00
Markus Blatt
b8959c45dd Increase verbosity such that we see the actual solve 2014-03-20 22:24:33 +01:00
Markus Blatt
eda0be1b8c Fixes the laplacian.
As we do not represent dofs on the boundary, we need to make sure that all diagonal
values are 4.
2014-03-20 22:21:03 +01:00
Markus Blatt
8d9cd23722 Fixed test_linearsolver for the official 2.2 release.
This release does neither support KAMG nor FastAMG. Therfore
this patch deactivates test these preconditioners.
2014-03-20 22:18:27 +01:00
Markus Blatt
bdc4573e2a Added support for the parallel solvers of dune-istl.
To support this the solveSystem methods of the LinearSolverInterface gets
an optional additional template parameter of type boost::any. It can hold any
copy constructable object. In our case it is used to pass the information about
the parallelization into the solvers of dune-istl without the compiler needing to know
their type. Inside of LinearSolverIstl::solveSystem we check whether the type stored inside of
boost::any is the new ParallelIstlInformation. If this is the case we extract the information
and use the parallel solvers if available, otherwise we solve serial/sequential.

The new ParallelIstlInformation is needed as the OwnerOverlapCopyCommunication is not copy
constructable. This is indeed a design flaw that should and will fixed upstream, but for the
time being we need ParallelIstlInformation to transfer the ParallelIndexSet and RemoteIndices
objects.
2014-03-20 21:59:29 +01:00
Markus Blatt
2f3c17bd9d Added a test for the linear solver interface.
This test sets up a simple laplace problem and solves it with the available
solvers. It assume that either dune-istl or UMFPack is present, which is
assume to be safe.
2014-03-19 21:48:07 +01:00
Joakim Hove
8be1f0e8d3 Changed open / close behaviour of well_controls: 1) well_controls has an explicit open_close flag. 2) Will NOT flip current value to change open|close status 2014-03-04 20:23:19 +01:00
Atgeirr Flø Rasmussen
c2b647d245 Add test data file for compute_initial_state.cpp. 2014-02-27 15:55:08 +01: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
4ec65f2f8f Add another test deck for initialisation.
This deck includes capillary functions.
2014-02-20 15:39: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
2ebaef62a0 Modify test data. 2014-02-19 13:40:02 +01:00
Kristian Flikka
ab42682399 Removed old EclipseGridParser from WellsManager constructor, WGROUPCON still missing 2014-02-14 15:36:32 +01:00
Kristian Flikka
3c93c7a781 Added building of WellsCollection group structure from new opm-parser objects 2014-02-14 13:43:25 +01:00
Kristian Flikka
d7568b4adf Changed the WellCollection addChild functions to be more specific, and strict 2014-02-13 16:00:39 +01:00
Kristian Flikka
1181d1c1bc Create WellsGroupInterface from opm-parser Well/Group objects 2014-02-12 15:39:57 +01:00
Kristian Flikka
7ba6431209 Fixed copyright section 2014-02-11 14:21:15 +01:00
Kristian Flikka
b6072e5112 Added support for creation of WellsGroup objects from new parser Well and Group objects 2014-02-11 14:12:36 +01:00
Kristian Flikka
aa329b8b3e Removed WELOPEN from constructor, added throwing on non OPEN/SHUT statuses 2014-02-06 16:31:35 +01:00
Atgeirr Flø Rasmussen
b134fe048a Still working on test_equil.cpp. 2014-02-05 11:26:29 +01:00
Joakim Hove
ca2def2a02 Merged upstream/master 2014-02-04 21:42:07 +01:00
Atgeirr Flø Rasmussen
04eea929ba Fix contact depths in test deck. 2014-02-04 10:57:23 +01:00
Atgeirr Flø Rasmussen
634b78a9d9 Created simple data for init testing. 2014-02-04 09:38:47 +01:00
Atgeirr Flø Rasmussen
85be4b1263 Add (unfinished) test case. 2014-02-03 15:36:20 +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
0fc3571488 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
Joakim Hove
3e2df33a65 Merge remote-tracking branch 'upstream/opm-parser-integrate' into wellsmanager-rates
Conflicts:
	opm/core/wells/WellsManager.cpp
2014-01-30 09:50:09 +01:00
Kristian Flikka
fbe2f31653 Updated COMPDAT i,j,k indices, and removed the old commented part 2014-01-29 11:58:14 +01:00
Kristian Flikka
0d492ce407 Changed data file not not have same perforation multiple times, as the old system doesn't support this 2014-01-29 11:58:13 +01:00
Kristian Flikka
7ce9cb9055 Compdat extraction from new CompletionXXX classes 2014-01-29 11:58:13 +01:00
Kristian Flikka
74c3040c43 Added an extra data file with an extra well 2014-01-29 11:58:13 +01:00
Joakim Hove
9f948329c4 Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2014-01-29 11:02:21 +01:00
Joakim Hove
1548984acd Merge remote-tracking branch 'upstream/master' into wellsmanager-rates 2014-01-29 11:01:14 +01:00
Kristian Flikka
3b0a9067b4 Removes the WELSPECS usage in WellsManager constructor. Step 1 in rewrite of constructor 2014-01-22 15:22:32 +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
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
Kristian Flikka
731fe7d3f4 Changed new WellsManager constructor to take in EclipseStateConstPtr instead of SchedulePtr 2014-01-08 16:10:55 +01:00
Kristian Flikka
1f1c0ebcf3 New constructor for WellsManager that also takes the new parser as argument. New test comparing old and new 2014-01-07 16:10:45 +01:00
Kristian Flikka
41b7af408b Merge from joakim/wellmanager 2014-01-07 16:09:35 +01:00
Joakim Hove
8132954b85 Added functions to get type, target and distr of *current* control. 2014-01-06 14:40:03 +01:00
Joakim Hove
6098368d08 Added new function well_controls_iset_distr(). 2014-01-06 12:22:15 +01:00
Joakim Hove
bf95c9f768 Added new functions to set target and type and invert value of current control. 2014-01-06 12:06:36 +01:00
Joakim Hove
8819f7f42c Changes test_wells to use well_controls_get_xxx() functions. 2014-01-06 10:34:25 +01:00
Joakim Hove
efcb1103d1 Changed test_wellsmanager to use well_controls_get_xxx() functions. 2014-01-06 10:26:46 +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
fb8413960c 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
ec71334d74 Added test calls to wells_equal() and well_controls_equal(). 2014-01-03 16:01:15 +01:00
Joakim Hove
487ff810fd Added test_wellmanager which loads wellmanager from deck and tests many values. 2014-01-03 16:00:57 +01:00
Kristian Flikka
e4a7a33598 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
Joakim Hove
1829acd201 Added very simple parser test to check a parser can be instantiated and a simple file parsed 2013-11-14 12:52:12 +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
5798b5f9f1 Added test with accompanying data for Blackoilstate::equals() 2013-10-28 17:43:29 +01:00
Andreas Lauser
5cd622fbf7 use std::shared_ptr instead of boost::shared_ptr
our policy is that we only use boost if necessary, i.e., if the oldest
supported compiler does not support a given feature but boost
does. since we recently switched to GCC 4.4 or newer, std::shared_ptr
is available unconditionally.
2013-08-08 13:25:58 +02:00
Roland Kaufmann
814130f010 Provide way of shadowing only some properties
The current implementations of IncompPropertiesInterface are very
all-or-nothing. In some situations, you want to read rock and fluid
properties from an Eclipse file, but use analytical functions for
the unsaturated properties. Or you want to update properties based
on a marching filter.

This patch provides a way to mix various property objects, or to
"shadow" the properties with a raw array of data, so you don't have
to reimplement the entire interface just to make a small change.
2013-07-30 13:11:52 +02:00
Bård Skaflestad
a1b0a0af83 Mark deck as FIELD units.
The numbers in the deck are more indicative of FIELD unit conventions
than METRIC unit conventions, so allow the input parser to interpret
the data in that manner.
2013-06-05 12:24:23 +02:00
Tor Harald Sandve
d7d80e6225 A test that compares the blackoil fluid based on the [p,r] interface
with the blackoil fluid based on the [p,z] interface
2013-06-05 11:21:47 +02:00
Atgeirr Flø Rasmussen
2d876925b7 Update to follow previous moves and deletes. 2013-03-18 12:40:34 +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
507b756dac Move GridManager to grid subdir.
Also remove GridAdapter (moved to dune-cornerpoint), and
moved grid.c implementation file to grid subdir.
2013-03-18 10:16:46 +01:00
Atgeirr Flø Rasmussen
13f945f081 Added test for DG basis classes.
Only 2d so far.
2013-01-17 14:35:50 +01:00
Bård Skaflestad
a92549290f New function clone_wells()
Used to create a deep copy (clone) of an existing Wells object.

While here, add test case for common Wells object operations.
2012-10-04 21:09:47 +02:00