Commit Graph

856 Commits

Author SHA1 Message Date
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
Robert K
0af8dd0e1d remove template keyword. 2015-01-20 14:27:37 +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
Markus Blatt
dca6b436a7 Activates transmissibilities test for CpGrid without warnings.
Tests run fine for both grids.
2015-01-15 21:27:07 +01:00
Markus Blatt
57bf00cd27 [bugfix] Fixes cellCentroidCoordinate implementation.
Somehow this was never defined for CpGrid due to a copy&paste error.
2015-01-15 21:24:35 +01:00
Markus Blatt
a3acd22f24 Implement transmissibilities using the generic GridHelpers interface. 2015-01-15 21:24:35 +01:00
Atgeirr Flø Rasmussen
656e688692 Merge pull request #272 from blattms/add-facetag-access-2
Adds free function to access the face tag to UgGridHelpers.
2015-01-15 20:30:51 +01:00
Robert K
e577b3b2d9 SimulatorFullyImplicitBlackoil: only access output parameters when output is enabled. 2015-01-15 13:31:28 +01:00
Markus Blatt
4a0fbafbcc Adds free function to access the face tag to UgGridHelpers.
It uses the iterator over the cell faces to identify the face tag
in constant time.
2015-01-13 20:31:13 +01:00
Robert K
7fd9895a12 Merge remote-tracking branch 'upstream/master' into PR/EclipseWriter-revision-to-write-substeps 2015-01-12 12:35:22 +01:00
Tor Harald Sandve
088cac6801 BUGFIX: Avoid inclusion of disgas in the vapoil contribution
A temporary copy is added to avoid inclusion of dissolved gas when the
vaporized oil contribution is added in the accumulation term for the oil
phase.
2015-01-12 07:19:18 +01:00
Robert K
6b4a63787d cleanup of unused code. 2015-01-09 16:27:37 +01:00
Robert K
f11d1758c1 also write initial data when using adaptive time stepping. 2015-01-09 16:26:48 +01:00
Robert K
a9edc45a49 Added flag for matlab output. default behavior is the same as before.
Also, avoid possibly uninitialized variables.
2015-01-09 16:26:30 +01:00
Robert K
e7e63e1989 make writing of substeps work 2015-01-09 16:26:30 +01:00
Atgeirr Flø Rasmussen
7a3008db72 Merge pull request #265 from totto82/fix_stoppedwells2
Account for the renaming in the wellsManager
2015-01-09 13:16:37 +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
Tor Harald Sandve
23f1f443fc Fix the fall out in case of missing gas phase 2015-01-07 08:34:08 +01:00
Tor Harald Sandve
5572a14c20 Account for the renaming in the wellsManager
Shut is renamed to stopped in the wellsManager in order to better
reflect the name logic in the deck. This PR implements the nessesary
change in opm-autodiff
2014-12-19 07:18:36 +01:00
Tor Harald Sandve
0a0a3b2ba6 Use phase pressures for the fluid properties
There has been an inconsitancy in which pressure to use in the
evaluation of the fluid properties.
With this commit the phase pressure is used for all the evaluation of
the fluid properties.
2014-12-18 08:51:08 +01:00
Atgeirr Flø Rasmussen
e1af08c5d2 Add a generic (throwing) tpfa_loc_trans_compute_().
Without this, we may have link errors with CpGrid, since only
an UnstructuredGrid specialization was provided.
2014-12-17 10:47:16 +01:00
Atgeirr Flø Rasmussen
1348658507 Merge pull request #249 from totto82/locTrans
Compute half transmissibilities based on local coordinate system
2014-12-17 00:20:11 +01:00
Atgeirr Flø Rasmussen
28af900f0b Merge pull request #250 from dr-robertk/PR/performance-avoid-zero-matrix-entries
Further performance improvement by avoiding zeros in matrix-matrix product.
2014-12-16 14:12:14 +01:00
Tor Harald Sandve
25a4bb5fbe Add contribution from region multipliers
The multiplier contribution from the getRegionMultiplier is added to the
face multipliers. The getRegionMultiplier method is called with the cell
index on both side of the face in order to return the correct region
multiplier across faults.
2014-12-10 11:46:49 +01:00
Tor Harald Sandve
6ae7f460ff Implement code style comments 2014-12-10 07:34:56 +01:00
Tor Harald Sandve
02724b7f7a Implement comments for PR#249
1) Add the possibility for the user to chose between local and global
coordinate permeability in the transmissibility calculations.
2) Trow for CpGrid
3) Add default for switch
2014-12-10 07:29:05 +01:00
Tor Harald Sandve
b11534b137 Compute half transmissibilities based on local coordinate system
hTrans(cellFaceIdx) = K(cellNo,j) * sum( C(:,i) .* N(:,j), 2) /
sum(C.*C, 2),
Only for diagonal tensors, off-diagonal permeability values are ignored
without warning
2014-12-10 07:29:05 +01:00
Atgeirr Flø Rasmussen
2bfb928c14 Merge pull request #247 from andlaus/RateConverter_remove_averageTemperature
RateConverter: remove the unused averageTemperature() method
2014-12-08 11:01:09 +01:00
Robert K
5287c54c1d fix parameter order for SeqILUn. 2014-12-05 15:03:59 +01:00
Robert K
8fecf98f37 [cleanup] remove commented code. 2014-12-05 14:50:55 +01:00
Robert K
230447bea0 [cleanup] I revert the sort call to QuickSort again since it's faster on my machine. 2014-12-05 14:48:16 +01:00
Robert K
9a2a95c6eb This commits allows for flexible choice of either ILU(0) or ILU(n) where n is a
dynamical parameter given in the parameter file. The default is 0 (as before).
In addition the relaxation parameter has been added to the parameter with the
default preserving the state from before.
Also, the default parameter for use_amg and use_bicgstab in the constructor of
CPRPrecondition have been removed.
2014-12-05 14:03:58 +01:00
Atgeirr Flø Rasmussen
cda742ab0e Redo commit 6f55c862 after rebasing. 2014-12-05 13:10:33 +01:00
Atgeirr Flø Rasmussen
5b6765f9d8 Use fastSparseProduct() in place of Eigen's product. 2014-12-05 13:09:46 +01:00
Atgeirr Flø Rasmussen
c43b9f4a22 Use fastSparseProduct(), do not use hijacked Eigen header. 2014-12-05 13:09:46 +01:00
Atgeirr Flø Rasmussen
e8b3524ffa Add Robert Kloefkorn's fast sparse product implementation. 2014-12-05 13:08:30 +01:00
Robert K
6f55c862ce move Index query into if. 2014-12-04 17:55:29 +01:00
Robert K
cbfb4f0489 remove typename. 2014-12-04 14:01:06 +01:00
Robert K
855c278197 cleanup 2014-12-04 12:46:46 +01:00
Robert K
5583585063 Merge branch 'PR/performance-avoid-zero-matrix-entries' of ssh://github.com/dr-robertk/opm-autodiff into PR/performance-avoid-zero-matrix-entries
Conflicts:
	opm/autodiff/ConservativeSparseSparseProduct.h
