Commit Graph

1140 Commits

Author SHA1 Message Date
osae
b86fa0af86 New parser included. 2014-03-28 17:35:43 +01:00
osae
b485d03711 Default equil region should be one not zero ...
Otherwise problems when kw EQLNUM is used.
2014-03-28 17:18:50 +01:00
Markus Blatt
c282949400 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Manually resolved conflicts:
	opm/core/io/eclipse/EclipseWriter.cpp
	opm/core/io/eclipse/EclipseWriter.hpp
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/simulator/initState_impl.hpp
	opm/core/wells/WellsManager.cpp
	opm/core/wells/WellsManager.hpp
2014-03-27 15:27:11 +01:00
Markus Blatt
8653ffe327 [bugfix] Use the size of the vector for the copying.
The last patch did not compile as there was no size member
in scope. Therefore this patch resorts to using the size of
the vector.
2014-03-27 11:53:13 +01:00
Markus Blatt
23f19584cb Throw an error when using a sequential solver in parallel 2014-03-27 11:49:41 +01:00
osae
e1d2fa2088 Some adjustments to equil initialisation.
- Saturations, phase pressures, and standard initialsation of RS and RV
   now agree to baseline.
 - Tables of RS and RV versus vertical depth (kw RSVD RVVD) have been
   hardcoded for testing (need new parser) and the calculations agree to
   baseline in the gas and oil zones.  In the water zone there is some
   differences: Our code computes saturated RS and RV using the final
   phase pressures (these are modified to be consistent with saturations
   and capillary pressures) while the baseline uses unmodified phase pressures.
2014-03-26 14:53:47 +01: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
Markus Blatt
7495bfa6c4 [bugfix] Use the size of the vector for the copying.
The last patch did not compile as there was no size member
in scope. Therefore this patch resorts to using the size of
the vector.
2014-03-26 10:23:11 +01:00
Joakim Hove
f0126b2501 Removed WellsManager constructor which takes an ole Eclipsegridparser instance. 2014-03-25 18:57:58 +01:00
Markus Blatt
3115b7868f Moved ISTL right and left hand side construction for ISTL to solveSystem
cherry-picked from add-scalarproduct and ported.
2014-03-25 09:58:07 +01:00
Markus Blatt
909d3c9019 Moved ISTL right and left hand side construction for ISTL to solveSystem 2014-03-25 09:37:41 +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
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
cec51280e7 Explicitly construct the ScalarProduct, and SequentialInformation.
This patch refactors the calls to the dune-istl solvers.
The SeqScalarProduct, and SequentialInformation is now explicitly
constructed and later used to construct the smoothers
generically. Aditionally the linear operator (MatrixAdapter) is
constructed before calling the various solver dependent solve
routines.

While this does not change the behaviour of the code it is a
preparatory step to support parallel solvers. These parallel
solvers only differ in the type of the scalarproduct and
linear operator used from the sequential ones.
2014-03-20 12:09:24 +01:00
Markus Blatt
e1d0995104 Explicitly construct the ScalarProduct, and SequentialInformation.
This patch refactors the calls to the dune-istl solvers.
The SeqScalarProduct, and SequentialInformation is now explicitly
constructed and later used to construct the smoothers
generically. Aditionally the linear operator (MatrixAdapter) is
constructed before calling the various solver dependent solve
routines.

While this does not change the behaviour of the code it is a
preparatory step to support parallel solvers. These parallel
solvers only differ in the type of the scalarproduct and
linear operator used from the sequential ones.
2014-03-20 10:39:48 +01:00
Markus Blatt
8f60175d04 Include fastamg.hh for dune-istl 2.3
For the inofficial 2.2 release this was included automatically with amg.hh.
2014-03-19 19:51:17 +01:00
Markus Blatt
d333f413d1 Complete cf7f07b PR #530 to support FastAMG with dune-istl 2.3
This fixes further occurences of DUNE_HAS_FASTAMG that were
missed in pull request #530.

Previously we relied on the define DUNE_HAS_FAST_AMG to detect
whether these preconditioners are available. This define is only
available in the 2.2 release with cmake support. Therfore we now
addtionally test whether we are using dune-istl 2.3 or newer.
2014-03-19 17:40:02 +01:00
Atgeirr Flø Rasmussen
a9a3b423f0 Merge pull request #530 from blattms/support-fast-amg-2.3
Makes KAMG and FastAMG solver available with dune-istl 2.3
2014-03-19 15:28:23 +01:00
Atgeirr Flø Rasmussen
331342d753 Merge pull request #528 from blattms/fix-nonunifom
Fixes compilation of BlackoilPropertiesFromDeck.cpp.
2014-03-19 12:31:05 +01:00
Andreas Lauser
ddd662734f endpoint scaling: change default threephase_model to gwseg
and throw an exception if "simple" is encountered...

