Commit Graph

365 Commits

Author SHA1 Message Date
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
Atgeirr Flø Rasmussen
d821afe11f Whitespace fix. 2014-03-17 10:14:45 +01:00
Markus Blatt
c82778b3a9 Implemented VTK output for CpGrid using DUNE's VTKWriter and activated Matlab for CpGrid. 2014-03-13 16:33:36 +01:00
Markus Blatt
4e39c7dad1 [bugfix] Fixes elementAt of CentroidIterator. 2014-03-13 16:33:36 +01:00
Markus Blatt
340da4cd7f Added function for querying the face area to the helpers. 2014-03-13 16:33:36 +01:00
Markus Blatt
f4812c21eb Add an example program of FIBOS that uses CpGrid. 2014-03-13 16:33:36 +01:00
Markus Blatt
5112b8af26 Removes the dependency of FullyImpliciteBlackoilSolver onto UnstructuredGrid.
With these changes it will be possible to use CpGrid with FIBOS except for the
output routines.
2014-03-13 16:33:36 +01:00
Markus Blatt
0a5262b7c3 Added implementation of free function interface grid interface for CpGrid.
This implements a superset of the interface as proposed in pull request
 opm-core#496 for use with CpGrid.
It also adds some additional functionality needed in opm-autodiff.
2014-03-13 15:27:45 +01:00
Andreas Lauser
0ce6093b69 go back to incrementing the current simulation time first, then calling EclipseWriter::writeSolution()
for this not to trigger an assertation after the last time step, the
changes of OPM/opm-parser#141 are required.
2014-03-11 16:05:00 +01:00
Andreas Lauser
1383eadf8f fix the fallout of the SimulatorTimer::currentTime() -> SimulatorTimer::simulationTimeElapsed() rename 2014-03-11 16:01:59 +01:00
Tor Harald Sandve
a19aff63e7 Adds new well formulation
Todo: incorporate WellDensitySegment. Currently values of the pressure
drop is hardcoded to make the rest of the code work
Todo: make it possible to shut perforation with crossflow.
2014-03-11 14:30:54 +01:00
Tor Harald Sandve
9cb7e8635e Adds -= operator
An elementwise -= operator is added to the autodiff class.
2014-03-11 14:30:54 +01:00
Joakim Hove
0c36af631f Using well_controls_well_is_open() function 2014-03-04 14:49:54 +01:00
Atgeirr Flø Rasmussen
5bcca58d31 Make BlackoilPropsAdInterface pure virtual again.
Done by adding (throwing) implementation to BlackoilPropsAd class.
2014-03-04 13:09:23 +01:00
Atgeirr Flø Rasmussen
3de050b19f Merge pull request #87 from osae/hysteresis
Hysteresis.
2014-03-04 10:30:07 +01:00
Atgeirr Flø Rasmussen
3627d9ec02 Make spline interpolation possible.
This restores the logic for choosing monotone splines for dead oil/gas pvt
tables, but the option is inactive (samples set to zero at top).
2014-03-03 10:31:21 +01:00
Atgeirr Flø Rasmussen
2cc5f0b421 Bugfix: PVDCO->PVCDO. 2014-03-03 10:30:39 +01:00
Atgeirr Flø Rasmussen
b4fe41249a Fix error output. Also very minor whitespace issues. 2014-03-03 10:29:13 +01:00
Joakim Hove
3208c61472 Merge pull request #89 from andlaus/parser-integrate_new_simulatortimer
Parser integrate new simulatortimer
2014-02-27 14:43:00 +01:00
Andreas Lauser
dd080c4515 first write out the result of a time step, then increment the timer
if done the other way round we would make an assertation in TimeMap
false and also the values returned by SimulationTimer would be for the
next time step and not the current one...
2014-02-21 16:06:26 +01:00
osae
305512cc21 Hysteresis.
SimulatorFullyImplicitBlackoil reports saturation values at each
completed time-step, allowing detection of hysteris behavior.
2014-02-18 14:50:29 +01:00
Andreas Lauser
f7541aa27a BlackoilPropsAdFromDeck: Add support for PVTO 2014-02-14 17:56:20 +01:00
Andreas Lauser
198f805c2a switch to the new parser's table utility classes 2014-02-14 17:56:08 +01:00
Andreas Lauser
2deeeef4e4 really use the new parser
in the previous commit this was #if 0'ed...
2014-02-14 17:56:08 +01:00
Andreas Lauser
7f485626a2 use the new parser to read the PVT and grid data from the deck
the old code has not yet been removed, but in the long term, this is
probably the way to go.
2014-02-14 17:56:07 +01:00
Andreas Lauser
627b1f3906 make the deck from opm-parser available to the black-oil PVT property classes 2014-02-14 17:56:07 +01:00
Atgeirr Flø Rasmussen
a14cff7834 Use new linear solver interface in fully implicit solver.
This includes:
 - Using the class FullyImplicitBlackoilResidual instead of
   in-class definition for the residual object.
 - Changing residual field name mass_balance to material_balance_eq.
 - Letting the simulator and solver classes accept a
   FullyImplicitSystemSolverInterface instead of a LinearSolverInterface.
 - In sim_fibo_ad and test_implicit_ad, instantiate class
   FullyImplicitSystemSolverSimple, replicating existing behaviour.