2014-12-03 15:50:41 +01:00
Robert K
0495aaae8f if one of the matrices involved does not contain nonZeros, we can leave the product
routine.

Conflicts:
	opm/autodiff/ConservativeSparseSparseProduct.h
2014-12-03 15:49:26 +01:00
Robert K
21a9a7c446 avoid multiplication with empty matrices. 2014-12-03 15:48:43 +01:00
Andreas Lauser
1b22d3ab6b RateConverter: add missing call to averageTemperature()
thanks to [at] bska for noticing this!
2014-12-02 15:56:17 +01:00
Robert K
54feee5987 avoid the multiplication with zero matrix entries. 2014-12-02 14:57:00 +01:00
Robert K
054d4f4dcb include vector to make compile on proprietary systems. 2014-12-02 14:15:17 +01:00
Robert K
efe8ee79f9 added collapseJacs method. 2014-12-02 12:39:21 +01:00
Robert K
2ac6a211b2 use correct types of SparseMatrices. 2014-12-02 12:39:21 +01:00
Robert K
a266e98bac added some comment about sort. 2014-12-02 12:39:21 +01:00
Robert K
c51a794cac overloaded ConservativeSparseSparseProduct to speed up matrix-matrix multiplication. 2014-12-02 12:39:17 +01:00
Robert K
3f821f1d5f overloaded ConservativeSparseSparseProduct to speed up matrix-matrix multiplication. 2014-12-02 10:40:48 +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
Robert K
9cffb51543 [bugfix] use SparseLU when UMFPack was not found. 2014-11-19 11:22:57 +01:00
Atgeirr Flø Rasmussen
933cfaf666 Improve performance of CPR preconditioner.
This restores the performance to approximately the level it had before
the change to support non-diagonal well jacobians, for SPE9. All changes
are to the eliminateVariable() method.
 - Explicitly compute and apply the inverse.
 - Change loop ordering to apply inverse only num_eq - 1 times, instead
   of (numeq - 1)^2.
 - Use UmfPackLU instead of SparseLU.
2014-11-13 16:56:11 +01:00
Tor Harald Sandve
19605a7826 BUGFIX. Currect scale of the mass balance residual
The mass balance residual is now currectly scaled with the time
increment divided by the sum of the pore volumes. Not the opposite.
2014-11-13 11:12:52 +01:00
Bård Skaflestad
e4ad38ec31 Merge pull request #231 from atgeirr/modify-convergence-output
Improve convergence output.
2014-11-12 22:43:47 +01:00
Atgeirr Flø Rasmussen
5dcccaf568 Fix convergence output header (again). 2014-11-12 21:37:51 +01:00
Atgeirr Flø Rasmussen
e5aef85295 Merge pull request #230 from totto82/fixSchur
Solve sub matrix systems in the Schur complement
2014-11-12 14:25:12 +01:00
Atgeirr Flø Rasmussen
f17660cc37 Further output refinement. 2014-11-12 11:18:35 +01:00
Atgeirr Flø Rasmussen
7f2c649496 Fix: change a CNVO to CNVW in header printout. 2014-11-12 10:29:27 +01:00
Atgeirr Flø Rasmussen
4270d51683 Improve convergence output.
- Add CNV{W,O,G} to output.
 - Make output a bit tighter.
 - Avoid printing extra newline and header for each iteration.
