Commit Graph

435 Commits

Author SHA1 Message Date
Bård Skaflestad
a0567cc887 Fix out-of-bounds indexing into PVT function table
The 'props_' table of PVT functions has one entry for each active
phase.  Fix four instances of indexing into the table using the
canonical rather than active phase indices.

This is necessary, but not sufficient, to run two-phase problems
without a "dummy" third phase.
2014-09-18 00:19:35 +02:00
Tor Harald Sandve
bde173a1d3 Add comments and change order for readability. 2014-09-10 14:31:51 +02:00
Tor Harald Sandve
bbf6d56000 Calculate oil saturation from changes in water and gas saturation
First the change in oil saturation is calculated from changes in water
and oil saturation. Then oil saturation is updated based on this change
instead of just fixed to 1-sw-sg. With this change the oil saturation is
less sensitive towards numerical errors that may cause very small oil
saturations. Witch again may cause the simulator to think that the gas
phase is saturation with vaporized oil when it is not.
2014-09-10 14:19:34 +02:00
Atgeirr Flø Rasmussen
65ce6b4d22 Merge pull request #196 from totto82/bugfix_thpress
Apply threshold pressure for all dp
2014-09-04 15:26:19 +02:00
Atgeirr Flø Rasmussen
e597bbeca6 Merge pull request #193 from blattms/fix-176
Makes distinction between functions more clear. (#176)
2014-09-04 08:37:33 +02:00
Tor Harald Sandve
024fe9c7b6 Apply threshold pressure for all dp
The threshold pressure is applied for all dp.
The sign of the threshold pressure is given by the sign of the dp.
2014-09-03 11:05:14 +02:00
Tor Harald Sandve
e4dc5c28b3 Add output of RS and RV to outputStateMatlab 2014-09-02 15:08:22 +02:00
Bård Skaflestad
d0b677920a Merge pull request #190 from atgeirr/threshold-pressure
Threshold pressure
2014-08-29 09:14:24 +02:00
Markus Blatt
7127101c1c Makes distinction between functions more clear.
Currently, there are two abstract interface for the grids. One that
usually returns pods and arrays of them that also can be used by C
and is used also in opm-core, and one that returns Eigen datastructures
 needed within opm-autodiff.

This commit adds a postfix ToEigen to those functions (faceCells, and
cellCentroidsZ) one could imagine to also return pods and arrays of them.
This should at least resolve the confusion about the two faceCells functions.

The next step will be issue #192
Fixes #176
2014-08-28 14:44:13 +02:00
Atgeirr Flø Rasmussen
971e01fdd7 Suppress warnings of various kinds. 2014-08-27 19:56:13 +02:00
Atgeirr Flø Rasmussen
a48ab0188a Fix bug: exactly the wrong potentials were nullified. 2014-08-27 18:23:11 +02:00
Atgeirr Flø Rasmussen
efbf42120b Resize array before assigning elements. 2014-08-27 18:23:10 +02:00
Atgeirr Flø Rasmussen
3fdfeec10c Pass dummy threshold pressures through simulator to solver. 2014-08-27 18:23:10 +02:00
Atgeirr Flø Rasmussen
4af03dcdb8 Change setThresholdPressures() interface.
Now it takes a std::vector instead of an Eigen::Array, more importantly
it expects one element per face, not interior face. The mapping now takes
place in setThresholdPressures().
2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
dc9ce967a2 Remove files added by mistake. 2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
dfc726bceb Rename variable.
Changed threshold_pressures_by_face_ -> threshold_pressures_by_interior_face_.
2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
c5de6635c5 Add setThresholdPressures() method. 2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
f7fa3488cb Add applyThresholdPressures() method and usage.
Note that this commit does not introduce any way to set
use_threshold_pressure to true, so the new code is not run.
2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
102881bff8 Merge pull request #185 from totto82/fix_updateState
Use default primary variable (Sg) for cells almost full of water
2014-08-26 22:35:16 +02:00
Bård Skaflestad
53e6bfcd3d Merge pull request #187 from osae/satFunc-eclState
Provide eclipse state to saturation property init.
2014-08-25 13:56:14 +02:00
Bård Skaflestad
077b01b767 Merge pull request #188 from OPM/support-resv
Support RESV controls
2014-08-25 13:54:30 +02:00
osae
98afdc7fc2 Provide eclipse state to saturation property init. 2014-08-22 15:30:05 +02:00
Atgeirr Flø Rasmussen
735feef0ab Avoid unintended switch fall-through.
Added break statements to all cases, for consistency.
2014-08-19 14:15:50 +02:00
Atgeirr Flø Rasmussen
3ae39f74e5 Delete unneeded typedef after merge. 2014-08-19 14:15:08 +02:00
Atgeirr Flø Rasmussen
7c866f6a7d Fix wrongly merged comments. 2014-08-19 13:27:42 +02:00
Atgeirr Flø Rasmussen
e644c51750 Merge branch 'master' into support-resv
Conflicts:
	examples/sim_fibo_ad.cpp
	examples/sim_fibo_ad_cp.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.hpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-19 09:53:20 +02:00
Tor Harald Sandve
6ae3212341 Use default primary variable (Sg) for cells almost full of water 2014-08-18 12:28:25 +02:00
Tor Harald Sandve
7e297dfaf9 Output rs and rv
The Rs and Rv values for each timestep are written to files
2014-08-18 08:51:14 +02:00
Atgeirr Flø Rasmussen
b1db55cbe8 Merge pull request #183 from atgeirr/fix-output
Fix output statements in SimulatorFullyImplicitBlackoil::run().
2014-08-15 14:19:48 +02:00
Atgeirr Flø Rasmussen
5f9841eacc Fix output statements in run().
This fixes the following bugs:
 - No longer overwrite the matlab-output files each step.
 - Create output also for the initial state.
 - Change filenames of matlab-output by one (initial state is 000.txt,
   final state is NNN.txt and not (NNN-1).txt for total of NNN steps).
 - Eclipse binary output matches eclipse output (includes the same
   steps including initial state) for the same case.

Also added several comments outlining the parts of the run() function.
2014-08-14 16:07:58 +02:00
Atgeirr Flø Rasmussen
69697adb04 Fix saturation-change bug in updateState(). 2014-08-14 14:21:33 +02:00
Atgeirr Flø Rasmussen
cb2522314d Improve exception message, add (disabled) debugging helpers. 2014-08-14 14:20:43 +02:00
Atgeirr Flø Rasmussen
d8a7165ccb Throw if elliptic solve fails. 2014-08-14 14:19:55 +02:00
Atgeirr Flø Rasmussen
11cd1061d1 Handle increasing numbers of active wells during simulation.
This uses partialCopy() to transfer the previous wells' data
to the new well state object.
2014-08-13 15:56:36 +02:00
Atgeirr Flø Rasmussen
43c00773db Add partialCopy() method for transferring well states.
Also add numWells() and numPhases() helpers.
2014-08-13 15:55:50 +02:00
Atgeirr Flø Rasmussen
ebac36ddfc Merge branch 'master' into restructure-sim
Conflicts:
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-13 00:02:42 +02:00
osae
6eea5e22a1 Update of hysteresis model is now performed prior
to each time step, thus also capturing the initial state.
2014-08-12 19:53:38 +02:00
osae
8e679382dd Fixing some syntax. 2014-08-12 19:48:48 +02:00
osae
ca046987a7 Guard against "too small" max saturation.
This parameter might well be user configurable ...
2014-08-12 19:42:30 +02:00
osae
64231809f5 Bugfix, correcting incomplete merge. 2014-08-12 19:36:25 +02:00
Atgeirr Flø Rasmussen
80b0921ce3 Use generic WellsManager constructor.
Also fix minor whitespace issues.
2014-08-12 12:54:16 +02:00
Atgeirr Flø Rasmussen
2aff3e3750 Fix template argument of solver class. 2014-08-12 12:26:26 +02:00
Atgeirr Flø Rasmussen
b85ba1bcc0 Clean up files and streams for timing output.
Total time will be written to walltime.txt, and single step times to
step_timing.txt (changed suffix from param to txt). This did not work
properly before this fix (step_timing file was overwritten each step).
2014-08-12 09:28:28 +02:00
Atgeirr Flø Rasmussen
120e9d02d4 Remove unused pore volume calculations. 2014-08-11 15:06:45 +02:00
Atgeirr Flø Rasmussen
d170de43cb Merge remote-tracking branch 'GitPaean/New_BLACKOIL_SIMULATOR' into restructure-sim
Conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-11 14:01:54 +02:00
osae
3ff807edc4 Revert "Re-introduced tempoary fix for singular matrix."
Seems not to be needed any more ...
This reverts commit bb12bdd1fd.
2014-08-08 16:10:03 +02:00
osae
4ce61b7c7c Support for kw VAPPARS.
When this kw is active, BlackoilPropsAdFromDeck now modifies rvSat
and rsSat curves cell-wise by a power of (sat_oil_cell /
sat_oil_cell_historical_max).   Currently, the associated jacobians do
not reflect terms of type d/d_sat_oil, but code for doing this is given
as comments to BlackoilPropsAdFromDeck::applyVap(ADB& r, ...).
2014-08-08 13:17:33 +02:00
osae
bb12bdd1fd Re-introduced tempoary fix for singular matrix. 2014-08-08 12:44:55 +02:00
Bård Skaflestad
a3bc595a91 Aesthetics: Turn if-else into switch()
This commit replaces an if-else-based query of the primaryVariable_
with the equivalent switch() statement for uniformity with the rest
of the implementation.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
0f663dfe9f Implement RESV control mode for producers
This commit introduces support for the RESV control mode of
prediction (WCONPROD) and history-matching (WCONHIST) alike.  The
implementation uses class SurfaceToReservoirVoidage<> to compute
coefficients that convert component rates at surface conditions
(i.e., the primary degrees of freedom in the well residual) to phase
rates at reservoir condition.  The resulting coefficients can be
entered directly into system matrix of the linearised residual.

Note: We abuse the "distr" mechanism of struct WellControls to store
the conversion coefficients.  This may require refactorisation and
clarification at a later stage.  In the meantime, it allows for
transparent assembly of well equations--irrespective of surface- or
reservoir (voidage) rates.

Note: We do not yet support injectors controlled by total reservoir
voidage rate--either in history-matching (WCONINJH) or
prediction-scenario capacity.
2014-08-08 11:40:50 +02:00