2014-02-10 10:47:21 +01:00
Atgeirr Flø Rasmussen
8850868f50 Interface and simple implementation of fully implicit system solver.
This is done in preparation for adding a cpr-preconditioning solver
for the fully implicit black-oil system. The existing implementation
that concatenates the whole system and passes it to some linear solver
has been moved from a private function of FullyImplicitBlackoilSolver
to the class FullyImplicitSolverSimple.

To enable this decoupling, the residual struct has been copied out
of the FullyImplicitBlackoilSolver class and is now an independent
struct: FullyImplicitBlackoilResidual. The opportunity has been used
to replace the field mass_balance with material_balance_eq, which is
more precise.
2014-02-10 10:41:18 +01:00
Atgeirr Flø Rasmussen
615a88ad90 Made Residual struct definition public, and documented.
This is in anticipation of implementing CPR preconditioning.
2014-02-07 17:15:48 +01:00
Atgeirr Flø Rasmussen
f84b0a6a4d Remove rs_or_sg_eq from the residual.
This has not been used since the introduction of live gas changed
the treatment of rs (and rv) values to make a more compact system.
2014-02-07 16:33:19 +01:00
Atgeirr Flø Rasmussen
0b14af943b Forward declare PhaseUsage as struct, not class. 2014-02-07 14:38:57 +01:00
Markus Blatt
e05675bd41 Fixes warning about initialization order in FullyImpliciteBlackOilSolver. 2014-02-03 18:14:49 +01:00
Atgeirr Flø Rasmussen
614c3f35af Removed dead code.
The code was partially kept as a reminder to implement
proper well reporting and mass balance reporting. Now
well reporting has been taken care of, so we remove
the code.
2014-01-31 09:07:53 +01:00
Atgeirr Flø Rasmussen
436624f662 Write initial values to eclipse format output.
This yields output files that have the same behaviour as
eclipse in terms of number of steps, and what the steps mean.
2014-01-30 14:57:58 +01:00
Atgeirr Flø Rasmussen
38a48dd149 Fix indexing error in if-test. 2014-01-27 10:42:17 +01:00
Atgeirr Flø Rasmussen
f9ea03fe67 Renamed SegmentedWellModel->WellDensitySegmented. 2014-01-24 15:54:01 +01:00
Atgeirr Flø Rasmussen
2f7697e00d Merge branch 'master' into seg-well-model 2014-01-24 15:48:49 +01:00
Tor Harald Sandve
cdd312fa55 Comment out unused code
Part of the code that is no longer in use is commented out.
2014-01-24 13:35:04 +01:00
Tor Harald Sandve
825c9be0db Fixed white spaces 2014-01-24 13:27:32 +01:00
Tor Harald Sandve
19f0a81db1 Fixed from bitwise to logical operator
The && is used instead of &
2014-01-24 13:15:29 +01:00
Tor Harald Sandve
b2ac4c7aac Fixed missing documentation 2014-01-24 13:14:08 +01:00
Atgeirr Flø Rasmussen
5d386f2a49 Bugfixes in treatment of perforation depths and final accumulation. 2014-01-23 12:42:57 +01:00
Atgeirr Flø Rasmussen
98371f660f Fix mixture calculation for volatile oil case. 2014-01-23 12:40:54 +01:00
Atgeirr Flø Rasmussen
ac6209640b Documented interface for SegmentedWellModel. 2014-01-22 13:55:22 +01:00
Atgeirr Flø Rasmussen
ad81cc6a37 Initial version of segmented well model.
This computes pressure differences with respect to the bottom-hole pressure
for each well perforation, based on the well flows. It is explicit and not
implicit, using the previous time step's flow rates to calculate the necessary
densities.
2014-01-22 12:53:05 +01:00
Tor Harald Sandve
ed02b4a91f Implementation of live gas
The simulator now handles live gas as well as live oil.
The primary variables are Po,Sw and Rs,Rv or Sg depending on fluid
condition
State 1 Gas only (Undersaturated gas): Po, Sw and Rv
State 2 Gas and oil: Po, Sw and Sg
State 3 Oil only (Undersaturated oil): Po, Sw and Rs