2014-11-12 10:23:12 +01:00
Tor Harald Sandve
12b8e9f061 Adressing comments in the PR
1. The right hand side is solved only once
2. The solver is constructed directly with the matrix
3. const is added where it was missing
4. More commennts is added
5. Variable names are changed for clarification
2014-11-12 09:11:16 +01:00
Atgeirr Flø Rasmussen
2a032dec71 Merge pull request #228 from totto82/partial_copy2
Use well to name mapping when copying the old well state to the new
2014-11-11 20:06:09 +01:00
Tor Harald Sandve
b614aa5f90 Adressing comments in the PR
The following comments has been adressed
1. An array is used in stead of pair
2. is not empty is used instead of size>0 to check if the well has been
initialized before
3. const_iterator is used instead of iterator
4. partial copy is removed
5. WellMapType is no longer mutable
2014-11-11 07:33:15 +01:00
Tor Harald Sandve
425aa6a00b Output the scaled mass balance residuals
The mass balance residuals are multiplied by the porevolume divided by
time
2014-11-10 13:37:34 +01:00
Tor Harald Sandve
ab7472b64c Change the maximum number of linear iteration
If we need more than 150 linear iterations, it's probably something
wrong, and we may be better of by restarting with smaller time-steps.
TODO: make it possible for the user to specify this number.
2014-11-10 12:17:36 +01:00
Tor Harald Sandve
6c4d62d7fd Solve submatrix system in the Schur complement
The non-diagonal elements in the sub-matrices in the Schur complement is
no longer ignored. Instead of assuming the matrix do be diagonal, and
compute the invert of the sub-matrix, small linear systems are solved
using superLU.

Tested on SPE3 and Norne. (With this fix a slightly modified norne runs
until 3292 days)
2014-11-10 10:26:12 +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
b4a7b6157b Use well to name mapping when copying the old well state to the new
With the introduction of shut wells the same ordering in the well states
can no longer be assumed. The well names is instead used to map the old
well state to the new. Also the partial_copying is moved into the
initialization.

Tested on SPE1, SPE3, SPE9 and Norne. (Do not change the SPEs and is
nessesary for the Norne)
2014-11-10 08:47:42 +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
Tor Harald Sandve
2e77d429ad do not keep oil/gas saturated if privious sg/so is sufficient large 2014-11-05 13:01:07 +01:00
Tor Harald Sandve
662a2faf76 Move the update of rs and rv after the phase transitions
The old rs and rv values are used in the phase transitions calculations.
The update of rs and rv to the state is therefore moved after the phase
transitions in order for the code to use the old values.
2014-11-05 12:35:32 +01:00
Robert K
05608a6145 stick to previous method of parameter extraction. grouping is not what we wanted here. 2014-10-22 15:29:20 +02:00
Robert K
2a7f951e25 provide default for parameter group. 2014-10-22 15:00:10 +02:00
Robert Kloefkorn
937555bb3b use group for timestep parameters. 2014-10-20 15:18:14 +02:00
Robert Kloefkorn
e68c58fb59 added linear to docu. 2014-10-20 14:47:45 +02:00
Robert Kloefkorn
42e4043c18 remove unused variable. 2014-10-20 14:47:33 +02:00
Robert Kloefkorn
fb32376d8f throw exception when convergence failed, also in NewtonSolver. 2014-10-17 12:40:25 +02:00
Robert Kloefkorn
cd7b6ce7f0 remove blank at end of line. 2014-10-17 12:25:13 +02:00
Robert Kloefkorn
28bac5ebc9 Merge remote-tracking branch 'upstream/master' into timestepcontrol 2014-10-17 12:24:00 +02:00
Bård Skaflestad
55226c3b86 Merge pull request #220 from qilicun/fix_phase_idx
phaseIdx in this for statement is actual active phase index, should not active once again.
2014-10-11 11:14:16 +02:00
Liu Ming
b183fdfa6d if all the phase are stagnate then stagnate will be true. 2014-10-11 13:46:24 +08:00
Liu Ming
5b28b38056 make the for statement more readable. 2014-10-10 17:01:05 +08:00
Liu Ming
66bb1fae8f phaseIdx in this for statement is actual active phase index, should not
active once again.
2014-10-10 16:21:29 +08:00
Robert Kloefkorn
c9859f6293 Merge remote-tracking branch 'upstream/master' into timestepcontrol 2014-10-09 15:45:43 +02:00
Robert Kloefkorn
9f58ad5476 bugfix, Mismatched free() / delete / delete [] in DuneMatrix due to use of new instead
of the matrix internal allocators.

This fix also avoid the copying of the BCRSMatrix by providing a contructor that creates
the DuneMatrix for a given Eigen SparseMatrix.
2014-10-09 14:06:02 +02:00
Robert Kloefkorn
ed75a02ac0 Merge remote-tracking branch 'upstream/master' 2014-10-09 14:03:42 +02:00
Robert Kloefkorn
62cefb3a3e print warning when off-diagonal element is found in Schur complement instead of OPM_THROW. 2014-10-07 10:00:38 +02:00
Robert K
c2e6b368ae revert Schur fix. 2014-10-06 15:59:01 +02:00
Robert K
a8c0f7df92 apply changes made in opm-core. 2014-10-06 15:53:17 +02:00
Robert K
c42eeffdeb remove unused output 2014-10-06 14:27:55 +02:00
Robert K
d4802121d3 moved the utility classes to opm-core. 2014-10-06 13:59:21 +02:00
Robert K
faf191b9f1 Merge remote-tracking branch 'upstream/master' into timestepcontrol 2014-10-06 13:58:54 +02:00
Bård Skaflestad
9124b6f56b Don't use 'typename' in non-template context
This fixes the build on GCC 4.4.