According to Ove, gwseg should be used, because "gwseg is the model
relevant to the norne case - i.e the model eclipse uses.

The fix for the simple model has to wait for a refac of the satfunc
complex."
2014-03-19 11:22:43 +01:00
Markus Blatt
8c8bb67aa0 Makes KAMG and FastAMG solver available with dune-istl 2.3
Previously we relied on the define DUNE_HAS_FAST_AMG to detect
whether these preconditioners are available. This define is only
available in the 2.2 release with cmake support. Therfore we now
addtionally test whether we are using dune-isl 2.3 or newer.
2014-03-19 11:19:25 +01:00
Markus Blatt
dd99948869 Fixes compilation of BlackoilPropertiesFromDeck.cpp.
Patch 31c09aed was erroneous as it was trying to assing a
SaturationPropsFromDeck<SatFuncSimpleNonuniform> to a
SaturationPropsFromDeck<SatFuncSimpleUniform> in the constructor
taking the new parser. This patch fixes this.
2014-03-19 11:09:13 +01:00
Atgeirr Flø Rasmussen
3d178087e7 Merge pull request #517 from blattms/issue-516
Apply changes from commit a953ba8 to new parser code too.
2014-03-19 08:29:16 +01:00
Andreas Lauser
0c1df10524 endpoint scaling: invert condition
yeah, true and false are difficult things sometimes...
2014-03-18 15:11:38 +01:00
Atgeirr Flø Rasmussen
5fc6cbc16f Made single-argument constructors explicit.
Avoids unintended implicit conversions.
2014-03-17 13:27:50 +01:00
Bård Skaflestad
957ad787ad Merge pull request #508 from atgeirr/adjust-initial-wellrates
Adjustment to well rate initialisation.
2014-03-15 14:59:27 +01:00
Atgeirr Flø Rasmussen
a13f7b990f Fix logic related to open/shut wells initialisation. 2014-03-14 11:27:20 +01:00
Atgeirr Flø Rasmussen
5bd306e7f0 Merge pull request #514 from joakim-hove/wells-cpos-manipulation
Removed cpos = ~cpos constructions for closing a well
2014-03-14 11:08:53 +01:00
Andreas Lauser
0b3217fe6f initStateFromDeck(): do not accept potentially contradicting ways to set the initial condition
i.e. PRESSURE and EQUIL are now considered mutually exclusive...
2014-03-13 16:33:32 +01:00
Markus Blatt
bb7b709312 Make initStateFromDeck with the new parser deck usable again.
My last merge broke compilation of opm-autodiff, as this new function
still relied on the old behaviour (the one taking a grid instead of
the data directly). This patch moved initStateFromDeck to the new behaviour.
2014-03-13 15:59:37 +01:00
Markus Blatt
e37cab0529 Fixed SaturationPropsFromDeck::initEPSKey for new parser and non-UG
There the cell_centroids where still treated like double*. This patch
uses the UgGridHelpers instead.
2014-03-13 15:41:59 +01:00
Markus Blatt
c6daebc35d Merge branch 'refactor-for-cpgrid-support' into master-refactor-for-cpgrid-support
Manually resolved conflicts in:
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/wells/WellsManager.cpp
2014-03-13 13:41:45 +01:00
Markus Blatt
d2bbf9a728 Fixed missed on occurence of number of samples 2014-03-13 12:13:11 +01:00
Markus Blatt
d0ca878c2a Apply changes from commit a953ba8 to new parser code too.
The mentioned commit was applied before the merge of
opm-parser-integrate and therefore the changes did not carry over
to the code that uses the new parser. This code mimics the
changed behaviour for the new parser.

