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
Joakim Hove
9fa7362992
Removed explicit (struct WellControls *) cast to align with the rest of the code.
2014-01-06 19:09:36 +01:00
Joakim Hove
b22b3f9fe2
Moved struct WellControls to the implementation file well_controls.c.
2014-01-06 15:13:32 +01:00
Joakim Hove
c970363f5e
Implemented well_controls based on well_controls_get_xxx() functions.
2014-01-06 14:59:11 +01:00
Joakim Hove
8ef5b2b695
Implemented well_controls based on well_controls_get_xxx() functions.
2014-01-06 14:51:11 +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
8132954b85
Added functions to get type, target and distr of *current* control.
2014-01-06 14:40:03 +01:00
Joakim Hove
4db3a70e05
Implemented well_controls based on well_controls_iset_xxx() functions.
2014-01-06 14:19:09 +01:00
Joakim Hove
965c12a689
Implemented well_control based on well_controls_iset_xxx() functions.
2014-01-06 12:40:03 +01:00
Joakim Hove
2ee6331ac1
Implemented well_controls_add_new() with well_controls_iset_xxx() functions.
2014-01-06 12:24:32 +01:00
Joakim Hove
6098368d08
Added new function well_controls_iset_distr().
2014-01-06 12:22:15 +01:00
Joakim Hove
3d171bd961
Using new function well_controls_invert_current().
2014-01-06 12:08:29 +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
d783028bcb
Using well_controls_get_num() and well_controls_get|set_current() in WellsManager
2014-01-06 10:12:11 +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
3653404c41
Reimplemnted struct WellControls access to use the set/get functions in well_controls.c
2014-01-05 16:23:22 +01:00
Joakim Hove
aea54d073a
Added well_controls_get_xxx() and well_controls_set_xxx() functions. The well_controls_reserved() function is called from well_controls_add() and not explicitly.
2014-01-05 16:22:30 +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
157d0870f2
Removed struct WellControlManagement and replaced with simple integer field cpty in the WellControls structure.
2014-01-05 14:54:56 +01:00
Joakim Hove
8acdf34653
Moved well_controls implementation to separate file well_controls.c.
2014-01-05 14:47:15 +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
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
Bård Skaflestad
2a68bb0341
Add a facility for checking/assigning presence of free phases
...
This is intentionally black-oil specific because we presently do no
know how to handle other cases (e.g., more phases or number of phases
different from number of components).
2013-12-03 15:56:18 +01:00
Bård Skaflestad
8c8721064d
Include <limits> for std::numeric_limits<> template
2013-12-03 15:52:07 +01:00
Bård Skaflestad
c24cc87b26
Sort headers into logical groups.
...
This is an aesthetic-only change.
2013-12-03 15:43:06 +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
847a8f4f7a
Bugfix: vector was used with size zero.
2013-10-16 14:02:15 +02: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
Atgeirr Flø Rasmussen
dcaac93e23
Remove unneeded term, fixing oil injecting behaviour.
...
The 'comp_term' is supposed to be a total divergence term, which is supposed
to be zero for incompressible flow. It was added for improved robustness in
stagnant areas, but as implemented it would not be computed properly for
oil injection scenarios, due to the convention for two-phase transport
source terms (positive terms are inflow of first phase [water], negative
terms are total outflow).
2013-10-04 13:16:02 +02:00
Atgeirr Flø Rasmussen
13ddbad9a1
Merge pull request #400 from bska/Wunused
...
Remove unused "typedef"s
2013-10-03 06:52:09 -07:00
Bård Skaflestad
fca913c6b9
Remove unused "typedef"s
...
CLang and recent versions of GCC warn about unused "typedef"s. This
change-set removes currently known instances in opm-core.
2013-09-26 19:22:59 +02:00
Bård Skaflestad
8ad884bbde
assemble_well_contrib(): Fix misprint in comment.
2013-09-25 15:39:37 +02:00
Bård Skaflestad
e15760856c
RESV: Ignore phase distribution for non-PRODUCERs
...
The WellsManager class handles INJECTORS by assigning a phase
distribution (W->ctrls[i]->distr) that coincides with the injected
fluid for the corresponding well (e.g., {1,0,0} for WATER injectors in
a three-phase WATER/OIL/GAS simulation). This, however, meshes poorly
with the restriction that all phase components must be ONE in the case
of wells constrained by total reservoir volume flow targets (RESV)
that was introduced in commit b7d1634.
This change-set limits the restriction on phase distributions to
PRODUCERs only and is a tentative solution to GitHub PR #360 .
2013-09-25 15:38:55 +02: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
Atgeirr Flø Rasmussen
d7dc0abc13
Further improved WellReport and Watercut docs.
2013-09-24 14:39:41 +02:00
Atgeirr Flø Rasmussen
87466f25d2
Documented WellReport and Watercut classes.
2013-09-24 14:14:54 +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
88a38a8e3f
Fix LinearSolverIstl cleanup also for fast AMG branch
...
To avoid deprecation warnings the number of smoothing steps was passed
through the Criterion instead of directly to the constructor in commit
a7f32b934b.
However, due to an insufficient test matrix this was not tested using
the fast AMG variant of DUNE so it breaks the builds if
`-DHAS_DUNE_FAST_AMG` is defined.
This change should apply the same type of change to this branch as for
the others. The number of smoothing steps is put into a constant to
avoid the magic number 1 to appear in too many places (although I am
not sure the number for pre- and post-smoothing always should be the
same).
2013-09-20 10:00:21 +02:00
Atgeirr Flø Rasmussen
df8981ed2d
Merge pull request #376 from rolk/376_warn
...
Quelch needless warnings (found by Clang)
2013-09-19 05:05:00 -07: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
Roland Kaufmann
5f00467f02
Set linear solver steps in criterion instead of ctor
...
The constructor that takes the number of steps is deprecated; this
generates needless warnings.
2013-09-19 10:32:49 +02:00
Andreas Lauser
57a1efcdc9
fix headers
...
make all non-implementation headers includable without
preconditions. Also, this removes the GravityColumnSolver.hpp file,
because it tried to include a non-existing file and it was thus unused.
2013-09-11 13:11:47 +02:00
Andreas Lauser
fde3fe3332
convert users of MESSAGE to OPM_MESSAGE
2013-09-05 13:04:38 +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
Roland Kaufmann
440c7721ae
Remove subdirectory from SuiteSparse include
...
SuiteSparse may or may not be installed in a suitesparse/ directory.
FindSuiteSparse will look in a suitesparse/ subdirectory when trying
to locate umfpack.h, but it will add the full directory to the compiler
command-line (e.g. `-I/usr/include/suitesparse`) and not that of the
parent. Since the parent is usually included too, it is not noticed
that it is advertedly using another include paths than its own.
However, if we have SuiteSparse installed in a non-system location,
using the subdirectory in the `#include` statement may now cause an
error, even though configuration actually found SuiteSparse!
2013-08-25 09:35:51 +02:00
Roland Kaufmann
76f3863780
Remove bindings to AGMG from library
...
AGMG is now under a closed-source license, meaning that results
obtained with this solver is not freely reproducible by others.
Its use is therefore discouraged.
As of version 2.3, the DUNE AMG parts are competitive, so there
is a free and open alternative.
2013-08-13 23:25:04 +02:00
Andreas Lauser
e6a2f2655a
replace boost::scoped_ptr by std::unique_ptr
...
thanks to Bård Skaflestad, Atgeirr Rasmusen and Roland Kaufmann for
the hint.
2013-08-08 15:21:38 +02: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
Bård Skaflestad
6858b4290f
Merge pull request #285 from rolk/285_shadow
...
Provide way of shadowing only some properties
2013-07-31 04:05:13 -07:00
Bård Skaflestad
4b42cc2c5d
Merge pull request #289 from andlaus/make-gcc44-mandatory
...
Make gcc44 mandatory
2013-07-30 13:25:35 -07:00
Andreas Lauser
5893b9324e
replace boost::array by std::array
...
GCC 4.4 supports std::array, so there is not much point in keeping
compatibility with ancient compilers...
2013-07-30 17:46:32 +02:00
Andreas Lauser
2306c2c305
fix a few CLang warnings
...
most of them quite insignificant, but still annoying. The only
exception is the warning about the changed alignment for the 'work'
argument of spu_implicit_assemble(). AFAICT, the only reason why it
worked was that the pointer produced by malloc() was passed
directly. (malloc() seems to fulfill all alignment criteria.) To fix
this, I've changed that argument's type from char* to double*.
2013-07-30 16:27:20 +02:00
Roland Kaufmann
3885bcd7ee
Use underscore for data members
2013-07-30 13:24:57 +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
Júlio Hoffimann
c077912466
Remove trailing whitespaces
2013-07-28 08:34:13 -03:00
Roland Kaufmann
baa9bf12e0
Zero-initialize structure to avoid returning undefined
...
The compiler will otherwise complain that we are returning undefined
data. There is no way for the client code to know whether this was
the case.
2013-07-05 10:59:52 +02:00
Bård Skaflestad
f99377ceec
Merge pull request #274 from blattms/non-tr1
...
Changed std::tr1 occurences to boost.
2013-07-04 12:01:51 -07:00
Markus Blatt
b5db3e0713
Changed std::tr1 occurences to boost.
...
std::tr1 might not be supported by all compilers and will eventually
be dropped by others. Using boost instead makes this more
portable.
2013-07-04 16:04:35 +02:00
Atgeirr Flø Rasmussen
fb77fffdc8
Merge pull request #263 from bska/remove-redef-kluge
...
Disable build kluge that is no longer pertinent
2013-06-24 06:02:10 -07:00
Markus Blatt
eaf8e780c7
Fixed unused parameters and whitespace issues.
2013-06-21 12:49:35 +02:00
Bård Skaflestad
85a9a41264
Disable build kluge that is no longer pertinent
...
The <have_boost_redef.hpp> header was introduced (commit 82369f9) as
a work-around for a particular interaction in the Autotools-based
setup of OPM-Core and the Dune core modules. Notably, Dune's
"Enable" trick for Boost failed on some older Autoconf systems. Now
that we're using CMake, however, that kluge is no longer needed
because we (OPM-Core) always
#define HAVE_BOOST 1
i.e., as an explict true/false value.
Therefore, we need no longer include <have_boost_redef.hpp> . The
header will be removed at a later time.
2013-06-20 23:14:39 +02:00
Markus Blatt
9b0b60c3f8
Fixed spelling
2013-06-20 17:01:35 +02:00
Markus Blatt
2db889cd2b
Unifies the way how AMG is called.
...
After this patch one can set the prolongation factor for all
AMG calls and the number of smoothing steps for all except
of FastAMG that currently only supports on step.
2013-06-20 16:55:07 +02:00
Markus Blatt
7c69fc31d0
Merge remote-tracking branch 'upstream/master'
2013-06-20 16:07:58 +02:00
Markus Blatt
65a3780e2f
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
opm/core/linalg/LinearSolverIstl.cpp
2013-06-19 14:55:50 +02:00
Atgeirr Flø Rasmussen
55e58deea6
Add transMult(), poroMultDeriv() and transMultDeriv().
2013-06-03 14:33:18 +02: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
1cf0bb465b
Fix bug in upwinding code.
...
Accidental usage of std::vector's operator< discovered.
2013-05-24 09:20:46 +02:00
Atgeirr Flø Rasmussen
8592ca825a
Added wellRates() member.
2013-05-21 23:54:30 +02:00
Atgeirr Flø Rasmussen
8c92a47b89
Merge remote-tracking branch 'upstream/master' into add-phaseusage-to-interface
2013-05-15 10:10:18 +02:00
Bård Skaflestad
ac33cd6f17
Merge pull request #240 from atgeirr/tof-improvements
...
Ensure (average of) tracers sum to one for DG1.
2013-05-14 02:28:21 -07: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
Atgeirr Flø Rasmussen
d312f760e1
Add phaseUsage() method to BlackoilPropertiesInterface.
...
Also implement method in derived classes.
2013-05-13 16:20:00 +02:00
Atgeirr Flø Rasmussen
9b56384647
Ensure (average of) tracers sum to one for DG1.
2013-05-13 16:17:41 +02:00
Atgeirr Flø Rasmussen
15ab570cd5
Added limiter for tracer.
2013-04-24 11:27:04 +02:00
Atgeirr Flø Rasmussen
8a894ca686
Add tracer computations (method solveTofTracer()).
...
Same interface as in class TofReorder.
2013-04-24 10:39:50 +02:00
Atgeirr Flø Rasmussen
241f866709
Update doc, only initialize tracerhead_by_cell_ if needed.
2013-04-24 10:36:52 +02:00
Atgeirr Flø Rasmussen
9f6b4e5258
Tracer computations are now fixed and robust.
...
- Handles noisy source terms.
- Works with repeated solve calls (multi-cell block solves).
2013-04-23 15:35:47 +02:00
Atgeirr Flø Rasmussen
643c1e7df0
Implement solveMultiCell() with Gauss-Seidel.
2013-04-23 13:38:47 +02:00
Atgeirr Flø Rasmussen
b82a41df18
Work in progress on tracers.
...
- Changed interface.
- Read tracerheads (tracer start locations) from file in compute_tof_from_files.
- Initialize tracerheads from wells in compute_tof.
2013-04-22 14:02:45 +02:00
Atgeirr Flø Rasmussen
5d58dc4500
Fix typo and minimize formatting changes.
2013-04-22 11:29:59 +02:00
Atgeirr Flø Rasmussen
5578400e72
Removed experimental multi-cell solver code.
...
Since the Gauss-Seidel approach seems to be both simplest and
fastest, all parts dealing with assembling multicell systems
have been removed.
2013-04-22 11:22:23 +02:00
Atgeirr Flø Rasmussen
4fc5770fe2
Optimize multi-cell solve and add new Gauss-Seidel variant.
2013-04-22 11:11:55 +02:00
Atgeirr Flø Rasmussen
b0132b3b05
Make multidim upwind more forgiving of bad grids.
...
Now it will no longer trigger assertation failure when grids are not
edge-conformal (faulted cornerpoint grids processed by our code will
usually not be). Minor algorithm change to handle this.
2013-04-22 11:07:41 +02:00
Atgeirr Flø Rasmussen
52e96825a4
More refined and concise output of block info.
2013-04-17 13:18:22 +02:00
Atgeirr Flø Rasmussen
25a2c3d00b
Implement solveMultiCell() properly.
...
Interface change: solver now requires a linear solver (for the multi-cell blocks only).
Implementation uses new private method assembleSingleCell(), that is a modified copy
of solveSingleCell(). Should refactor.
2013-04-17 12:58:15 +02:00
Atgeirr Flø Rasmussen
f8db9cad66
Bugfix: do not compute MDU terms for noflow faces.
2013-04-17 10:38:08 +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
f8e00d0bc6
Make all codes use the same linear interpolation routines.
2013-03-22 15:28:16 +01:00
Atgeirr Flø Rasmussen
8dee94dc0f
Use markup for parameter lists.
2013-03-22 11:09:38 +01:00
Atgeirr Flø Rasmussen
5be528a646
Use markdown for parameter lists.
2013-03-22 10:02:04 +01:00
Atgeirr Flø Rasmussen
1bfcf77b38
Change doxygen syntax to use markdown.
2013-03-22 09:55:12 +01:00
Atgeirr Flø Rasmussen
3d382f8220
More minor doc fixes.
2013-03-22 09:45:00 +01:00
Atgeirr Flø Rasmussen
00e8606994
Fix minor doc errors.
2013-03-22 09:26:45 +01:00
Atgeirr Flø Rasmussen
c693c44d25
Fix docs for IncompPropertiesBasic.
2013-03-22 09:26:27 +01:00
Atgeirr Flø Rasmussen
b05fec38fd
Fixes and improvements to transport solver docs.
2013-03-21 14:52:21 +01:00
Atgeirr Flø Rasmussen
213e143c47
Fixes and improvements to time-of-flight solver docs.
2013-03-21 14:51:49 +01:00
Atgeirr Flø Rasmussen
71057d69db
Clean up well docs.
...
Needed to rename structs in legacy_well.h to avoid clash in docs.
2013-03-20 14:14:53 +01:00
Atgeirr Flø Rasmussen
1e02bd9905
Merge pull request #207 from blattms/release-dune-cmake
...
Add support for AMG improvements when using inofficial 2.2 DUNE release with CMake support
2013-03-19 08:11:44 -07:00
Markus Blatt
de22c11d91
Removed compile time warning. In verbose mode the warning will be issued during runtime.
2013-03-19 13:48:02 +01:00
Markus Blatt
71d86b7f08
Fixed compilation with official DUNE release.
2013-03-18 15:36:35 +01:00
Markus Blatt
26ab363783
Adapted the documentation.
2013-03-18 14:34:04 +01:00
Markus Blatt
2c4c4cbb2f
Added a fast amg version of AMG (with one step of Gaus-Seidel smoothing) and AMG with Krylov-cycle.
...
The former is only available when using the inofficial 2.2.1 cmake release.
The latter is currently not optimized.
2013-03-18 14:34:03 +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
5b132acc70
Further reorganising of opm-core.
...
Deleted some unused code (or moved to opm-porsol), moved all code dealing with
time-of-flight to opm/core/tof, moved code for implicit transport solver to
opm/core/transport/implicit, spu_[im|ex]plicit.[ch] to opm/core/transport/minimal.
2013-03-18 12:38:04 +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
b14c145f10
Moved deprecated opm/core/well.h -> opm/core/pressure/legacy_well.h
...
Still used by some pressure system assemblers.
2013-03-18 10:23:51 +01:00
Atgeirr Flø Rasmussen
17ac731a0e
Make initGravity() to private, call from constructor.
...
Also modify interface of solveGravity() to be minimal,
construcing columns for segregations solver at construction time.
2013-03-15 13:53:37 +01:00
Atgeirr Flø Rasmussen
da985748d0
Make TransportSolverTwophaseReorder inherit TransportSolverTwophaseInterface.
...
This changes the solve() interface, which requires clients to change.
2013-03-15 11:31:31 +01:00
Atgeirr Flø Rasmussen
28fc68cf71
Modify solve() interface, fix source term bug in implicit solver.
2013-03-15 08:21:55 +01:00
Atgeirr Flø Rasmussen
dad6990d1d
Minor adjustments.
2013-03-15 08:05:23 +01:00
Atgeirr Flø Rasmussen
bdb8d48115
Modified TransportSolverTwophaseInterface::solve(), general cleanup.
...
Move output arguments last in argument list.
2013-03-14 22:51:44 +01:00
Atgeirr Flø Rasmussen
11015c11ef
Rename TwoPhaseTransportSolver -> TransportSolverTwophaseInterface.
...
To be more consistent with naming practices elsewhere in opm-core.
2013-03-14 22:24:36 +01:00
Atgeirr Flø Rasmussen
87c8d0dc28
Modified for added files and changed class names.
2013-03-14 21:43:21 +01:00
Atgeirr Flø Rasmussen
e99e023980
Merge remote-tracking branch 'hnil/hnil_class' into combined.
...
Conflicts:
CMakeLists.txt
examples/sim_wateroil.cpp
opm/core/grid/cpgpreprocess/geometry.c
opm/core/transport/reorder/ReorderSolverInterface.hpp
opm/core/transport/reorder/TofDiscGalReorder.cpp
opm/core/transport/reorder/TofDiscGalReorder.hpp
opm/core/transport/reorder/TofReorder.cpp
opm/core/transport/reorder/TofReorder.hpp
opm/core/transport/reorder/TransportSolverCompressibleTwophaseReorder.cpp
opm/core/transport/reorder/TransportSolverTwophaseReorder.cpp
2013-03-14 16:18:39 +01:00
Atgeirr Flø Rasmussen
b73a33f4af
Adapt include statements to moved headers.
2013-03-14 10:29:42 +01:00
Atgeirr Flø Rasmussen
4fb45f0e64
Moved fluid -> props and subdirs.
...
This is a non-compiling commit.
2013-03-14 09:56:48 +01:00
Atgeirr Flø Rasmussen
bb944b7e52
Moved writeECLData and writeVtkData to opm/core/io subdirs.
2013-03-08 08:06:18 +01:00
Atgeirr Flø Rasmussen
a154183b9d
Moved opm/core/eclipse/* to opm/core/io/eclipse/*.
2013-03-07 22:59:06 +01:00
Atgeirr Flø Rasmussen
358e9287f7
Fix error in doc.
2013-03-07 15:14:24 +01:00
Atgeirr Flø Rasmussen
f9cfb7d12d
Make destructor of CompressibleTpfa virtual.
2013-03-07 15:14:01 +01:00
Bård Skaflestad
beaac0d089
Use an integer type for "maxit_" counter.
...
The "maxit_" counter is an upper limit on the number of non-linear
iterations in a single cell. Declaring this as a "double" is counter
intuitive unless one expects the number to be *really* high.
Present since
- Commit 93d4bd8 (TransportModelTwophase.hpp)
- Commit e0d38cf (TransportModelTwophaseCompressible.hpp)
2013-02-19 11:27:54 +01:00
Bård Skaflestad
2eaf60f680
Index into vectors using integers.
...
This commit corrects an error that has been present since the
introduction of function wellsToSrc() in commit a50bb8f but was never
detected. Although the conversion int->double->std::size_t is likely to
be loss-less, it is better to not introduce any more steps than are
actually needed.
2013-02-18 11:49:52 +01:00
Bård Skaflestad
4bf93e31c0
Merge pull request #135 from atgeirr/doc-improvements
...
Doc and comment improvements
2013-02-06 01:26:29 -08:00
Bård Skaflestad
967403996a
Replace an assignment with intended equality test
...
This corrects a latent error that has been present since the inception
of this module.
2013-02-01 16:30:45 +01:00
Bård Skaflestad
267ec64ae8
Eliminate redundant explicit type conversion.
...
The pointers in question are already type 'int *'. There is no need to
explicitly convert them to that type too.
2013-02-01 16:25:46 +01:00
Bård Skaflestad
b8e840e81e
Eliminate release-mode build warning.
...
The 'cbottom' variable is only used within an assert(). Don't define
the variable in release (i.e., "NDEBUG") mode.
2013-02-01 16:15:35 +01:00
Bård Skaflestad
62a8a7f527
Use portable method of zeroing vector of ints.
...
The memset() technique is only applicable to platforms for which
numerical zero is represented by all bits zero.
2013-02-01 16:06:39 +01:00
Atgeirr Flø Rasmussen
7dd4720057
Changed OpenRS->OPM in copyright notices and #include guards.
2013-01-29 13:42:24 +01:00
Bård Skaflestad
95fb0792e5
Bring ParameterGroup interface into scope.
...
The constructor accepts a parameter::ParameterGroup reference and thus
needs a valid interface in scope. Relying on header pollution is
unwise.
2013-01-23 17:35:05 +01:00
Atgeirr Flø Rasmussen
977e8a19e2
Added evalFunc() method.
...
This public method is not virtual, and implemented in the base class using calls to
the virtual methods. Not yet used by the DG solver.
2013-01-23 09:51:30 +01:00
Atgeirr Flø Rasmussen
f99fd9254b
Refactored applyMinUpwindLimiter().
2013-01-23 09:50:25 +01:00
Atgeirr Flø Rasmussen
604be45871
Add methods totalFlux() and minCornerVal().
...
Also started refactoring applyMinUpwindLimiter() using the
added methods.
2013-01-21 14:55:27 +01:00
Atgeirr Flø Rasmussen
e02bf4f312
Use functionAverage() instead of direct coefficient access.
...
This fixes the issue with limiters on multilinear basis.
2013-01-21 11:09:43 +01:00
Atgeirr Flø Rasmussen
1093e09d65
Added functionAverage() method to DGBasis classes.
2013-01-21 11:09:07 +01:00
Atgeirr Flø Rasmussen
763d14ce4d
Refactored limiter functions.
...
The two limiter functions were very similar, and were unified in a single
method, with a bool argument to choose method variety.
2013-01-21 10:46:06 +01:00
Markus Blatt
c48234c0e4
Finished customizability in terms of steps and prolongateFactor
2013-01-18 14:11:59 +01:00
Markus Blatt
0baa40fb88
Merge remote-tracking branches 'origin/master' and 'upstream/master'
2013-01-18 13:48:55 +01:00
Bård Skaflestad
d9842837b3
Merge remote-tracking branch 'upstream/master'
2013-01-18 13:23:52 +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
862c489cc3
Complete separation of basis func classes.
...
Also:
- Add use_tensorial_basis parameter allowing run-time choice of basis.
- Remove degree argument from solveTof() method, degree is instead obtained
from parameters in constructors. Modified compute_tof* programs to match.
2013-01-16 15:13:45 +01:00
Atgeirr Flø Rasmussen
dc7385204a
Implement (empty) virtual destructor, make methods public.
2013-01-16 15:11:46 +01:00
Atgeirr Flø Rasmussen
5288b84bdc
Increased quadrature order in a term.
...
This is for the benefit of bi/tri-linear basis functions, as stated
in the comments.
2013-01-16 13:45:15 +01:00
Atgeirr Flø Rasmussen
f539c4d183
Moved DG basis to separate classes in its own file.
...
Also introduced interface (base) class and changed the api, not used yet by the tof solver.
2013-01-16 13:38:02 +01:00
Atgeirr Flø Rasmussen
954ebfa837
Add methods addConstant() and multiplyGradient() to multilinear basis.
...
Not tested yet, though.
2013-01-15 20:44:28 +01:00
Atgeirr Flø Rasmussen
b61bb494dc
Implement limiters with addConstant() and multiplyGradient().
...
This is instead of directly manipulating the coefficients, requiring
assumptions on the basis used.
2013-01-15 13:52:44 +01:00
Atgeirr Flø Rasmussen
5ac24f9b8d
Added addConstant() and multiplyGradient() methods.
...
So far only to class DGBasisBoundedTotalDegree.
2013-01-15 13:44:18 +01:00
Atgeirr Flø Rasmussen
406965124a
Added class DGBasisMultilin.
...
Multilinear DG1 basis functions added. Will not work with current limiter.
2013-01-15 13:42:05 +01:00
Atgeirr Flø Rasmussen
e24795ba94
Reduce source sum failure from error to warning.
...
Should extend to sum over sources and boundaries before reinstating.
2013-01-15 13:39:35 +01:00
Atgeirr Flø Rasmussen
5548fd85f9
Renamed class DGBasis -> DGBasisBoundedTotalDegree.
2013-01-15 13:37:39 +01:00
Atgeirr Flø Rasmussen
81c8870ba8
Do not require unnecessary high quadrature precision.
2013-01-15 13:33:55 +01:00
Atgeirr Flø Rasmussen
7f05b1bb0e
Added (disabled) extra output for debugging purposes.
...
Enable by defining EXTRA_VERBOSE.
2013-01-15 13:17:43 +01:00
Atgeirr Flø Rasmussen
dd2e01ce9e
Do not assume that the first basis function is the constant 1.
...
Properly integrate b_i * porosity over the cell for all basis functions b_i.
2013-01-15 13:10:09 +01:00
Atgeirr Flø Rasmussen
e5ff636860
Merge branch 'master' into dg-improvements
2013-01-08 16:01:52 +01:00
Atgeirr Flø Rasmussen
89516931e4
Added MinUpwindAverage limiter method, made it default.
2013-01-08 16:00:17 +01:00
Atgeirr Flø Rasmussen
53932a8184
Documented new available limiting options in constructor doc.
2013-01-08 13:34:50 +01:00
Atgeirr Flø Rasmussen
a0827ab02d
Change constructor to take ParameterGroup argument.
...
Also make tof to limit against >= 0.0, for case when upstream cell values go
below zero.
Disabled some debug output.
2013-01-08 13:14:26 +01:00
Atgeirr Flø Rasmussen
832072a5cb
Improvements to DG1 flux limiter.
...
Skeleton in place for increased flexibility in methods and usage.
(So far behaviour choices are hardcoded, though.)
Added relative flux thresholding to existing limiter to avoid flux noise
strongly affecting solution. For example no-flow boundaries could be treated
as inflow boundaries and make the minimum upwind face limiter meaningless.
2013-01-08 11:04:43 +01:00
Atgeirr Flø Rasmussen
6a23ebe449
Add methods sequence() and components().
2013-01-08 11:04:07 +01:00
Atgeirr Flø Rasmussen
db7fe12a45
Simplify and correct implementation of limiter.
...
Now we check all corners' tof values for the cell under consideration,
not just the inflow face corners'.
2013-01-07 15:48:47 +01:00
Atgeirr Flø Rasmussen
bfa52cc5f2
Bugfix, again: it was correct to take the maximum, reinstating.
...
There is a different problem that needs fixing, however:
Flux inaccuracies (for example on boundaries) may tag some
face as inflow face for a cell, even if it should have been
no-flow. This may let the cell avoid limiting, even though it
should have been limited according to the proper inflow faces.
2013-01-07 15:10:43 +01:00
Atgeirr Flø Rasmussen
583c905a43
Bugfix: take minimum of allowed slopes, not maximum.
2013-01-04 19:59:05 +01:00
Bård Skaflestad
70da461a97
Merge pull request #110 from atgeirr/dg-improvements
...
Improvements for time-of-flight and tracer computations
2013-01-03 08:25:11 -08:00
Atgeirr Flø Rasmussen
8cb2ea4c94
Added solveTofTracer() method.
2013-01-03 14:07:51 +01:00
Atgeirr Flø Rasmussen
538e1eab5f
Limiter now works reasonably well.
...
Case with no inflow faces should be checked.
2012-12-20 18:03:08 +01:00