Pointy hat: @bska
2014-10-06 12:33:08 +02:00
Bård Skaflestad
9b10f7827b Merge pull request #210 from atgeirr/dune-matrix-hack
Add a horrible hack: DuneMatrix class.
2014-10-06 11:43:05 +02:00
Atgeirr Flø Rasmussen
304e0a7bfc Remove unneeded template argument. 2014-10-06 11:08:44 +02:00
Atgeirr Flø Rasmussen
0186d95d0b Fix usage of result from computePressures(). 2014-10-06 10:55:53 +02:00
Atgeirr Flø Rasmussen
328477e521 Merge pull request #208 from qilicun/fvf_phase_pressure
use phase pressure to compute FVF.
2014-10-06 09:08:45 +02:00
Robert K
2295718f59 enabled solver restart again. 2014-10-03 16:01:59 +02:00
Robert K
9e9ef0155c moved TimeStepControl to Simulator::run and make it work again. 2014-10-03 14:31:57 +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
d3bc836536 make sub stepping a parameter. 2014-10-01 16:36:38 +02:00
Robert K
2602ae7baf enable substepping. 2014-10-01 15:45:27 +02:00
Robert K
f535761a17 only warn when non-diagonal block is found. 2014-10-01 15:45:11 +02:00
Robert K
d03f9411b6 first attempt to implement a time step control. 2014-10-01 13:50:08 +02:00
Robert K
ce996c2a6c intialialize parameter with given param. 2014-10-01 13:04:23 +02:00
Robert K
21593cf7eb only initialize solver parameters once to avoid default parameter output. 2014-10-01 12:57:17 +02:00
Robert K
739be5a873 revert to upstream/master. 2014-10-01 12:54:30 +02:00
Robert K
23a12421a8 revert changes. 2014-10-01 12:50:46 +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
31197e268f Remove unused code. 2014-09-30 10:12:10 +02:00
Atgeirr Flø Rasmussen
e256be267c Compile fix for Dune 2.2.
Some BCRSMatrix members are new in 2.3.
2014-09-30 09:57:45 +02:00
Atgeirr Flø Rasmussen
1602fce6b9 Add DuneMatrix class.
This is a hack to get a more efficient constructor for dune-istl
matrices from Eigen matrices.
2014-09-26 15:03:59 +02:00
Atgeirr Flø Rasmussen
6c7061096a Improve performance of subset() and superset().
Using a different construction method for the sparse matrix
used makes the methods a little faster. There is probably
still room for improvement by refactoring to avoid the
sparse matrix products.
2014-09-25 11:38:48 +02:00
Liu Ming
5657d32884 use phase pressure to compute FVF. 2014-09-25 14:34:04 +08:00
Atgeirr Flø Rasmussen
5d59a97972 Add parameters controlling amg usage in cpr preconditioner.
New parameters are:
 - cpr_use_amg      (default false) if true, use AMG preconditioner for elliptic part
 - cpr_use_bicgstab (default true)  if true, use BiCGStab (else use CG) for elliptic part
2014-09-22 10:10:11 +02:00
Atgeirr Flø Rasmussen
25c9b36d4f Use new location of warning suppression header. 2014-09-20 10:39:34 +02:00
Atgeirr Flø Rasmussen
fe7e408e46 Merge pull request #204 from bska/fix-oob-pix
Fix out-of-bounds indexing into PVT function table
2014-09-20 08:45:26 +02:00
Joakim Hove
2a9f6e8d35 Merge pull request #203 from andlaus/table_improvements
dapt the the table related API changes of opm-parser
2014-09-19 15:27:35 +02:00
Andreas Lauser
0f436e12c9 adapt the the table related API changes of opm-parser 2014-09-18 16:49:29 +02:00
Robert Kloefkorn
f299b5f5d0 apply nitpicks comments and avoid delete. 2014-09-18 15:11:50 +02:00
Robert Kloefkorn
f4129742a5 Merge remote-tracking branch 'upstream/master' 2014-09-18 14:56:50 +02:00
Bård Skaflestad
a0567cc887 Fix out-of-bounds indexing into PVT function table
The 'props_' table of PVT functions has one entry for each active
phase.  Fix four instances of indexing into the table using the
canonical rather than active phase indices.