This commit includes:
1. New interfaces for the vapor oil/gas ratios (Rv)
2. Modifications in the equations to handle rvs
3. New definition of ADI variable to handle changing primary variables
4. Modifications in the solution updates to handle changing primary
variable
5. Some changes in the appleyard process to sync with Mrsts livegas
implementation.

NOTE:
The implementation is tested on the liveoil cases SPE1 and a simplified
SPE9 and produces the same results as the old code.
The simulator is not yet able to converge on SPE3 with livegas present.
For SPE3 to converge a more robust well implementation is needed. The
current simulator reproduce the results of Mrst when a similar well
model is used in Mrst as is currently implemented OPM.
2014-01-10 16:07:32 +01:00
Tor Harald Sandve
3c5b0b9e73 Add interface for wet gas
The pvt interface is extened to handle wet gas
1. A function for rvSat is added to the interface
2. An interface that takes rv and the fluid condition as an input for
the gas properties is added. The old interface without rv and the fluid
condition is kept in the file.
3. The new interface is implemented in BlackoilPropsAd and
BlackoilPropsAdFromDeck.

A simulator that tests wet gas is not yet implemented.
2014-01-10 16:07:32 +01:00
Joakim Hove
bd1417b164 Changed to use well_controls_get_current_distr(). 2014-01-09 12:09:19 +01:00
Joakim Hove
427f55940e Changed direct access to struct WellControls to use well_controls_get_xxx() api. NB: Do check the calls to well_control_iget_distr(). 2014-01-09 09:39:16 +01:00
Joakim Hove
37274035bc Changed direct access to struct WellControls to rather use well_controls_get_xxx() api. 2014-01-09 09:39:08 +01:00
Andreas Lauser
58afaa5069 fix the rebase fallout 2013-12-06 10:33:58 +01:00
Andreas Lauser
6f2fd5ae69 use the reference pressure to calculate the transmiscibility factors 2013-12-06 10:19:08 +01:00
Andreas Lauser
977395fccd include capillary pressure in the PDEs
I'm neither sure that this is fully correct nor that I found all
occurences (so far, the output writing code is missing in this patch),
but it seems to work for SPE1...
2013-12-06 10:17:58 +01:00
Andreas Lauser
65d86c4dec make the phase-presence docstring understandable for mere mortals 2013-12-04 12:35:21 +01:00
Bård Skaflestad
cb483e92cc Switch condition interface to phase presence facility
Commit 4aa0eaf introduced density and viscosity evaluators into the
BlackoilPropsAdInterface that accepted an externally assignable
condition to distinguish saturated from unsaturated cases.  As a
result of a few low-level technical problems with that approach,
this commit changes those affected interfaces to use the black-oil
specific 'PhasePresence' facility of opm-core's commit a033329.

Update callers accordingly.
2013-12-03 18:12:54 +01:00
Bård Skaflestad
fc25415066 Merge branch 'mrst' of github.com:totto82/opm-autodiff into match-reference/properties 2013-12-02 17:00:15 +01:00
Tor Harald Sandve
4aa0eaff67 Whether the fluid is saturated or not is explicitly passed to the pvts
The criteria for whether the fluid is saturated or not is moved from the
within the pvt calculations to the solver, and passed to the pvt
calculations as a array of boolean values.
2013-11-28 15:57:00 +01:00
Andreas Lauser
2cf32b6f4f Use EclipseWriter from opm-core
Note: The interface here requires opm/opm-core#424.
2013-11-27 15:45:45 +01:00
Andreas Lauser
1c62934034 fix some clang 3.3 warnings
The most severe change probably is the removal of the AutoDiff
debugging helper functions which were useful from within a debugger
but unfortunately had to rely on a presumed linker bug in order not to
be removed in the final binary.

