Commit Graph
908 Commits
Author SHA1 Message Date
Bård Skaflestad f0d908d104 Merge pull request #140 from atgeirr/cpr-preconditioning
Cpr preconditioner
2014-05-21 15:36:12 +02:00
Atgeirr Flø Rasmussen 3b80724581 Update Eigen requirements. 2014-05-21 13:57:16 +02:00
Atgeirr Flø Rasmussen f48ee55c0d Change error message. 2014-05-21 13:15:42 +02:00
Atgeirr Flø Rasmussen e9ab64fd18 Remove usage of DUNE_UNUSED_PARAMETER. 2014-05-21 13:14:02 +02:00
Atgeirr Flø Rasmussen 3e956a9659 Merge pull request #139 from GitPaean/limited_variable_update
Limited variable update
2014-05-20 21:52:22 +02:00
Kai Bao 827cd7e8e4 Removing the param.has() if condition. 2014-05-20 19:53:39 +02:00
Atgeirr Flø Rasmussen fec6154d81 Remove unused data members and parameters. 2014-05-20 15:23:04 +02:00
Kai Bao 63c53096cd Using param.getDefault() instead of param.get().
And also remove the space in dsMax (), drsMaxRel (), dpMaxRel ().
2014-05-20 15:17:37 +02:00
Atgeirr Flø Rasmussen 97f572f5d4 Merge pull request #137 from atgeirr/fix-wellcontrolupdate
Fix two bugs in updateWellControls().
2014-05-20 15:14:09 +02:00
Atgeirr Flø Rasmussen 023a46fa12 Put creation of elliptic system in separate function. 2014-05-20 14:24:24 +02:00
Atgeirr Flø Rasmussen b823324e59 Cite CPR article by Gries, Stuben et al. 2014-05-20 14:23:49 +02:00
Kai Bao 79916078f2 Changing the defalut value for the paramters.
Add reordering the intialization order to removing the reordered
warning.
2014-05-20 13:05:11 +02:00
Atgeirr Flø Rasmussen 307cd6ef33 Add convergence check, local whitespace cleanup. 2014-05-19 11:21:23 +02:00
Atgeirr Flø Rasmussen ec03062b51 Remove unused code. 2014-05-19 11:13:17 +02:00
Kai Bao 2b31ab6111 Removing one blank line. 2014-05-16 18:27:23 +02:00
Kai Bao d461eb9e76 Cleaning up some debugging output. 2014-05-16 18:15:42 +02:00
Kai Bao f2ecbf163e Cleaning up some debugging output. 2014-05-16 18:13:36 +02:00
Kai Bao cd50b54ddf Finishing the modification for solver class. 2014-05-16 18:02:55 +02:00
Atgeirr Flø Rasmussen d9d5074dd2 Initial implementation of CPR preconditioner done.
With some caveats:
  - scaling factors for material balance equations and pressure are hardcoded.
  - pressure system is formed from sum of material balance equations, with
    no check for diagonal dominance.
2014-05-16 14:21:14 +02:00
Kai Bao 94e3fd3fcb Add more residual output in getConvergence.
Output the residualWellFlux, residualWell, MB to monitor the convergence
process.
2014-05-16 13:52:33 +02:00
Kai Bao 55b0164d4a Apply dpmaxrel to the update of bhp
And also change the default value for dpmaxrel.
2014-05-16 13:46:00 +02:00
Kai Bao b001c580b9 Add drsmaxrel for the update of rs.
drsmaxrel is a relative limit.
2014-05-16 13:32:34 +02:00
Kai Bao 4cef151091 Add dsmax for the update of saturations.
dsmax is the absolute limit for saturation update.
2014-05-16 13:26:44 +02:00
Atgeirr Flø Rasmussen 52746a6455 Fix two bugs in updateWellControls().
The bugs were:
  - Not accounting for the different storage orders used for the
    state.qs variable and the WellState*::wellRates() field.
  - When switching to rate control, well rates for phases other
    than that to be controlled by were set to zero.
2014-05-16 09:07:43 +02:00
Atgeirr Flø Rasmussen bbf11c42c6 Pass elliptic matrix part to CPR preconditioner.
For now, the top left part is passed with no summing of equations or checks
for diagonal dominance.
2014-05-15 15:49:14 +02:00
Atgeirr Flø Rasmussen c10a6f0804 Instantiate new preconditioner.
Using it so far only for comparing to existing solver.
2014-05-14 15:53:54 +02:00
Atgeirr Flø Rasmussen c0ce5a13b4 Add preliminary version of CPR preconditioner class.
This version simply does ILU(0) preconditioning.
2014-05-14 15:52:01 +02:00
Atgeirr Flø Rasmussen b73367deda Let computeNewtonIncrement() eliminate well equations.
In its current state, we still don't do CPR, but eliminate the well equations,
solve the resulting system and finally recover the eliminated well unknowns.
2014-05-13 15:02:11 +02:00
Atgeirr Flø Rasmussen c60a080a73 Added some utility functions for the CPR preconditioner.
The new functions are:
    - eliminateVariable()
    - recoverVariable()
    - isDiagonal()