This is necessary, but not sufficient, to run two-phase problems
without a "dummy" third phase.
2014-09-18 00:19:35 +02:00
Tor Harald Sandve
bde173a1d3 Add comments and change order for readability. 2014-09-10 14:31:51 +02:00
Tor Harald Sandve
bbf6d56000 Calculate oil saturation from changes in water and gas saturation
First the change in oil saturation is calculated from changes in water
and oil saturation. Then oil saturation is updated based on this change
instead of just fixed to 1-sw-sg. With this change the oil saturation is
less sensitive towards numerical errors that may cause very small oil
saturations. Witch again may cause the simulator to think that the gas
phase is saturation with vaporized oil when it is not.
2014-09-10 14:19:34 +02:00
Robert Kloefkorn
d46fbe6728 enabled DUNE-ISTL::AMG and DUNE-ISTL::CGSolver.
The default is the same as before, i.e. DUNE-ISTL::ILU0 and DUNE-ISTL::BiCGSolver
for solving the elliptic problem.
2014-09-04 17:06:00 +02:00
Atgeirr Flø Rasmussen
65ce6b4d22 Merge pull request #196 from totto82/bugfix_thpress
Apply threshold pressure for all dp
2014-09-04 15:26:19 +02:00
Atgeirr Flø Rasmussen
e597bbeca6 Merge pull request #193 from blattms/fix-176
Makes distinction between functions more clear. (#176)
2014-09-04 08:37:33 +02:00
Tor Harald Sandve
024fe9c7b6 Apply threshold pressure for all dp
The threshold pressure is applied for all dp.
The sign of the threshold pressure is given by the sign of the dp.
2014-09-03 11:05:14 +02:00
Tor Harald Sandve
e4dc5c28b3 Add output of RS and RV to outputStateMatlab 2014-09-02 15:08:22 +02:00
Bård Skaflestad
d0b677920a Merge pull request #190 from atgeirr/threshold-pressure
Threshold pressure
2014-08-29 09:14:24 +02:00
Markus Blatt
7127101c1c Makes distinction between functions more clear.
Currently, there are two abstract interface for the grids. One that
usually returns pods and arrays of them that also can be used by C
and is used also in opm-core, and one that returns Eigen datastructures
 needed within opm-autodiff.

This commit adds a postfix ToEigen to those functions (faceCells, and
cellCentroidsZ) one could imagine to also return pods and arrays of them.
This should at least resolve the confusion about the two faceCells functions.

The next step will be issue #192
Fixes #176
2014-08-28 14:44:13 +02:00
Atgeirr Flø Rasmussen
971e01fdd7 Suppress warnings of various kinds. 2014-08-27 19:56:13 +02:00
Atgeirr Flø Rasmussen
a48ab0188a Fix bug: exactly the wrong potentials were nullified. 2014-08-27 18:23:11 +02:00
Atgeirr Flø Rasmussen
efbf42120b Resize array before assigning elements. 2014-08-27 18:23:10 +02:00
Atgeirr Flø Rasmussen
3fdfeec10c Pass dummy threshold pressures through simulator to solver. 2014-08-27 18:23:10 +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
dc9ce967a2 Remove files added by mistake. 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
102881bff8 Merge pull request #185 from totto82/fix_updateState
Use default primary variable (Sg) for cells almost full of water
2014-08-26 22:35:16 +02:00
Bård Skaflestad
53e6bfcd3d Merge pull request #187 from osae/satFunc-eclState
Provide eclipse state to saturation property init.
2014-08-25 13:56:14 +02:00
Bård Skaflestad
077b01b767 Merge pull request #188 from OPM/support-resv
Support RESV controls
2014-08-25 13:54:30 +02:00
osae
98afdc7fc2 Provide eclipse state to saturation property init. 2014-08-22 15:30:05 +02:00
Atgeirr Flø Rasmussen
735feef0ab Avoid unintended switch fall-through.
Added break statements to all cases, for consistency.
2014-08-19 14:15:50 +02:00
Atgeirr Flø Rasmussen
3ae39f74e5 Delete unneeded typedef after merge. 2014-08-19 14:15:08 +02:00
Atgeirr Flø Rasmussen
7c866f6a7d Fix wrongly merged comments. 2014-08-19 13:27:42 +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
Tor Harald Sandve
6ae3212341 Use default primary variable (Sg) for cells almost full of water 2014-08-18 12:28:25 +02:00
Tor Harald Sandve
7e297dfaf9 Output rs and rv
The Rs and Rv values for each timestep are written to files
2014-08-18 08:51:14 +02:00
Atgeirr Flø Rasmussen
b1db55cbe8 Merge pull request #183 from atgeirr/fix-output
Fix output statements in SimulatorFullyImplicitBlackoil::run().
2014-08-15 14:19:48 +02:00
Atgeirr Flø Rasmussen
5f9841eacc Fix output statements in run().
This fixes the following bugs:
 - No longer overwrite the matlab-output files each step.
 - Create output also for the initial state.
 - Change filenames of matlab-output by one (initial state is 000.txt,
   final state is NNN.txt and not (NNN-1).txt for total of NNN steps).
 - Eclipse binary output matches eclipse output (includes the same
   steps including initial state) for the same case.

Also added several comments outlining the parts of the run() function.
2014-08-14 16:07:58 +02:00
Atgeirr Flø Rasmussen
69697adb04 Fix saturation-change bug in updateState(). 2014-08-14 14:21:33 +02:00
Atgeirr Flø Rasmussen
cb2522314d Improve exception message, add (disabled) debugging helpers. 2014-08-14 14:20:43 +02:00
Atgeirr Flø Rasmussen
d8a7165ccb Throw if elliptic solve fails. 2014-08-14 14:19:55 +02:00
Atgeirr Flø Rasmussen
11cd1061d1 Handle increasing numbers of active wells during simulation.
This uses partialCopy() to transfer the previous wells' data
to the new well state object.
2014-08-13 15:56:36 +02:00
Atgeirr Flø Rasmussen
43c00773db Add partialCopy() method for transferring well states.
Also add numWells() and numPhases() helpers.
2014-08-13 15:55:50 +02:00
Atgeirr Flø Rasmussen
ebac36ddfc Merge branch 'master' into restructure-sim
Conflicts:
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-13 00:02:42 +02:00
osae
6eea5e22a1 Update of hysteresis model is now performed prior
to each time step, thus also capturing the initial state.
2014-08-12 19:53:38 +02:00
osae
8e679382dd Fixing some syntax. 2014-08-12 19:48:48 +02:00
osae
ca046987a7 Guard against "too small" max saturation.
This parameter might well be user configurable ...
2014-08-12 19:42:30 +02:00
osae
64231809f5 Bugfix, correcting incomplete merge. 2014-08-12 19:36:25 +02:00
Atgeirr Flø Rasmussen
80b0921ce3 Use generic WellsManager constructor.
Also fix minor whitespace issues.
2014-08-12 12:54:16 +02:00
Atgeirr Flø Rasmussen
2aff3e3750 Fix template argument of solver class. 2014-08-12 12:26:26 +02:00
Atgeirr Flø Rasmussen
b85ba1bcc0 Clean up files and streams for timing output.
Total time will be written to walltime.txt, and single step times to
step_timing.txt (changed suffix from param to txt). This did not work
properly before this fix (step_timing file was overwritten each step).
2014-08-12 09:28:28 +02:00
Atgeirr Flø Rasmussen
120e9d02d4 Remove unused pore volume calculations. 2014-08-11 15:06:45 +02:00
Atgeirr Flø Rasmussen
d170de43cb Merge remote-tracking branch 'GitPaean/New_BLACKOIL_SIMULATOR' into restructure-sim
Conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-11 14:01:54 +02:00
osae
3ff807edc4 Revert "Re-introduced tempoary fix for singular matrix."
Seems not to be needed any more ...
This reverts commit bb12bdd1fd.
2014-08-08 16:10:03 +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
osae
bb12bdd1fd Re-introduced tempoary fix for singular matrix. 2014-08-08 12:44:55 +02:00
Bård Skaflestad
a3bc595a91 Aesthetics: Turn if-else into switch()
This commit replaces an if-else-based query of the primaryVariable_
with the equivalent switch() statement for uniformity with the rest
of the implementation.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
0f663dfe9f Implement RESV control mode for producers
This commit introduces support for the RESV control mode of
prediction (WCONPROD) and history-matching (WCONHIST) alike.  The
implementation uses class SurfaceToReservoirVoidage<> to compute
coefficients that convert component rates at surface conditions
(i.e., the primary degrees of freedom in the well residual) to phase
rates at reservoir condition.  The resulting coefficients can be
entered directly into system matrix of the linearised residual.

Note: We abuse the "distr" mechanism of struct WellControls to store
the conversion coefficients.  This may require refactorisation and
clarification at a later stage.  In the meantime, it allows for
transparent assembly of well equations--irrespective of surface- or
reservoir (voidage) rates.

Note: We do not yet support injectors controlled by total reservoir
voidage rate--either in history-matching (WCONINJH) or
prediction-scenario capacity.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
23520be41a RESV: Prepare for dynamic rate distribution calculation
This commit changes the API of class SimulatorFullyImplicitBlackoil<>
in order to support wells controlled by (total) reservoir voidage
volume rates.  Specifically, we switch to holding a mutable Wells
object (backed by a std::shared_ptr<>) in class Impl rather than a
reference to a WellsManager.  This allows dynamically updating rate
distributions and targets of individual well controls.  That, in
turn, is a prerequisite to supporting ECL-style "RESV" control
modes--be it in prediction or history matching capacity.

While in the process of API changes, also prepare for the second
stage of "WCONHIST/RESV" support: Accept a ScheduleConstPtr that
holds the input deck's notion of the history matching vs. prediction
controls.  We need to distinguish the two in order to support the
exact semantics of "WCONHIST/RESV".

Update SimFIBO<> clients accordingly.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
91567a9857 Remove long-disabled parameter setup code
This was copy-pasted into the class at its inception (a94f1921) and
never used thereafter.  If we need it we can bring it back in
modified form at a later stage.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
1e7967aeb1 Prune unused header
The column-extraction feature was not used in this module.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
82fc769922 RESV: Add facility for surface-to-reservoir rate conversion
This commit adds a simple facility for converting component rates at
surface conditions to voidage rates at reservoir conditions.  It is
intentionally limited in scope and meant to be employed only in the
context of class FullyImplicitBlackoilSolver<> or something very
similar.  In particular, class SurfaceToReservoirVoidage<> assumes
that it will be used to compute conversion coefficients for
component rates to voidage rates, and that those coefficients will
typically be entered into the coefficient matrix of a linearised
residual.

Add a trivial test just to demonstrate the setup and calling
process.  This is not a feature or correctness test.
2014-08-08 11:40:50 +02:00
Bård Skaflestad
252fdc3720 Time loop: Remove unused variable 2014-08-08 11:40:50 +02:00
Bård Skaflestad
5f7adfa341 Time loop: Remove control mode switching
The solver (class FullyImplicitBlackoilSolver<>) gained the ability
to do control mode switching/updating in commit 4a22c56 at which
point using WellsManager::conditionsMet() ceased to be useful.  This
is a preparatory step towards adding support for RESV-type control
modes.

If we need this type of behaviour in the Simulator*, we can bring it
back (in modified form) at a later time.
2014-08-08 11:40:50 +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
Kai Bao
2ac5146cfc Adding ErrorMacros.hpp to GeoProps.hpp
#include <opm/core/utility/ErrorMacros.hpp>
2014-07-29 11:40:52 +02:00
Andreas Lauser
e07ef16a45 implement pore volume and transmissibility multipliers
this means that the NTG, MULTPV and MULT[XYZ]-? keywords are now
supported.

Actually FAULTS and MULTFAULT are supported too, but that's abstracted
away by opm-parser's TransMult class. (Kudos to [at]joakim-hove for
implementing this.)
2014-07-28 11:30:13 +02:00
Kai Bao
eb3445e6a1 Finishing compliation. 2014-07-27 17:31:00 +02:00
Kai Bao
1e8d5e65b7 Finishing changing. Testing Later 2014-07-25 19:13:23 +02:00
Kai Bao
013e4e452a Merge remote-tracking branch 'upstream/master' into New_BLACKOIL_SIMULATOR 2014-07-25 15:56:52 +02:00
Kai Bao
8da842d1f3 Commit for saving. 2014-07-24 17:06:43 +02:00
Andreas Lauser
63eaecf246 DerivedGeology: pass the EclipseState object to its constructor
this is required to implement pore volume and permeability multipliers
as discussed with [at]bska and [at]joakim-hove.

