Commit Graph

111 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
8f91296974 Eliminate extra computePressure() calls.
The function still gets called more than necessary,
but that is due to its use in variableState() and that
constantState() calls variableState().
2015-03-09 10:56:35 +01:00
Robert Kloefkorn
05260e9582 added number of linear and newton iterations to output. 2015-03-05 10:40:20 +01:00
Robert Kloefkorn
e5eec509d2 make terminal output a parameter to avoid output. 2015-03-05 10:40:20 +01:00
Robert Kloefkorn
06396b4b82 FullyImplicitBlackoilSolver: added tolerance for well convergence as parameter. 2015-03-05 10:40:15 +01:00
Robert Kloefkorn
96bda6a453 FullImplicitBlackOil and CPR: allow for dynamically changed tolerances from parameter
file. Default is as before.
2015-03-03 13:42:03 +01:00
Markus Blatt
fd10c97e46 Fxied typo wether -> whether. 2015-02-20 16:03:08 +01:00
Markus Blatt
bcc3ab7d95 Rename variable verbosity_ to terminal_output_. 2015-02-20 16:02:06 +01:00
Markus Blatt
d35d301a4b Print status output only on rank 0 for parallel runs. 2015-02-20 11:35:47 +01:00
Atgeirr Flø Rasmussen
3d8209abe4 Merge pull request #283 from blattms/restructure-newton-convergence-for-parallelization
Restructure newton convergence for parallelization
2015-01-30 15:38:25 +01:00
Markus Blatt
d27e522ba4 docu fix (???) -> tempV. 2015-01-28 19:17:25 +01:00
Markus Blatt
f5ed31d128 Fixes rotated function parameters during function call.
There was a mixup in the order of the function parameters, both in
the declaration and in the actual function call. This commit resolves this.
2015-01-28 19:08:48 +01:00
Markus Blatt
0b18e6a15f Improve documentation of convergenceReductions. 2015-01-28 16:54:28 +01:00
Markus Blatt
20b6fb0853 Fixes typo: residuum -> residual 2015-01-27 14:05:38 +01:00
Markus Blatt
f820e1d441 Moves calculation of the total pore volume into convergenceReduction.
It is a global reduction in the parallel case and should therefore be
computed together with the other ones.
2015-01-27 12:49:55 +01:00
Markus Blatt
5e94e2ab08 Renames residuals() to computeResidualNorms()
It took me quite some time to understand the computations done
e.g. during the detection of oscillations, where the stuff returned
by residuals() is used as a vector of doubles. It turns out that
residuals() actually returns the norm of the residuals. To clarify this
we rename residuals() to computeResidualNorms() and residuals to
residual_norms. Having my dare devil day today, I even try to document the
method. (This documented method might feel kind of lonely between the others,
now;). Hopefully this saves others some time.
2015-01-27 12:04:46 +01:00
Markus Blatt
ddc2b820a7 Factors out the reduction part into a separate function.
Theses reductions are global and will require a different
behaviour in the parallel case.
2015-01-27 10:31:30 +01:00
Robert K
894983fc7b FullyImplicitBlackoilSolver: add max_residual_allowed parameter to restart solver when
residual is to large.
2015-01-26 12:43:25 +01:00
Robert K
4b551421be FullyImplicitBlackoilSolver: fix dangerous usage of assert. 2015-01-20 12:55:46 +01:00
Robert K
463e4bc5e3 BlockOilSimulator: allow to run without wells (mainly for testing and debugging). 2015-01-20 11:38:46 +01:00
Markus Blatt
cb43fc5e94 Unifies the phase indices with the ones in opm-core.
The initial definition of the phase indices seems to be in
opm/core/props/BlackoilPhases.hpp. Nevertheless there were
several redefinitions of the same or similar enums (either
Aqua, Liquid, and Vapor, or Water, Oil, and Gas). Surprisingly
most often these definitions did not use the original values.
This is bound to break if there is a change upstream.

