Commit Graph

396 Commits

Author SHA1 Message Date
Kai Bao
1da24f3c3c Changing the way of string comparison to ==. 2014-05-23 10:07:02 +02:00
Kai Bao
cb48d185b9 The reference is used for residual_histroy.
In the detectNewtonOscillations().
2014-05-23 09:55:29 +02:00
Kai Bao
f2518b6647 Removing the output of the size of system. 2014-05-22 22:15:55 +02:00
Kai Bao
cd174c5ba4 Merge branch 'specifying_maximum_iterations' into oscillation_treatment_withlimitedupdate
Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.hpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-05-22 22:13:14 +02:00
Kai Bao
6e6339d8c3 Adding user-specifying max iteration. 2014-05-22 22:09:54 +02:00
Kai Bao
fdb201d365 Restoring maxit to be 15. 2014-05-22 21:59:27 +02:00
Kai Bao
8a905535ce Removing some spaces. 2014-05-22 21:58:44 +02:00
Kai Bao
6ac95ac7a8 Removing some debugging output. 2014-05-22 21:56:00 +02:00
Kai Bao
5c409173b4 Removing some debugging output. 2014-05-22 20:56:22 +02:00
Kai Bao
95cd33185b Correcting the determination of stagnate. 2014-05-22 20:25:58 +02:00
Kai Bao
f597e2117d Rewriting the detection function with for loop.
It is more automatic while it remains to change to some more flexible
form.
2014-05-22 16:07:17 +02:00
Kai Bao
d7aa21dc03 Merge branch 'master' into oscillation_treatment_withlimitedupdate
Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.hpp
2014-05-22 09:59:50 +02:00
Atgeirr Flø Rasmussen
cb327ce63a Warning removal: const on return types not needed. 2014-05-21 19:49:29 +02:00
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
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
Kai Bao
2733b5459e Removing the space before (). 2014-05-21 11:02:04 +02:00
Kai Bao
252048b30a Removing one blank line. 2014-05-21 11:00:24 +02:00
Kai Bao
0178bd1b8c Removing the bool paramters calling stablizeNewton. 2014-05-21 10:47:55 +02:00
Kai Bao
5277fa389d Removing two input paramters in stablizeNewton().
Removing the bool input parameters osicllate and stagnate from the
stablizeNewton(). Basically, the value omega will decide if the
relaxation will be applied.
2014-05-21 10:44:20 +02:00
Kai Bao
578abe3b78 Merge branch 'master' into oscillation_treatment_withlimitedupdate
Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.hpp
2014-05-21 10:12:49 +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
Kai Bao
44a3dbd732 Finishing the workflow. 2014-05-20 19:52:15 +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
Kai Bao
0e244a4845 Commit to save changes. 2014-05-20 15:00:49 +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
9557db4c15 Merge branch 'limited_variable_update' of github.com:GitPaean/opm-autodiff into oscillation_treatment_withlimitedupdate
Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.hpp
2014-05-20 13:45:13 +02:00
Kai Bao
c617623eb1 Adding debugging output. 2014-05-20 13:31:13 +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
Kai Bao
8dcae05a7b Revising the function stablizeNewton().
For the SOR type relaxation, we need the dx from the previous iteration.
2014-05-20 11:25:04 +02:00
Kai Bao
5b6c325a32 Finish the first stablizeNewton(). 2014-05-19 18:41:38 +02:00
Kai Bao
ab8636b57d Add function detectNewtonOscillations. 2014-05-19 15:43:56 +02:00
Kai Bao
341f727467 Add the residuals() function. 2014-05-19 13:06:44 +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
a969025c5e Add a residuals function prototype. 2014-05-19 10:41:23 +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
Andreas Lauser
2fda604c3b fix a few annoying but harmless warnings appearing on newish compilers
(i.e. clang 3.3 in my case.)
2014-05-13 13:39:27 +02:00
Andreas Lauser
756de358c0 implement multi-region PVT
this requires the multi-region PVT patch for opm-core
2014-05-13 13:39:26 +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
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
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
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
4f006cad78 Merge remote-tracking branch 'upstream/master' into fixing_debugging 2014-05-07 14:34:43 +02:00
Atgeirr Flø Rasmussen
3e2dd11641 Remove unused function addOldWellEq(). 2014-05-07 14:34:20 +02:00
Kai Bao
414032220b Commit before cleaning up. 2014-05-07 14:23:55 +02:00
Kai Bao
9cd7620121 Comment out the unused np and sat
In function getConvergence()
2014-05-06 17:13:24 +02:00
Kai Bao
65350426f7 Finishing the first version of the getConvergence. 2014-05-06 17:09:00 +02:00
Kai Bao
7bb7e5fbb4 Finish the first version of getConvergence.
The determination of disgas and vapoil is omitted and should be added
later.
2014-05-06 15:47:08 +02:00
Kai Bao
cfc589b453 Add some outputing information 2014-05-05 17:54:32 +02:00
Andreas Lauser
ebb1da0662 replace all boost:: smart pointers by their std:: equivalents
The std variants are part of c++-2011 and it's 2014 now. (they are
also available in GCC 4.4.)
2014-05-02 16:17:54 +02:00
Andreas Lauser
b7f3ee7b79 rename "newParserDeck" to "deck" 2014-05-02 15:48:04 +02:00
Andreas Lauser
dbb19403fc completely remove the EclipseGridParser from the module 2014-05-02 15:47:52 +02:00
Kai Bao
fecc161d7e The output for the first Newton iteration
output the matrix, residual and the solution for the first Newton
iteration in opm/autodiff/NewtonIterationBlackoilSimple.cpp
2014-05-02 10:49:44 +02:00
Kai Bao
820e65e772 Merge remote-tracking branch 'atgeirr/spe9-fixes' 2014-04-28 14:09:06 +02:00
Atgeirr Flø Rasmussen
17400cebaf Fix bug in use of capillary pressure.
Pcow must be subtracted, not added to oil pressure to obtain water pressure.
2014-04-28 13:19:18 +02:00
Atgeirr Flø Rasmussen
4b4bb07d71 Changed the well control equations for dead wells.
This is now done in the same way as in MRST.
Also added a minor debugging macro, and (commented out) uses of it.
2014-04-24 18:50:49 +02:00
Bård Skaflestad
15a585106b Merge pull request #124 from atgeirr/well-variable-updating
Changed well variable updating
2014-04-24 13:32:43 +02:00
Atgeirr Flø Rasmussen
939489a534 Use v.data() instead of &v[0]. 2014-04-23 13:05:51 +02:00
Atgeirr Flø Rasmussen
ca8115c532 Add missing #include.
While version.hh is included transitively via other dune includes,
this may change. So for future-proofing we include it here.
2014-04-23 12:26:07 +02:00
Atgeirr Flø Rasmussen
57a5b4bc02 Use #if guards to handle different dune versions. 2014-04-23 11:12:55 +02:00
Atgeirr Flø Rasmussen
d7ba3b0fbc Merge branch 'master' into suppress-warnings
Conflicts:
	cmake/Modules/UseWarnings.cmake