Note that this implies that the DerivedGeology class can't be
instantiated anymore if there is no EclipseState object. Thus all code
paths and tests that don't load a deck are removed by this patch. If
this is undesireable, there are two options: First, don't require
EclipseState for DerivedGeology which would imply to make the about 10
required multiplier functions part of the
BlackoilPropertiesAdInterface, or second, one can copy-and-paste the
DerivedGeology class as it was before this patch, derive from a newly
introduced DerivedGeologyInterface and pass DerivedGeologyInterface
objects to the simulator. IMHO, the second solution would be a bit
better but it would involve substantial overhead to implement and to
maintain it.

Anyway, in the mean time simulators cannot be instantiated without
decks.
2014-07-24 16:37:38 +02:00
Andreas Lauser
543d8d75b6 pass the DerivedGeology to the simulators
this was decided to be a good idea by [at]bska. (If I interpreted him
correctly, obviously.)
2014-07-24 16:37:38 +02:00
Atgeirr Flø Rasmussen
1faf5da05b Added test to ensure active gas phase. 2014-07-23 11:41:06 +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
Atgeirr Flø Rasmussen
cc4504c405 Merge pull request #159 from bska/fix-gpot
Fix one-sided gravity potential calculation
2014-07-07 15:36:41 +02:00
Bård Skaflestad
1257c03d26 Fix one-sided gravity potential calculation
Commit 5112b8a misinterpreted the role of index 'i' and, as a result,
installed code that would only define one-sided gravity potentials of
the first cell (roughly)--albeit eventually using the geometry of the
last active cell.

