Commit Graph

610 Commits

Author SHA1 Message Date
Markus Blatt
bf281a74b8 Make symbol extractParallelGridInformationToISTL available if CpGrid is there. 2015-02-12 10:41:44 +01:00
Markus Blatt
dd63c2489f Do not reimplement null_deleter from dune-common.
Instead we use Dune::stackobject_to_shared_ptr to create a
shared_ptr that does not delete the pointer.
2015-02-12 10:41:44 +01:00
Markus Blatt
39a6e19099 Fixes compilation issues when no MPI is available. 2015-02-12 10:41:44 +01:00
Markus Blatt
11cb82e815 Correctly compute the global number of cells and pore volume. 2015-02-12 10:41:44 +01:00
Markus Blatt
70d5d18560 Prevent copying of a matrix. 2015-02-12 10:41:44 +01:00
Markus Blatt
b73f1c86fc Fixed typos in documentatio of deleter. 2015-02-12 10:41:44 +01:00
Markus Blatt
a7f1614f63 Adds copyright declarations and more documentation. 2015-02-12 10:41:44 +01:00
Markus Blatt
ff9b8d790d Added a parallel version for computing the global reductions. 2015-02-12 10:41:44 +01:00
Markus Blatt
4527ce8ffd Add access to the underlying information about the parallelization.
We need it serveral places and all of them seem to have access to
NewtonIterationBlackoilInterface. This makes it natural to give access
to it and prevent users from having to forward it manually at several
places in the simulator driver.
2015-02-12 10:41:43 +01:00
Markus Blatt
221565f038 Enable the use of parallel dune-istl solvers.
As with opm-core we use boost::any to provide additional
information about a parallel run. It is used to set a
ParallelISTLInformation object and and fill it with the
information obtained from a parallel Cpgrid.

Note that the simulator currently compiles sucessfully. Still,
we have to test the runs and do debugging.
2015-02-12 10:41:43 +01:00
Joakim Hove
02b682ea52 Merge pull request #297 from qilicun/support_minpvf
support MINPVF.
2015-02-12 09:34:35 +01:00
Liu Ming
3ddb930d1f Adapt to api changes of opm-parser. 2015-02-12 16:16:07 +08:00
Robert K
0f20e187a6 typos and minor changes. 2015-02-11 13:26:57 +01:00
Robert K
61144a73af Vector --> Container since we also read/write strings. 2015-02-11 13:18:07 +01:00
Robert K
2520aab0a1 added warning when restore file couldn't be opened. 2015-02-11 13:18:07 +01:00
Robert K
c6400fd30a SimulatorFullyImplicitBlackoilOutput: warn when end of file was reached. 2015-02-11 13:18:07 +01:00
Robert K
a834e55f5a BlackoilOutputWriter: added support for backup and restore.
This first implementation is mainly to support faster debugging.
2015-02-11 13:18:07 +01:00
Robert K
0323624e3e convergenceReduction: remove warning. 2015-02-10 13:08:16 +01:00
Liu Ming
6cd0c47b94 support MINPVF. 2015-02-09 11:27:10 +08:00
Robert K
2068b7ea16 Revision of black oil output. Put everything into a class following the OutputWriter
interface.
2015-02-05 14:39:47 +01:00
Tor Harald Sandve
2f32afd36d Hardcode bhp limit for WCONHIST/RESV to 1 atm.
TODO: Allow WELTARG to change the bhp limit
2015-02-05 09:41:37 +01:00
Andreas Lauser
ff09e87787 add the glue code required for temperature dependent viscosity 2015-02-03 15:27:38 +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
60c0f30388 Use const where appropriate and polish code formatting. 2015-01-30 15:26:55 +01:00
Markus Blatt
9d2d942396 Prevent copying of pore volume vector. 2015-01-30 15:26:33 +01:00
Markus Blatt
267bf39e4a Use idx to access to access the phases.
In cases where not all phases are active, there no phase positions for
inactive phases and the computation may crash.
2015-01-30 15:23:12 +01:00
Atgeirr Flø Rasmussen
e6a053a392 Merge pull request #291 from blattms/fixes-issue-290
Fixes raisal of assertion in Eigen because of empty vector and matrices. Fixes #290
2015-01-30 15:12:48 +01:00
Atgeirr Flø Rasmussen
a8b715893f Merge pull request #289 from totto82/vap_der
Include derivatives of vappars
2015-01-30 15:06:16 +01:00
Atgeirr Flø Rasmussen
69c1a660a8 Merge pull request #287 from qilicun/update_pv
Use original grid cell volume to compute pore volume.
2015-01-30 15:00:34 +01:00
Markus Blatt
7c8f992a2d Fixes raisal of assertion in Eigen because of empty vector and matrices.
Apparently Eigen cannot handle empty containers during reserve correctly.
Therfore we check for the size of the vector and if it is zero simply create
empty jacobians.

