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