This commit restores the original, intended behaviour.
2014-07-03 00:27:39 +02:00
Bård Skaflestad
a5d3017062 assemble: Fix out-of-bounds indexing
The 'material_balance_eq' is indexed by active, not canonical, phase
indices.  Replace 'Oil' and 'Gas' with the appropriate 'phase_pos'
values.
2014-07-03 00:27:18 +02:00
Bård Skaflestad
78b87b8857 variableState: Don't form objects when references suffice
There's no need to form new objects, especially for the 'xvar', when
there are existing objects to which read-only references can be
bound.
2014-07-03 00:27:17 +02:00
Bård Skaflestad
eccc5c9694 variableState: Use pre-computed list of "all cells"
Class FullyImplicitBlackoilSolver<Grid> already features a list of
"all" cells, built at object construction time.  There's no need to
re-compute that list on every call to variableState() (when Gas is
active).
2014-07-03 00:27:17 +02:00
Bård Skaflestad
f69530a7d4 variableState: Defer r{s,v}Sat calculation
Quantities rsSat and rvSat are not needed unless we have an active
Gas phase.  Don't calculate them until we know that they are
actually needed.
2014-07-03 00:27:17 +02:00
Bård Skaflestad
35d883319b variableState: Don't reference non-existing variable
The "xvar" exists only if Gas is active.  Therefore, we cannot
extract that variable from "vars" unless we know that Gas is an
active phase.  Failing to do so would wrongfully increment 'nextvar'
whence the final BHP variable would be an out-of-bounds access.
2014-07-03 00:27:17 +02:00
Bård Skaflestad
13d3a42448 Fix phase property references
Methods 'computeRelperm()' and 'computePressures()' *always* return
a three-element vector of phase properties.  We must therefore
translate to canonical phase indices before indexing into the
results.
2014-07-03 00:27:17 +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
Bård Skaflestad
aecfa3ed50 Merge pull request #150 from andlaus/enable_property_modifiers
glue in support for property modifiers
2014-06-11 22:46:36 +02:00
Andreas Lauser
776f5e9005 explicitly include <array>
it _seems_ like this causes the build  failures of the RHEL 5 build at
statoil: http://opm-project.org/CDash/viewBuildError.php?buildid=18933
2014-06-09 13:22:40 +02:00
Andreas Lauser
0219f83563 glue in support for property modifiers
i.e. reading the grid properties from EclipseState instead of from the
raw deck. This requires that all deck files exhibit a GRID and a
SCHEDULE section or else EclipseState will throw in the constructor.
2014-06-09 12:36:46 +02:00
Bård Skaflestad
c834177897 Merge pull request #131 from andlaus/implement_multi-region_pvt_tables
implement multi-region PVT
2014-06-06 14:38:35 +02:00
Kai Bao
51fae6ca70 Removing some comments. 2014-05-23 14:55:54 +02:00
Kai Bao
f516bd6ce3 Removing some comments and debugging output. 2014-05-23 14:53:54 +02:00
Kai Bao
c96637ab96 Changing detectNewtonOscillations() a little bit.
Changing detectNewtonOscillations() a little bit for ease in reading.
2014-05-23 14:50:49 +02:00
Kai Bao
508a0c11ef Adding some comments before calling stablizeNewton. 2014-05-23 14:25:58 +02:00
Kai Bao
bb22f3572d Adding size function in LinearisedBlackoilResidual.
int sizeNonLinear() const;
To compute the size of the non-linear system.
2014-05-23 13:40:44 +02:00
Kai Bao
9fe98514c0 Changing the location of & when defining reference. 2014-05-23 11:39:26 +02:00
Kai Bao
1da24f3c3c Changing the way of string comparison to ==. 2014-05-23 10:07:02 +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
f2518b6647 Removing the output of the size of system. 2014-05-22 22:15:55 +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
fdb201d365 Restoring maxit to be 15. 2014-05-22 21:59:27 +02:00
Kai Bao
8a905535ce Removing some spaces. 2014-05-22 21:58:44 +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
95cd33185b Correcting the determination of stagnate. 2014-05-22 20:25:58 +02:00
Kai Bao
f597e2117d Rewriting the detection function with for loop.
It is more automatic while it remains to change to some more flexible
form.
2014-05-22 16:07:17 +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
Bård Skaflestad
f0d908d104 Merge pull request #140 from atgeirr/cpr-preconditioning
Cpr preconditioner
2014-05-21 15:36:12 +02:00
Atgeirr Flø Rasmussen
f48ee55c0d Change error message. 2014-05-21 13:15:42 +02:00
Atgeirr Flø Rasmussen
e9ab64fd18 Remove usage of DUNE_UNUSED_PARAMETER. 2014-05-21 13:14:02 +02:00
Kai Bao
2733b5459e Removing the space before (). 2014-05-21 11:02:04 +02:00
Kai Bao
252048b30a Removing one blank line. 2014-05-21 11:00:24 +02:00
Kai Bao
0178bd1b8c Removing the bool paramters calling stablizeNewton. 2014-05-21 10:47:55 +02:00
Kai Bao
5277fa389d Removing two input paramters in stablizeNewton().
Removing the bool input parameters osicllate and stagnate from the
stablizeNewton(). Basically, the value omega will decide if the
relaxation will be applied.
2014-05-21 10:44:20 +02:00
Kai Bao
578abe3b78 Merge branch 'master' into oscillation_treatment_withlimitedupdate
Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.hpp
2014-05-21 10:12:49 +02:00
Atgeirr Flø Rasmussen
3e956a9659 Merge pull request #139 from GitPaean/limited_variable_update
Limited variable update
2014-05-20 21:52:22 +02:00
Kai Bao
827cd7e8e4 Removing the param.has() if condition. 2014-05-20 19:53:39 +02:00
Kai Bao
44a3dbd732 Finishing the workflow. 2014-05-20 19:52:15 +02:00
Atgeirr Flø Rasmussen
fec6154d81 Remove unused data members and parameters. 2014-05-20 15:23:04 +02:00
Kai Bao
63c53096cd Using param.getDefault() instead of param.get().
And also remove the space in dsMax (), drsMaxRel (), dpMaxRel ().
2014-05-20 15:17:37 +02:00
Kai Bao
0e244a4845 Commit to save changes. 2014-05-20 15:00:49 +02:00
Atgeirr Flø Rasmussen
023a46fa12 Put creation of elliptic system in separate function. 2014-05-20 14:24:24 +02:00
Atgeirr Flø Rasmussen
b823324e59 Cite CPR article by Gries, Stuben et al. 2014-05-20 14:23:49 +02:00
Kai Bao
9557db4c15 Merge branch 'limited_variable_update' of github.com:GitPaean/opm-autodiff into oscillation_treatment_withlimitedupdate
Conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver.hpp
2014-05-20 13:45:13 +02:00
Kai Bao
c617623eb1 Adding debugging output. 2014-05-20 13:31:13 +02:00
Kai Bao
79916078f2 Changing the defalut value for the paramters.
Add reordering the intialization order to removing the reordered
warning.
2014-05-20 13:05:11 +02:00
Kai Bao
8dcae05a7b Revising the function stablizeNewton().
For the SOR type relaxation, we need the dx from the previous iteration.
2014-05-20 11:25:04 +02:00
Kai Bao
5b6c325a32 Finish the first stablizeNewton(). 2014-05-19 18:41:38 +02:00
Kai Bao
ab8636b57d Add function detectNewtonOscillations. 2014-05-19 15:43:56 +02:00
Kai Bao
341f727467 Add the residuals() function. 2014-05-19 13:06:44 +02:00
Atgeirr Flø Rasmussen
307cd6ef33 Add convergence check, local whitespace cleanup. 2014-05-19 11:21:23 +02:00
Atgeirr Flø Rasmussen
ec03062b51 Remove unused code. 2014-05-19 11:13:17 +02:00
Kai Bao
a969025c5e Add a residuals function prototype. 2014-05-19 10:41:23 +02:00
Kai Bao
2b31ab6111 Removing one blank line. 2014-05-16 18:27:23 +02:00