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
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
Bård Skaflestad
03218f5470
Merge pull request #100 from blattms/master-refactor-for-cpgrid-support
...
Adds fully implicite black oil solver working with CpGrid
2014-04-15 00:03:16 +02:00
Andreas Lauser
e92cac6d0c
fix typo: it's PVCDO, not PVDCO
2014-04-11 11:54:56 +02:00
Atgeirr Flø Rasmussen
148e6e78cb
Fix typo in #include (Autodiff -> AutoDiff).
2014-04-10 09:37:52 +02:00
Bård Skaflestad
c3bb686600
Annotate end of namespace and "#if"
...
This commit adds a few annotations to closing braces on namespaces
and one "#ifdef" conditional. This is an aid to (hopefully) avoid
the problem fixed in commit 688d65e
.
2014-04-09 23:53:20 +02:00
Bård Skaflestad
11e6bc4ad2
Bring a definition of OPM_THROW into scope.
...
The template version of outputStateMatlab() uses OPM_THROW so we need
a definition of the macro.
2014-04-09 16:33:24 +02:00
Bård Skaflestad
688d65e7ef
GridHelpers: Fix build when !HAVE_DUNE_CORNERPOINT
...
This commit fixes an incorrectly nested "#ifdef..#endif" block that
leads to build failures when opm-autodiff is being used without
dune-cornerpoint.
2014-04-09 16:07:59 +02:00
Markus Blatt
327f1b003d
Merge branch 'tester' into master-refactor-for-cpgrid-support
...
Resolved conflicts:
examples/sim_fibo_ad.cpp
opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-04-09 14:39:19 +02:00
Markus Blatt
42fbe3b612
Revert "Activate paralle istl solvers if there is more than one process computing."
...
This reverts commit 9598a990df
.
The commit slipped in by accident and should be part of a separate branch.
2014-04-09 13:32:28 +02:00
Markus Blatt
bccc7c1350
Updates interface to fix issues not resolved in the latest merge.
...
Namely the template parameter was missing for the added methods.
In addition there were still various instances where the grid was
used directly rather than via the functions in GridHelpers.hh.
2014-04-09 12:16:33 +02:00
Kai Bao
84b98d5f31
add some breakpoints for debug
2014-04-09 09:45:59 +02:00
Bård Skaflestad
a784d50f1e
Merge branch 'master' into blattms-master-refactor-for-cpgrid-support
...
Conflicts:
examples/sim_fibo_ad.cpp
opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
This brings the "CpGrid support" branch up to date with respect to
recent changes in opm-autodiff master.
2014-04-08 16:31:17 +02:00
Atgeirr Flø Rasmussen
9fec84312f
Rename method linearSolve()->computeNewtonIncrement().
2014-04-08 16:16:54 +02:00
Atgeirr Flø Rasmussen
bd44127bd6
Renamed more classes.
...
FullyImplicitSystemSolver{Interface, Simple} -> NewtonIterationBlackoil{Interface, Simple}.
Change suggested by B. Skaflestad.
2014-04-08 16:11:08 +02:00
Atgeirr Flø Rasmussen
9e7ab6d1d2
Renamed class {FullyImplicit->Linearised}BlackoilResidual.
2014-04-08 15:56:08 +02:00
Atgeirr Flø Rasmussen
a19344efa9
Changed docs/comments after review suggestions.
...
Suggestions from B. Skaflestad and A. Lauser.
2014-04-08 15:28:10 +02:00
Atgeirr Flø Rasmussen
f1956f05f9
Merge branch 'cpr-preconditioning' into cpr-preconditioning-again
...
Conflicts:
examples/sim_fibo_ad.cpp
examples/test_implicit_ad.cpp
opm/autodiff/FullyImplicitBlackoilSolver.cpp
opm/autodiff/SimulatorFullyImplicitBlackoil.cpp
opm/autodiff/SimulatorFullyImplicitBlackoil.hpp
2014-04-08 15:06:01 +02:00
Atgeirr Flø Rasmussen
e699f9e135
Remove unnecessary argument, and minor formatting corrections.
2014-04-05 00:12:03 +02:00
Tor Harald Sandve
a905eade7a
Use preferred phase to compute wellbore mix for dead wells
...
The wellmore mix is set to preferred phase for dead wells, where the
total volumetric rates are zero. This sets the phase of the flow out of
perforations in dead wells and thus avoids zero volumerats for injecting
preforations in dead wells.
2014-04-04 11:36:02 +02:00
Atgeirr Flø Rasmussen
6c4114ea69
Add more options for Selector class.
...
You can now choose which comparison to do for the indicator vector
to find when to choose the left argument. Only >= before (still default).
2014-04-01 15:49:01 +02:00
Markus Blatt
46f3607641
Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
...
Resolved conflicts:
opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-03-31 11:39:37 +02:00
Atgeirr Flø Rasmussen
4b53f88685
Fix timer usage.
...
This makes the simulator produce proper summary output again.
2014-03-28 14:31:30 +01:00
Atgeirr Flø Rasmussen
faba01f917
Merge pull request #112 from GitPaean/fix_using_new_timer
...
A small fix to make sim_fibo_ad use the new SimulatorTimer.
2014-03-28 13:51:22 +01:00
Atgeirr Flø Rasmussen
9d9576c955
Merge pull request #110 from atgeirr/new_well_formulation
...
New well formulation
2014-03-28 12:47:29 +01:00
Markus Blatt
b279a174db
Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
...
Conflicts:
examples/sim_fibo_ad.cpp
opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-03-27 16:17:44 +01:00
Markus Blatt
9598a990df
Activate paralle istl solvers if there is more than one process computing.
2014-03-27 11:31:17 +01:00
Kai Bao
0914841823
A small fixing to make the sim_fibo_ad using the new timer.
2014-03-27 11:15:55 +01:00
Atgeirr Flø Rasmussen
d4f1a89370
Merge pull request #111 from andlaus/FullyImplicitBlackoilSolver_throw_exception_uppon_non-finite_residual
...
FullyImplicitBlackoilSolver: Throw an exception uppon encountering a non-finite residual
2014-03-26 15:29:34 +01:00
Andreas Lauser
8cd93bf70a
FullyImplicitBlackoilSolver: cleanup the residualNorm() method
2014-03-26 15:16:43 +01:00
Atgeirr Flø Rasmussen
2db726268b
Merge pull request #108 from andlaus/FullyImplicitBlackoilSolver_unify_state_conversion
...
FullyImplicitBlackoilSolver: unify the state conversion routines
2014-03-26 14:29:08 +01:00
Atgeirr Flø Rasmussen
8663c5b604
Merge branch 'FullyImplicitBlackoilSolver_unify_state_conversion' of https://github.com/andlaus/opm-autodiff into test_andlaus
...
Conflicts:
opm/autodiff/FullyImplicitBlackoilSolver.cpp
Resolved by using the new, reduced version of constantState().
2014-03-26 14:21:23 +01:00
Andreas Lauser
2f84156b91
FullyImplicitBlackoilSolver: Throw an exception uppon encountering a non-finite residual
2014-03-26 12:54:46 +01:00
Atgeirr Flø Rasmussen
3bc57780aa
Fix bug in -= operator.
2014-03-26 11:44:49 +01:00
Atgeirr Flø Rasmussen
5e4dff401c
Merge branch 'master' into new_well_formulation
...
Needed to avoid compile errors with updated opm-core.
2014-03-26 11:02:52 +01:00
Atgeirr Flø Rasmussen
41fd953ba2
Fix bugs relating to wells versus perforations.
...
Two kinds of bugs: correct usage of wops_.w2p vs. wops_.p2w, and
correct sizes for some variables (nw vs. nperf).
2014-03-25 18:44:37 +01:00
Atgeirr Flø Rasmussen
dcb59a2fab
Fix bug in access order for state.qs.
...
State.qs is called well_phase_flow_rate in this function.
It is stored with wells running fastest, not phases.
2014-03-25 17:42:14 +01:00
Atgeirr Flø Rasmussen
cb50728ac2
Add end-of-line to switching message.
2014-03-25 17:41:41 +01:00
Atgeirr Flø Rasmussen
4a22c560c7
Implemented updateWellControls().
2014-03-25 14:31:06 +01:00
Andreas Lauser
168b4379d5
don't pass the eclipsewriter to the simulator anymore
...
i.e., the simulator does not deal with any output operations
anymore. This makes sense because report steps are handled by
Opm::TimeMap and the constructor for the simulator already needs more
arguments than appropriate even without this...
2014-03-25 13:17:30 +01:00
Andreas Lauser
9237aa2443
FullyImplicitBlackoilSolver: make constantState() and variableState() consistent
...
With this, constantState() just calls variableState() and throws away
the derivatives. This might be a bit slower than necessary, but it
makes these two methods automatically consistent and constantState()
is only called once per timestep anyway...
thanks to @atgeirr for the suggestion!
2014-03-25 11:55:13 +01:00
Atgeirr Flø Rasmussen
20ecd37709
Use currentControls() field of well state class.
...
Now the well state is consulted for the controls to use when assembling
the well control equations, instead of the (immutable) wells_ struct.
Also, added dummy implementation of updateWellControls().
2014-03-25 11:14:11 +01:00
Atgeirr Flø Rasmussen
bad64de4f2
Add currentControls() field to well state class.
...
This is done since the solver will need to be able to switch well controls
during Newton iterations. The current control specified in the Wells struct
will be used as default and initial value for currentControls().
2014-03-25 11:11:19 +01:00
Markus Blatt
8df314e90f
Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
...
Manually resolved conficts in the following files
examples/sim_fibo_ad.cpp
opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
In additions examples/sim_fibo_ad_cp.cpp was adapted to compile again.
2014-03-25 11:11:08 +01:00
Atgeirr Flø Rasmussen
33d58792de
Fix sign bug in well contribution to mass balance.
2014-03-24 15:28:46 +01:00
Atgeirr Flø Rasmussen
fd4f5f5a26
Merge branch 'master' into new_well_formulation
...
Conflicts:
opm/autodiff/FullyImplicitBlackoilSolver.cpp
To resolve conflicts, WellState was changed to WellStateFullyImplicitBlackoil
in multiple places, and perfRate() changed to perfPhaseRate() in
WellDensitySegmented.
2014-03-20 10:04:45 +01:00
Atgeirr Flø Rasmussen
f99b9b90a4
Merge pull request #101 from andlaus/sim_fibo_ad_use_new_wellmanager
...
sim_fibo_ad: convert to the new-style wells manager
2014-03-20 09:07:03 +01:00
Atgeirr Flø Rasmussen
d21e310d01
Merge pull request #98 from andlaus/reverse_increment_write_order_again
...
go back to incrementing the current simulation time first, then calling EclipseWriter::writeSolution()
2014-03-20 09:04:10 +01:00
Andreas Lauser
49a5b67137
sim_fibo_ad: fix writing
...
the initial condition was written multiple times. We now fix this by
not writing anything in the simulator and moving this logic to the
main loop..
2014-03-19 17:40:51 +01:00
Atgeirr Flø Rasmussen
295677c8c1
Use WellStateFullyImplicitBlackoil class instead of WellState.
2014-03-18 11:27:40 +01:00
Atgeirr Flø Rasmussen
e7f4637461
Add WellStateFullyImplicitBlackoil class.
...
This is intended to be used instead of the WellState class in the fully
implicit blackoil simulator. It contains a WellState to reuse the init()
method and to enable users to call functions requiring a WellState.
This is done with containment and an access member function,
basicWellState(), instead of with inheritance to minimize surprises.
2014-03-18 11:23:05 +01:00
Atgeirr Flø Rasmussen
e8ee805717
Work in progress: use WellDensitySegmented class.
...
This is work in progress since it is non-working: phaseRates() is
not used correctly, and changes must be made to WellState or equivalent.
2014-03-18 08:48:34 +01:00
Atgeirr Flø Rasmussen
737affb077
Minor whitespace adjustments.
2014-03-17 10:23:40 +01:00