Also, some private attributes were unused. These have been removed and
the constructors of their respective classes have been adapted. Once
their intended functionality is actually implemented, they should be
brought back on an as-needed basis.

Thanks to @bska for the review!
2013-11-14 14:33:38 +01:00
Atgeirr Flø Rasmussen
258d8e0e24 Avoid infinite loop with two constant operands. 2013-10-24 13:41:55 +02:00
Atgeirr Flø Rasmussen
1eec8b16d6 Fix bug in operator+ introduced by previous commit.
Also make documentation clearer.
2013-10-24 00:17:15 +02:00
Atgeirr Flø Rasmussen
46a17945a3 Fix minor whitespace issue. 2013-10-23 22:42:32 +02:00
Atgeirr Flø Rasmussen
b996959c61 Add new AutoDiffBlock::constant() overload without block sizes.
This should simplify some uses of the autodiff code. The internals
have been changed to allow for objects to have an empty vector of
Jacobians, always treating that object as a constant.
2013-10-23 20:09:55 +02:00
Bård Skaflestad
faa3646a52 Fix convergence failure exception message
The message was a leftover from the ImpesTPFA solver and should
reflect the actual location.

Noticed by: qilicun (Liu Ming)
Fixes: Issue #50
2013-10-22 10:11:53 +02:00
Atgeirr Flø Rasmussen
f40271d96c Minimal fix for Eigen versions lacking pow(Eigen::Array). 2013-10-20 22:02:32 +02:00
Bård Skaflestad
7b395fabbb Guard against null-pointer dereference.
This restores the check that was lost in commit 79562ca.
2013-10-03 16:30:54 +02:00
Atgeirr Flø Rasmussen
e50033e3a2 Merge pull request #39 from atgeirr/master
Fix boundary condition checking bug.
2013-10-03 07:21:54 -07:00
Atgeirr Flø Rasmussen
79562ca3cc Fix boundary condition checking bug. 2013-10-03 16:19:21 +02:00
Bård Skaflestad
8ad532c5b8 Fix warnings about "unused" parameters and typedefs.
CLang and recent GCC warn about the "typedef" 'OneColInt' in
AutoDiffHelpers.hpp being unused.  Similarly, GCC warns about unused
parameters in various place at level "-Wunused".  This change-set
either removes ('OneColInt') or suppresses those messages.
2013-09-26 19:21:45 +02:00
Bård Skaflestad
cf9d417cad Merge pull request #34 from totto82/bugfixes
Changes in gravity potential to match Eclipse and Mrst
2013-09-24 04:02:55 -07:00
Bård Skaflestad
243432142e Merge pull request #32 from atgeirr/minor_improvements
A collection of minor improvements
2013-09-24 01:31:15 -07:00
Tor Harald Sandve
34cc4f7da0 1. The geo_.z() is now called directly instead of first converted to ADB
vector
2. Added some whitespaces fro readability
2013-09-24 09:33:33 +02:00
Atgeirr Flø Rasmussen
cc58bc3cef Fix minor issues pointed out by bska. 2013-09-23 13:02:56 +02:00
Atgeirr Flø Rasmussen
edd7e1487b Documented class FullyImplicitBlackoilSolver. 2013-09-20 14:55:43 +02:00
Atgeirr Flø Rasmussen
cb892d6a18 Documented class DerivedGeology. 2013-09-20 14:55:24 +02:00
Atgeirr Flø Rasmussen
56e50f02fd Documented BlackoilPropsAdFromDeck. 2013-09-20 14:42:12 +02:00
Atgeirr Flø Rasmussen
a10eb61b66 Require deck and remove simple source term in fully implicit sim. 2013-09-20 14:32:29 +02:00
Atgeirr Flø Rasmussen
ad78cb8713 Document class BlackoilPropsAd. 2013-09-20 14:31:57 +02:00
Tor Harald Sandve
5dcc4aab3a Added an option to write well reports to a .mat file 2013-09-19 15:43:11 +02:00
Tor Harald Sandve
f3d51c4a22 Compute gravity potensial using the face average as in Eclipse and Mrst 2013-09-19 15:43:11 +02:00
Atgeirr Flø Rasmussen
9337a6227b Renamed misleading adfi -> fi.
Some classes and a program were renamed since they were not fully implicit
solvers despite their names indicating it.
2013-09-19 14:52:39 +02:00