Tor Harald Sandve
ab7472b64c
Change the maximum number of linear iteration
...
If we need more than 150 linear iterations, it's probably something
wrong, and we may be better of by restarting with smaller time-steps.
TODO: make it possible for the user to specify this number.
2014-11-10 12:17:36 +01:00
Tor Harald Sandve
6c4d62d7fd
Solve submatrix system in the Schur complement
...
The non-diagonal elements in the sub-matrices in the Schur complement is
no longer ignored. Instead of assuming the matrix do be diagonal, and
compute the invert of the sub-matrix, small linear systems are solved
using superLU.
Tested on SPE3 and Norne. (With this fix a slightly modified norne runs
until 3292 days)
2014-11-10 10:26:12 +01:00
Tor Harald Sandve
9380ce71a2
Output the total mass balance residual
...
The residual output is changed from max residual to
total mass balance residual. In this way the output
resemble what is actually used as convergence criteria.
2014-11-10 09:29:13 +01:00
Tor Harald Sandve
b4a7b6157b
Use well to name mapping when copying the old well state to the new
...
With the introduction of shut wells the same ordering in the well states
can no longer be assumed. The well names is instead used to map the old
well state to the new. Also the partial_copying is moved into the
initialization.
Tested on SPE1, SPE3, SPE9 and Norne. (Do not change the SPEs and is
nessesary for the Norne)
2014-11-10 08:47:42 +01:00
Tor Harald Sandve
0ff3322786
Use the same relative threshold for drs and drv update
...
The drs_max_rel param is renamed to dr_max_rel and used to restrict both
drs and drv.
2014-11-05 13:03:00 +01:00
Tor Harald Sandve
2e77d429ad
do not keep oil/gas saturated if privious sg/so is sufficient large
2014-11-05 13:01:07 +01:00
Tor Harald Sandve
662a2faf76
Move the update of rs and rv after the phase transitions
...
The old rs and rv values are used in the phase transitions calculations.
The update of rs and rv to the state is therefore moved after the phase
transitions in order for the code to use the old values.
2014-11-05 12:35:32 +01:00
Robert K
05608a6145
stick to previous method of parameter extraction. grouping is not what we wanted here.
2014-10-22 15:29:20 +02:00
Robert K
2a7f951e25
provide default for parameter group.
2014-10-22 15:00:10 +02:00
Robert Kloefkorn
937555bb3b
use group for timestep parameters.
2014-10-20 15:18:14 +02:00
Robert Kloefkorn
e68c58fb59
added linear to docu.
2014-10-20 14:47:45 +02:00
Robert Kloefkorn
42e4043c18
remove unused variable.
2014-10-20 14:47:33 +02:00
Robert Kloefkorn
fb32376d8f
throw exception when convergence failed, also in NewtonSolver.
2014-10-17 12:40:25 +02:00
Robert Kloefkorn
cd7b6ce7f0
remove blank at end of line.
2014-10-17 12:25:13 +02:00
Robert Kloefkorn
28bac5ebc9
Merge remote-tracking branch 'upstream/master' into timestepcontrol
2014-10-17 12:24:00 +02:00
Bård Skaflestad
55226c3b86
Merge pull request #220 from qilicun/fix_phase_idx
...
phaseIdx in this for statement is actual active phase index, should not active once again.
2014-10-11 11:14:16 +02:00
Liu Ming
b183fdfa6d
if all the phase are stagnate then stagnate will be true.
2014-10-11 13:46:24 +08:00
Liu Ming
5b28b38056
make the for statement more readable.
2014-10-10 17:01:05 +08:00
Liu Ming
66bb1fae8f
phaseIdx in this for statement is actual active phase index, should not
...
active once again.
2014-10-10 16:21:29 +08:00
Robert Kloefkorn
c9859f6293
Merge remote-tracking branch 'upstream/master' into timestepcontrol
2014-10-09 15:45:43 +02:00
Robert Kloefkorn
9f58ad5476
bugfix, Mismatched free() / delete / delete [] in DuneMatrix due to use of new instead
...
of the matrix internal allocators.
This fix also avoid the copying of the BCRSMatrix by providing a contructor that creates
the DuneMatrix for a given Eigen SparseMatrix.
2014-10-09 14:06:02 +02:00
Robert Kloefkorn
ed75a02ac0
Merge remote-tracking branch 'upstream/master'
2014-10-09 14:03:42 +02:00
Robert Kloefkorn
62cefb3a3e
print warning when off-diagonal element is found in Schur complement instead of OPM_THROW.
2014-10-07 10:00:38 +02:00
Robert K
c2e6b368ae
revert Schur fix.
2014-10-06 15:59:01 +02:00
Robert K
a8c0f7df92
apply changes made in opm-core.
2014-10-06 15:53:17 +02:00
Robert K
c42eeffdeb
remove unused output
2014-10-06 14:27:55 +02:00
Robert K
d4802121d3
moved the utility classes to opm-core.
2014-10-06 13:59:21 +02:00
Robert K
faf191b9f1
Merge remote-tracking branch 'upstream/master' into timestepcontrol
2014-10-06 13:58:54 +02:00
Bård Skaflestad
9124b6f56b
Don't use 'typename' in non-template context
...
This fixes the build on GCC 4.4.
Pointy hat: @bska
2014-10-06 12:33:08 +02:00
Bård Skaflestad
9b10f7827b
Merge pull request #210 from atgeirr/dune-matrix-hack
...
Add a horrible hack: DuneMatrix class.
2014-10-06 11:43:05 +02:00
Atgeirr Flø Rasmussen
304e0a7bfc
Remove unneeded template argument.
2014-10-06 11:08:44 +02:00
Atgeirr Flø Rasmussen
0186d95d0b
Fix usage of result from computePressures().
2014-10-06 10:55:53 +02:00
Atgeirr Flø Rasmussen
328477e521
Merge pull request #208 from qilicun/fvf_phase_pressure
...
use phase pressure to compute FVF.
2014-10-06 09:08:45 +02:00
Robert K
2295718f59
enabled solver restart again.
2014-10-03 16:01:59 +02:00
Robert K
9e9ef0155c
moved TimeStepControl to Simulator::run and make it work again.
2014-10-03 14:31:57 +02:00
Robert K
a723a01f72
some revision, time step control is now completly in the Simulator run method.
...
The solver simply returns a number of iterations.
2014-10-03 14:18:31 +02:00
Robert K
fcf6cd5f90
implemented the PID controler, seems to work fine. More testing needed.
2014-10-02 14:04:59 +02:00
Robert K
d3bc836536
make sub stepping a parameter.
2014-10-01 16:36:38 +02:00
Robert K
2602ae7baf
enable substepping.
2014-10-01 15:45:27 +02:00
Robert K
f535761a17
only warn when non-diagonal block is found.
2014-10-01 15:45:11 +02:00
Robert K
d03f9411b6
first attempt to implement a time step control.
2014-10-01 13:50:08 +02:00
Robert K
ce996c2a6c
intialialize parameter with given param.
2014-10-01 13:04:23 +02:00
Robert K
21593cf7eb
only initialize solver parameters once to avoid default parameter output.
2014-10-01 12:57:17 +02:00
Robert K
739be5a873
revert to upstream/master.
2014-10-01 12:54:30 +02:00
Robert K
23a12421a8
revert changes.
2014-10-01 12:50:46 +02:00
Robert K
2a33063966
added solver parameters to void reading in every step.
2014-10-01 12:48:41 +02:00
Robert K
b337873e7f
First version of time step control. Not really fully functioning yet.
2014-09-30 15:53:43 +02:00
Atgeirr Flø Rasmussen
31197e268f
Remove unused code.
2014-09-30 10:12:10 +02:00
Atgeirr Flø Rasmussen
e256be267c
Compile fix for Dune 2.2.
...
Some BCRSMatrix members are new in 2.3.
2014-09-30 09:57:45 +02:00
Atgeirr Flø Rasmussen
1602fce6b9
Add DuneMatrix class.
...
This is a hack to get a more efficient constructor for dune-istl
matrices from Eigen matrices.
2014-09-26 15:03:59 +02:00
Atgeirr Flø Rasmussen
6c7061096a
Improve performance of subset() and superset().
...
Using a different construction method for the sparse matrix
used makes the methods a little faster. There is probably
still room for improvement by refactoring to avoid the
sparse matrix products.
2014-09-25 11:38:48 +02:00
Liu Ming
5657d32884
use phase pressure to compute FVF.
2014-09-25 14:34:04 +08:00
Atgeirr Flø Rasmussen
5d59a97972
Add parameters controlling amg usage in cpr preconditioner.
...
New parameters are:
- cpr_use_amg (default false) if true, use AMG preconditioner for elliptic part
- cpr_use_bicgstab (default true) if true, use BiCGStab (else use CG) for elliptic part
2014-09-22 10:10:11 +02:00
Atgeirr Flø Rasmussen
25c9b36d4f
Use new location of warning suppression header.
2014-09-20 10:39:34 +02:00
Atgeirr Flø Rasmussen
fe7e408e46
Merge pull request #204 from bska/fix-oob-pix
...
Fix out-of-bounds indexing into PVT function table
2014-09-20 08:45:26 +02:00
Joakim Hove
2a9f6e8d35
Merge pull request #203 from andlaus/table_improvements
...
dapt the the table related API changes of opm-parser
2014-09-19 15:27:35 +02:00
Andreas Lauser
0f436e12c9
adapt the the table related API changes of opm-parser
2014-09-18 16:49:29 +02:00
Robert Kloefkorn
f299b5f5d0
apply nitpicks comments and avoid delete.
2014-09-18 15:11:50 +02:00
Robert Kloefkorn
f4129742a5
Merge remote-tracking branch 'upstream/master'
2014-09-18 14:56:50 +02:00
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
Robert Kloefkorn
d46fbe6728
enabled DUNE-ISTL::AMG and DUNE-ISTL::CGSolver.
...
The default is the same as before, i.e. DUNE-ISTL::ILU0 and DUNE-ISTL::BiCGSolver
for solving the elliptic problem.
2014-09-04 17:06:00 +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