This patch limits the definition to one place in opm-autodiff,
namely opm/autodiff/BlackoilPropsAdInterface.hpp. To avoid
downstream confusion we define both the Water and Aqua triplets.
In addition we define the maximum number of phases to use at compile
time.
2015-01-19 20:18:14 +01:00
Tor Harald Sandve
eefac9584e Add on overload of computePressure() that accepts explicit saturations
The overload is used direcly in variableState() to clean the code as
well as in the orignal computePressures(state) implementation.
2015-01-07 12:46:12 +01:00
Andreas Lauser
4e3a69cc90 PVT properties: allow them to be temperature dependent
Note that this patch does not introduce any real temperature
dependence but only changes the APIs for the viscosity and for the
density related methods. Note that I also don't like the fact that
this requires so many changes to so many files, but with the current
design of the property classes I cannot see a way to avoid this...
2014-12-01 20:06:02 +01:00
Tor Harald Sandve
9380ce71a2 Output the total mass balance residual
The residual output is changed from max residual to
total mass balance residual. In this way the output
resemble what is actually used as convergence criteria.
2014-11-10 09:29:13 +01:00
Tor Harald Sandve
0ff3322786 Use the same relative threshold for drs and drv update
The drs_max_rel param is renamed to dr_max_rel and used to restrict both
drs and drv.
2014-11-05 13:03:00 +01:00
Robert Kloefkorn
e68c58fb59 added linear to docu. 2014-10-20 14:47:45 +02:00
Robert K
a723a01f72 some revision, time step control is now completly in the Simulator run method.
The solver simply returns a number of iterations.
2014-10-03 14:18:31 +02:00
Robert K
fcf6cd5f90 implemented the PID controler, seems to work fine. More testing needed. 2014-10-02 14:04:59 +02:00
Robert K
d03f9411b6 first attempt to implement a time step control. 2014-10-01 13:50:08 +02:00
Robert K
2a33063966 added solver parameters to void reading in every step. 2014-10-01 12:48:41 +02:00
Robert K
b337873e7f First version of time step control. Not really fully functioning yet. 2014-09-30 15:53:43 +02:00
Atgeirr Flø Rasmussen
4af03dcdb8 Change setThresholdPressures() interface.
Now it takes a std::vector instead of an Eigen::Array, more importantly
it expects one element per face, not interior face. The mapping now takes
place in setThresholdPressures().
2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
dfc726bceb Rename variable.
Changed threshold_pressures_by_face_ -> threshold_pressures_by_interior_face_.
2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
c5de6635c5 Add setThresholdPressures() method. 2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
f7fa3488cb Add applyThresholdPressures() method and usage.
Note that this commit does not introduce any way to set
use_threshold_pressure to true, so the new code is not run.
2014-08-27 18:20:36 +02:00
Atgeirr Flø Rasmussen
e644c51750 Merge branch 'master' into support-resv
Conflicts:
	examples/sim_fibo_ad.cpp
	examples/sim_fibo_ad_cp.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.hpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-19 09:53:20 +02:00
osae
4ce61b7c7c Support for kw VAPPARS.
When this kw is active, BlackoilPropsAdFromDeck now modifies rvSat
and rsSat curves cell-wise by a power of (sat_oil_cell /
sat_oil_cell_historical_max).   Currently, the associated jacobians do
not reflect terms of type d/d_sat_oil, but code for doing this is given
as comments to BlackoilPropsAdFromDeck::applyVap(ADB& r, ...).
2014-08-08 13:17:33 +02:00
Bård Skaflestad
88bb04c72f Fix contextual misprint: face -> phase 2014-08-08 11:40:50 +02:00
Atgeirr Flø Rasmussen
cc5fa94e46 Remove unused grav_ member and function used to compute it.
This is a relic of the way we originally handled gravity. The member
remained after the change, and is now a major time-consumption sink
due to the unfortunate fact that it is computed every time step
(unnecessary), and because the gravityOperator() function (now removed)
was very unperformant after changing to use the faceCells() function.
2014-08-05 11:27:00 +02:00
Atgeirr Flø Rasmussen
92f20c6040 Update phase condition vector from primary variables.
This is necessary as an interim measure, since the phase condition vectors are
still used in property calculations.
2014-07-17 14:34:07 +02:00
Tor Harald Sandve
02ce468c01 Support Oil/Water case
The updatePrimalVariableFromState is now only called when
the gas phase is active.
2014-06-13 14:44:21 +02:00
Tor Harald Sandve
3e3b39df07 Introduce primaryVariable_ and use it to switch primary variables 2014-06-13 14:31:40 +02:00
Tor Harald Sandve
8a600747fa Read DISGAS and VAPOIL from deck and pass them to the simulator 2014-06-13 14:29:52 +02:00
Kai Bao
9fe98514c0 Changing the location of & when defining reference. 2014-05-23 11:39:26 +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
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
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
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