Closes issue #516
2014-03-13 12:00:01 +01:00
Joakim Hove
ca7de3c7c1 Will check if a well is open before throwing for an invalid control. 2014-03-12 20:27:17 +01:00
Joakim Hove
7413894a67 Removed cpos = ~cpos constructions for closing a well; using well_controls_shut_well explicitly instead. 2014-03-12 17:41:40 +01:00
Atgeirr Flø Rasmussen
c0fd117103 Bugfix: || -> && 2014-03-11 12:54:04 +01:00
Atgeirr Flø Rasmussen
a592a23153 Assert to avoid future surprises.
Well types must be either INJECTOR or PRODUCER for now, if
we change this in the future, we should check this part of
the code as well.
2014-03-11 12:51:49 +01:00
Atgeirr Flø Rasmussen
db6a36d1fd Commented choices in initialisation of well rates. 2014-03-11 12:50:58 +01:00
Atgeirr Flø Rasmussen
c0ddb9707e Initialize well rates better.
Instead of making well rates zero for wells that are not controlled by
surface volume, we initialize them to a small value with the correct
sign (positive for injectors, negative for producers).
2014-03-10 13:30:43 +01:00
Bård Skaflestad
d88a5572b8 Merge pull request #506 from atgeirr/suppress-warnings
Suppress warnings
2014-03-06 11:37:17 +01:00
Arne Morten Kvarving
bb1e21d764 add option to quell dune(-istl) warnings 2014-03-05 09:27:47 +01:00
Atgeirr Flø Rasmussen
85a323e7da Remove warning pragmas.
They are only available on gcc 4.6 and newer, and clang.
2014-03-05 08:41:53 +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
ae0464afe3 Suppress unused argument warnings. 2014-03-04 11:32:32 +01:00
Atgeirr Flø Rasmussen
95a17f847a Suppress warnings from included istl code.
This is done using #pragma GCC and works also in clang.
2014-03-04 11:31:16 +01:00
Atgeirr Flø Rasmussen
b40d2e63d0 Merge pull request #495 from osae/endscale
Endpoint scaling and hysteresis for gwseg.
2014-03-04 10:29:50 +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
1b3cac2433 Remove debugging output. 2014-02-27 13:27:07 +01:00
Atgeirr Flø Rasmussen
af9c1fc4cc Add computeRs() function and use from InitialStateComputer. 2014-02-27 13:14:48 +01:00
Atgeirr Flø Rasmussen
f84162bc39 Add initStateEquil() function.
It is not quite complete yet for the following reasons:
  - it does not compute state.surfacevol(),
  - the InitialStateComputer class does not compute Rs or Rv,
  - it has not been verified.
2014-02-27 10:40:14 +01:00
Atgeirr Flø Rasmussen
4aaeff0078 Added Rv field to InitialStateComputer.
It is currently not computed, as for Rs.
2014-02-27 10:39:18 +01:00
Atgeirr Flø Rasmussen
0fbc3a1ccb Moved implementation of phaseSaturations() to _impl file. 2014-02-27 09:37:48 +01:00
Atgeirr Flø Rasmussen
a1192c09dc Refactor copying of region to global data. 2014-02-27 09:31:48 +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
27743b4a13 Enable live oil in initialisation. 2014-02-27 08:31:03 +01:00
Joakim Hove
e5f1e1b0b8 Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2014-02-26 23:16:10 +01:00
Atgeirr Flø Rasmussen
d5ffcc051c Removed redundant calcPressII() method.
Pressure is also calculated in the calcPressSat() method.
2014-02-26 14:49:06 +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
8266c52d99 Made NoMixing a class.
For uniformity with its sibling classes.
2014-02-26 14:16:51 +01:00
Markus Blatt
2d54a7398b Refactored WellsManager to partial use without UnstructuredGrid. 2014-02-25 17:52:51 +01:00
Markus Blatt
f356d86701 Remove ambiguous functions increment and getCoordinate from unnamed namespace in favor to those from namespace UgGridHelpers 2014-02-25 15:45:50 +01:00
Markus Blatt
d307df71e7 Added suport for grid apart from UG for BlackoilPropertiesFromDeck 2014-02-25 15:45:15 +01:00
Markus Blatt
ab0b2a9c6b Added support for computePoreVolume for grids apart from UnstructuredGrid. 2014-02-25 15:12:16 +01:00
Markus Blatt
e30031dc77 Added missing namespace qualifiers. 2014-02-25 15:10:46 +01:00
Markus Blatt
c7e20e5eb3 Fixed unused parameter warning in initBlackoilStateFromDeck. 2014-02-25 15:10:18 +01:00
Atgeirr Flø Rasmussen
74573947bb Prune includes. 2014-02-24 16:11:50 +01:00
Atgeirr Flø Rasmussen
7e0bd62205 Moved equilibration utilities to separate file. 2014-02-24 16:09:04 +01:00
Atgeirr Flø Rasmussen
64b6a40191 Capitalize nested namespace names.
equil -> Equil
miscibility -> Miscibility
2014-02-24 15:55:14 +01:00
Kristian Flikka
a055b529ec Add handling of WGRUPCON to new-parser friendly WellsManager constructor 2014-02-24 15:24:33 +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
c689bc757f Added class RsSatAtContact (not tested). 2014-02-24 13:47:03 +01:00
Atgeirr Flø Rasmussen
6c8babc7d2 Fix bug in saturation initialisation.
We shall only use gas-water capillary to initialise when we would get
unphysical saturations otherwise.
2014-02-21 14:47:14 +01:00
Atgeirr Flø Rasmussen
6ef6b82ab5 Merge branch 'no-spline-default' into initialisation.
Necessary since test case behaviour depends on changes in
BlackoilPropertiesFromDeck class.
2014-02-21 11:01:44 +01:00
Atgeirr Flø Rasmussen
50637e1a3b Make linear interpolation default for saturation properties.
This includes relative permeability and capillary pressure functions.
The default has been to make a monotone spline from the given table
values and use a fine, uniform sampling of that. Now the default
is to use the tables as-is. It is still possible to use the spline
approach. For example in the class BlackoilPropertiesFromDeck one
may pass nonzero values for the 'pvt_tab_size' and 'sat_tab_size'
parameters, corresponding to how fine the spline will be sampled.
2014-02-21 09:54:47 +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
e1069cf39b Fix bugs in saturation initialisation and helpers. 2014-02-20 15:24:27 +01:00
Markus Blatt
b328c13bc0 Assume begin_cell_centroid to what the name tells us: an iterator over then centroids.
Therfore we do not need to call center() in getCoordinate. This is done in the iterator
class returned from CpGrid.
2014-02-20 10:45:08 +01:00
Markus Blatt
21864388bd Merge remote-tracking branch 'origin/opm-parser-integrate' into refactor-for-cpgrid-support
Resolved Conflicts:
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/props/rock/RockFromDeck.hpp
	opm/core/props/satfunc/SaturationPropsFromDeck.hpp
	opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp
2014-02-19 15:22:18 +01:00
Atgeirr Flø Rasmussen
b09dd7750a Add saturation init facilities.
This adds the function phaseSaturations() and some helpers:
satFromPc() and satFromSumOfPcs().
2014-02-19 13:42:07 +01:00
Atgeirr Flø Rasmussen
82216fa24f Add (defaulted) gravity argument in some places.
This is done to facilitate testing, using gravity = 10 m/s^2 for example.
2014-02-19 13:38:21 +01:00
osae
c93c1252e5 Endpoint scaling and hysteresis for gwseg.
Activation of eps and hysteresis treatment for gwseg. Also some
additional initialization.
2014-02-18 13:49:35 +01:00
Markus Blatt
d5f470cb68 Refactored parts needed for Blackoil in autodiff to get rid of UG dependency.
This patch refactors (hopefully) all parts of opm-core that are needed
by the fully implicite black oil solver in opm-autodiff and that inherently
relied on UnstructuredGrid.

We added a new simple grid interface consisting out of free functions
that will allow us to use CpGrid without copying it to an UnstructuredGrid
by the means of the GridAdapter. Using this interface we have add methods that
allow specifying the grid information (global_cell, cartdims, etc.) wherever
possible to prevent introducing grid parameters for the type of the grid.
Unfortunately this was not possible everywhere.
2014-02-17 13:23:01 +01:00
Kristian Flikka
ab42682399 Removed old EclipseGridParser from WellsManager constructor, WGROUPCON still missing 2014-02-14 15:36:32 +01:00
Joakim Hove
4982a913ee Merge pull request #493 from flikka/wellsmanager-group-refactor
Adding support for creation of groups from "new style" Wells and Groups (new parser)
2014-02-14 13:54:24 +01:00
Kristian Flikka
d1494e7daa Removed the previously introduced getAndUnRootChild method 2014-02-14 13:46:54 +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
ae8944f6ea Added an else to avoid unnecessary checking. 2014-02-14 09:01:21 +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
f94f63ff56 Extracted common functionality from the three create functions 2014-02-12 15:45:06 +01:00
Kristian Flikka
1181d1c1bc Create WellsGroupInterface from opm-parser Well/Group objects 2014-02-12 15:39:57 +01:00
Andreas Lauser
24cf0ab99f add back a newline which went MIA
this confused the heck out of us during review. thanks to @bska for
stumbling over it...
2014-02-12 15:06:46 +01:00
Andreas Lauser
42f5025c88 add variants of all methods which take a deck of the new parser to the BlackOilPropertiesFromDeck 2014-02-12 15:06:46 +01:00
Joakim Hove
0393a8f87d Merge pull request #467 from andlaus/parser-integrate_rock_properties
add variants of all methods which take a deck of the new parser to the rock properties
2014-02-11 18:13:07 +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
Andreas Lauser
4018bcfc71 make the saturation functions work with opm-parser 2014-02-10 14:50:37 +01:00
Andreas Lauser
1221ea25c1 more typos
thanks to @bska
2014-02-10 14:49:58 +01:00
Andreas Lauser
5b77bcd4a0 handle the ROCK keywords using the new opm-parser utility class 2014-02-10 14:49:58 +01:00
Andreas Lauser
e177b657f9 use the (new) RocktabTable class for rock compressibility
thanks to @bska for pointing this out
2014-02-10 14:49:58 +01:00
Andreas Lauser
7fdda98213 add variants of all methods which take a deck of the new parser to the rock properties 2014-02-10 14:49:58 +01:00
Joakim Hove
88c99663c6 Merge pull request #469 from andlaus/parser-integrate_phase_usage_from_deck
git add variant of phaseUsageFromDeck() which takes a deck of the new parser
2014-02-10 13:30:39 +01:00
Atgeirr Flø Rasmussen
1f2b2eadc5 Merge branch 'master' into initialisation 2014-02-10 13:24:35 +01:00
Andreas Lauser
f1f801aca5 add back blank line as requested by @bska 2014-02-07 19:35:28 +01:00
Andreas Lauser
a91a6c9484 git add variant of phaseUsageFromDeck() which takes a deck of the new parser 2014-02-07 19:35:28 +01:00
Joakim Hove
5d8c1244db Merge remote-tracking branch 'upstream/opm-parser-integrate' into opm-parser-integrate 2014-02-07 09:23:39 +01:00
Joakim Hove
97bfb0ed82 Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2014-02-07 09:23:22 +01:00
Kristian Flikka
6632630269 Initializing do_hyst_ to false, this caused random segfaults in sim_fibo_ad 2014-02-06 21:17: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
Joakim Hove
2c05b6a1b4 Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2014-02-05 23:06:54 +01:00
Atgeirr Flø Rasmussen
cb99938c62 Fix initialisation warning. 2014-02-05 13:05:33 +01:00
Joakim Hove
ca2def2a02 Merged upstream/master 2014-02-04 21:42:07 +01:00
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
Kristian Flikka
3d215691da Removed WELTARG commented code, moved wellperf_data into createWellsFromSpecs function 2014-02-03 09:22:28 +01:00
Kristian Flikka
76dff2e326 Extracted well controls setup to separate function 2014-02-03 09:07:58 +01:00
Kristian Flikka
e12ec1b25d Extracted well specification and completion data setup to a function 2014-02-03 08:58:54 +01:00
Atgeirr Flø Rasmussen
0061b25408 Merge remote-tracking branch 'bska/initialisation' into initialisation 2014-01-31 15:41:58 +01:00
Joakim Hove
30df3cab37 Using well->hasInjectionControl() to check whether a particular control is available. 2014-01-30 16:37:20 +01:00
Joakim Hove
35d0808fbe Implemented WCONPROD support from Parser::Schedule object. 2014-01-30 15:55:17 +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
Joakim Hove
70e2dd9f12 Implemented well injector properties from opm-parser::Well. 2014-01-30 08:02:13 +01:00
Joakim Hove
0d8b883b8e Added namespace prefix to enum. 2014-01-30 08:00:45 +01:00
Kristian Flikka
d621fdfe79 Removed print statement 2014-01-29 12:30:03 +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
7ce9cb9055 Compdat extraction from new CompletionXXX classes 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
4049426ec9 Updated Namespace of PhaseEnum from opm-parser 2014-01-28 21:11:51 +01:00
osae
64b9726692 Saturation table scaling and hysteresis.
This commit implements some additional scaling keywords.  This includes
the ISWL-family that provide hysteresis behaviour via alternative
scaling of the tables.  The old parser has been somewhat extended for
testing purposes.  The commit also includes a slight refactoring of the
SatFunc-family where a new base class has been introduced.
2014-01-28 16:36:55 +01:00
Joakim Hove
7774a11eee WellType is determined from well->isProducer() instead of looking for WCONINJE / WCONPROD keywords. 2014-01-24 12:00: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
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
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
Kristian Flikka
691148122c Merged from upstream/opm-parser-integrate 2014-01-21 13:05:59 +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
Kristian Flikka
2ffcb219bb Changed phaseUsageFromDeck to use eclipseState 2014-01-10 13:43: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
Joakim Hove
f00e3d5763 Comparing well names protects againts NULL. 2014-01-08 16:10:43 +01:00
Joakim Hove
d96b88742e Removed commented out code. 2014-01-08 15:58:11 +01:00
Joakim Hove
ddf6a3c084 Removed access to internal variabel cpty. 2014-01-08 11:32:00 +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
Joakim Hove
370f9f0458 Using && instead of &= in the functions comparing wells and well_controls. 2014-01-06 19:22:39 +01:00