Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Add initial skeleton of CPR preconditioning class.

Implementation is identical to NewtonIterationBlackoilSimple for now.
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.
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.
implement multi-region PVT

this requires the multi-region PVT patch for opm-core
fix a few annoying but harmless warnings appearing on newish compilers

(i.e. clang 3.3 in my case.)
Added some utility functions for the CPR preconditioner.

The new functions are:
    - eliminateVariable()
    - recoverVariable()
    - isDiagonal()
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.
Add preliminary version of CPR preconditioner class.

This version simply does ILU(0) preconditioning.
Instantiate new preconditioner.

Using it so far only for comparing to existing solver.
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.
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.
Add dsmax for the update of saturations.

dsmax is the absolute limit for saturation update.
Add drsmaxrel for the update of rs.

drsmaxrel is a relative limit.
Apply dpmaxrel to the update of bhp

And also change the default value for dpmaxrel.
Add more residual output in getConvergence.

Output the residualWellFlux, residualWell, MB to monitor the convergence
process.
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.
Finishing the modification for solver class.