Closes #290
2015-01-29 17:14:09 +01:00
Tor Harald Sandve
b57ddf1b2d Include derivatives of vappars
The derivatives of the vappars are included in the Jacobian.
To avoid inf derivatives for vap<1, the oil saturation is restricted
from below by sqrt(epsilon).
2015-01-29 13:08:52 +01:00
Liu Ming
3ab3dc555a Use original grid cell volume to compute pore volume. 2015-01-29 16:25:17 +08:00
Markus Blatt
d27e522ba4 docu fix (???) -> tempV. 2015-01-28 19:17:25 +01:00
Markus Blatt
3fcb99c27a Fixes wrong indexing for residual_.material_balance_eq.
Curiously, this indexes differently from  other stuff. It
uses the phase index and not the index within the phases
that are present.
2015-01-28 19:11:13 +01:00
Markus Blatt
cb9048d928 Only compute the sum of B for one phase and not over all phases. 2015-01-28 19:10:24 +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
2209170c15 Use the already queried active phase index directly instead of looking it up each time. 2015-01-28 16:40:23 +01:00
Markus Blatt
622c8825a9 Correctly initialize the Eigen arrays.
Previously, we just called the default constructor. Of course this does not allocate
any memory and we experienced segmentation faults. With this patch we correctly
allocate the arrays by passing the number of row and columns to the constructor.
2015-01-28 16:38:10 +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
Markus Blatt
0b81cd8f6f Reduces code duplication and reorganizes code when checking convergence.
The computations made to check the convergence are the same for all existing
phases. Therefore this patch uses loops over the phase indices when cmputing
them,

In the convergence check there are several reductions (maxCoeff(), sum())
that will trigger communication in a parallel run. This patch seperates the
reductions from the other computations. The idea is to one reduction for the
reductions that need to done as global communication is expensive.
2015-01-27 10:31:30 +01:00
Bård Skaflestad
7dfcf7b0c0 Merge pull request #282 from atgeirr/fix-wellstate-init
Fix issues in WellStateFullyImplicitBlackoil::init().
2015-01-26 23:12:12 -06:00
Atgeirr Flø Rasmussen
ce3519dadb Fix issues in init().
- Failed to set all rates to zero initially.
 - Could set out-of-bounds index if number of controls changed.
2015-01-26 16:46:51 +01:00
Robert K
3416cba92a added white space after comma. 2015-01-26 12:43:25 +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
8f29cae4cb FullyImplicitBlackoilSolver: throw Opm::NumericalProblem when one of the residuals is
NaN.
2015-01-26 12:43:25 +01:00
Tor Harald Sandve
7bf7b52dd8 Only copy perfPhaseRates if number of perforations is equal.
The number of perforations may change due to completions beeing shut.
If the number of perforations changes the perfPhaseRates are set to
equal the wellRates/(number of perforations) instead of the values from
the previous time step.
2015-01-23 14:10:10 +01:00