2014-04-22 14:50:15 +02:00
Atgeirr Flø Rasmussen
9e5d98dddd Make updateWellControls() update well variables, too.
Formerly only the control was changed. Now both well state and primary variables
will be modified to match control targets that were switched to (bhp or rates).
2014-04-22 13:52:42 +02:00
Kai Bao
3bdfbfd78c Merge remote-tracking branch 'upstream/master' 2014-04-22 09:27:50 +02:00
Atgeirr Flø Rasmussen
e9d6a0e8e0 Fix bugs relating to misused face_cells variable. 2014-04-15 20:49:47 +02:00
Atgeirr Flø Rasmussen
e4a6ab1c86 Use non-deprecated leafGridView() method. 2014-04-15 20:49:17 +02:00
Atgeirr Flø Rasmussen
b0b206e9b8 Remove unused variable. 2014-04-15 20:48:50 +02:00
Atgeirr Flø Rasmussen
7a1d221da3 The reference phase is always the oil phase. Removed explicit warning. 2014-04-15 20:48:15 +02:00
Atgeirr Flø Rasmussen
1e75efd097 Add generation and use of warning-suppressing headers. 2014-04-15 20:46:45 +02:00
Atgeirr Flø Rasmussen
dc622c6a7a Add forgotten #include <config.h>. 2014-04-15 12:10:43 +02:00
Atgeirr Flø Rasmussen
9ae24f9380 Merge branch 'master' into cpr-preconditioning-again
Conflicts:
	CMakeLists_files.cmake
	examples/test_implicit_ad.cpp
2014-04-15 11:48:36 +02:00