2014-05-13 14:58:13 +02:00
Atgeirr Flø Rasmussen 3e41bf11e9 Enable user control of linear solver for full and elliptic system.
This is done by using parameter subgroups 'cpr_elliptic' and 'cpr_full'.
If groups are not present, parent (root) group will be queried.
2014-05-12 17:12:04 +02:00
Atgeirr Flø Rasmussen 54c07f3d0c Add choice of solution strategies to simulators.
The following is changed in this commit:
 - The constructor for NewtonIterationBlackoilSimple now takes
   a parameter object instead of a linear solver.
 - The fully implicit black-oil simulators can now use the CPR
   preconditioning strategy (by passing use_cpr=true) or the
   simple strategy (the default).
Note that as of this commit, the CPR preconditioning still has
not been implemented properly, and behaves just like the simple
strategy.
2014-05-12 11:10:59 +02:00
Atgeirr Flø Rasmussen 46e4ea7736 Add initial skeleton of CPR preconditioning class.
Implementation is identical to NewtonIterationBlackoilSimple for now.
2014-05-12 11:10:06 +02:00
Kai Bao 613a87eb56 Merge remote-tracking branch 'upstream/master' 2014-05-12 10:43:57 +02:00
Atgeirr Flø Rasmussen eb121f89db Merge pull request #136 from atgeirr/fix-missing-template-keyword
Fix missing template keyword.
2014-05-12 09:33:16 +02:00
Atgeirr Flø Rasmussen 9e170a3f96 Fix missing template keyword.
When invoking a member template in a template function one must in most
cases use the template keyword as a qualifier to indicate that the member
is a template.

I do not understand why this did not trigger a compiler error for the
original author though.
2014-05-12 09:28:15 +02:00
Atgeirr Flø Rasmussen 96610704c4 Merge pull request #132 from atgeirr/remove-old-well-eq
Remove unused function addOldWellEq().
2014-05-09 21:28:54 +02:00
Atgeirr Flø Rasmussen a89d67d8cb Merge pull request #133 from GitPaean/fixing_spe3_newConvergence
Fixing spe3 new convergence
2014-05-09 21:27:29 +02:00
Kai Bao 756c7ca92b Merge remote-tracking branch 'upstream/master' 2014-05-09 14:43:03 +02:00
Kai Bao 8d51dac6c6 Deleting some unused variables.
In FullyImplicitBlackoilSolver_impl.hpp
atol, rtol, resTooLarge
Not setting the converged to be false for the first iteration.
2014-05-09 12:48:04 +02:00
Atgeirr Flø Rasmussen f7f286a574 Merge pull request #135 from totto82/updatePerfp
Update perfPressure
2014-05-09 11:30:49 +02:00
Kai Bao 02ab5b0f22 Cleaning up some commented lines. 2014-05-08 17:19:02 +02:00
Kai Bao a8ddf7477d Cleaningup and ready for push. 2014-05-08 14:38:09 +02:00
Tor Harald Sandve 3143333b69 Update perfPressure
The secondary variable perfpressure is updated when the well
equation is assembled. The perfpressure is used to calculate the
welldensity.
2014-05-08 13:32:49 +02:00
Kai Bao aec38e503d Using the updated rq_ instead of recomputing them. 2014-05-08 11:41:54 +02:00
Kai Bao 3798e3f69b Add return converged for the getConvergence_b; 2014-05-08 11:21:47 +02:00
Kai Bao 5ef4976f4a Using the units from the opm-core.
And a new interface for getConvergence based on x and xw.
2014-05-08 11:03:42 +02:00
Kai Bao ccc1577f09 Deleting some spaces.
FullyImplicitBlackoilSolver_impl.hpp
2014-05-07 14:54:44 +02:00
Kai Bao 930beabd21 Cleaning up FullyImplicitBlackoilSolver_impl.hpp. 2014-05-07 14:52:06 +02:00
Kai Bao be30504daa Cleaning up debugging information.
NewtonIterationBlackoilSimple.cpp
SimulatorFullyImplicitBlackoil_impl.hpp
2014-05-07 14:45:10 +02:00
Kai Bao 7bd73ac54e Cleaning debugging information in sim_fibo_ad.cpp 2014-05-07 14:42:02 +02:00