Commit Graph
100 Commits
Author SHA1 Message Date
Kai Bao 1b587fa118 removing some whitespaces 2018-06-05 09:24:50 +02:00
Kai Bao b3e3b625b6 Merge pull request #1371 from kel85uk/task/#3/BlackoilAquiferModel
[WIP] Task/#1372/blackoil aquifer model
2018-06-04 22:02:26 +02:00
Kai Bao 477740ca38 introducing aquiferActive() to reduce of the overhead
for the models that does not include a aquifer model.
2018-05-31 09:51:54 +02:00
Kai Bao cb9fea6ba0 changing GTotal to WQTotal for StandardWell 2018-05-30 15:44:05 +02:00
Kai Bao 53ab8bc132 lowering the singular limit for the invertMatrix function.
to avoid failure due to singularity detection.
2018-05-29 09:36:55 +02:00
Kai Bao 97c51a7d02 addressing some comments
and handle the situation that a non-zero target specified for a
non-producing phases. We set the rates to zero for this case.
2018-05-28 16:05:02 +02:00
Kai Bao ce849fe18e adding a fix for the zero rate control for StandardWell
to avoid under-determined problem.
2018-05-28 16:05:02 +02:00
Kai Bao efbac8a628 adding function updateThp() to StandardWell
hopefully, to improve the readability.
2018-05-28 16:05:02 +02:00
Kai Bao f3f096dbbb recovering some unecessary changes.
PR #1477 introduced different ways to improve the WellState initialization.
Basically, the WellState initialization will be something challenging to
handle along with the improvement of the well model.
2018-05-28 16:05:02 +02:00
Kai Bao 18917b81f4 adding THP well control equation 2018-05-28 16:05:02 +02:00
Kai Bao b2bace449e adding function processFractions()
to reduce the length of the function updatePrimaryVariablesNewton()
2018-05-28 16:05:02 +02:00
Kai Bao e2e24ec355 adding the checking of tolerance of well control equation 2018-05-28 16:05:02 +02:00
Kai Bao 179a03144f more bug fixing
mainly to recover the runnign related to group control example
2018-05-28 16:05:02 +02:00
Kai Bao 1d218d2fe4 small bug fixes. 2018-05-28 16:05:02 +02:00
Kai Bao 3b70f5004f adding assembleControlEq to StandardWell
solvent model needs to be handled for the injector control.
2018-05-28 16:05:02 +02:00
Kai Bao 62947c85b9 updating updatePrimaryVariablesNewton with new primary variables. 2018-05-28 16:05:02 +02:00
Kai Bao 6066884a3d refactoring updateWellState in StandardWell to be two functions
for other use.
2018-05-28 16:05:02 +02:00
Kai Bao eb851b6580 adding BHP to the primary variables for StandardWell 2018-05-28 16:05:02 +02:00
Kai Bao 979d67e714 Merge pull request #1477 from totto82/vfp_fixes
WIP fix vfp in flow
2018-05-16 10:06:10 +02:00
Kai Bao 45023f304e Merge pull request #1465 from atgeirr/fix-ilu-serial
Make sure we (re-)throw MatrixBlockError also in the serial case.
2018-05-08 10:39:15 +02:00
Kai Bao 78cc2b8ca4 adapting to the interface change of VFP related in parser. 2018-04-20 11:29:22 +02:00
Kai Bao ed49fd1e88 adapting to the change related to VFP from the parser. 2018-04-11 09:22:52 +02:00
Kai Bao 87b3cccd7f removing WPIMULT from MissingFeatures 2018-04-03 11:11:25 +02:00
Kai Bao 7eaaae3906 removing FlowMainPolymer.hpp 2018-04-03 11:08:25 +02:00
Kai Bao 90e69b59cf silencing warning related to extra ; from BlackoilAmg 2018-03-14 12:02:07 +01:00
Kai Bao f098579e0b fixing test_multmatrixtransposed 2018-03-13 12:58:44 +01:00
Kai Bao b0edfd2f04 adding POLYMW to the injectorType determination
just to silence a warning resulting from OPM/opm-common#348.
2018-03-09 14:40:49 +01:00
Kai Bao 75e6bcefbb fixing test_transmissibilitymultipliers
due to the change of the PVTO table policy from the parser
2018-03-07 10:01:34 +01:00
Kai Bao 56caffab67 fixing comments for PR#1416 2018-02-28 10:26:54 +01:00
Kai Bao ec8dc4f534 trying to fix a problematic situation when updateWellState
for example, distr = 0 1 0, for rate control, F = 1 0 0, we will get a
zero F_target, then it is wrong to do the division with F_target.

It is okay when target = 0. When target != 0, the result is already very
wrong. Non-linear iteration can send us anywhere, not sure the best
solution for this kind of strange situation.
2018-02-28 09:47:22 +01:00
Kai Bao b71949b09e adding a test for polymer oil water 2018-02-28 08:39:38 +01:00
Kai Bao 635f6c7db2 trying to add the functionality to handle oil/water polymer 2018-02-28 08:39:38 +01:00
Kai Bao a8f560b046 addressing the comments. 2018-02-21 14:45:22 +01:00
Kai Bao 89bb589755 update the reservoir volume in WellState 2018-02-21 12:20:43 +01:00
Kai Bao abfe9d445b recoring solution gas rate and solutiion oil rate in StandardWell 2018-02-21 12:20:43 +01:00
Kai Bao f33657aabf adding a few memebers to WellStateFullyImplicitBlackoil
to get ready for populating well reservoir rates, solution gas
production rates and solution oil production rates.
2018-02-21 12:20:43 +01:00
Kai Bao efeccd8e74 fixing a test related to history mode. 2018-01-08 09:08:05 +01:00
Kai Bao 9317c1f023 removing the current argument in updateWellStateWithTarget
and some other cleaning up.
2017-11-30 17:14:29 +01:00
Kai Bao ea3cbd1fe8 removing numComponents() from WellInterface
which is dumplicated from BlackoilWellModel.
2017-11-30 16:31:48 +01:00
Kai Bao 7b61f3e692 moving polymer related to updateWaterMobilityWithPolymer
in StandardWell.

And not calculating the shear effect for the injecting wells when the
injection wells do not inject polymer.
2017-11-27 09:24:02 +01:00
Kai Bao f87e6d35db removing more legacy Multisegment Wells related. 2017-11-24 12:27:43 +01:00
Kai Bao 59722e552c making the single phase RESV injection work. 2017-11-24 11:44:53 +01:00
Kai Bao 8274fc9275 replacing BlackoilPhases:: with Oil Water Gas in well model
and also WellStateFullyImplicitBlackoil.

There are more places to do so, while it might be easier to create a
header file for this.
2017-11-16 12:08:58 +01:00
Kai Bao 89416720cb removing more HAVE_UMFAPACK related in MultisegmentWell_impl
which are left from the previous PR.
2017-11-03 14:54:32 +01:00
Kai Bao d9ed5a36b5 using looser tolerance for two failed cases related to umfpack.
24 - compareECLFiles_flow_legacy+SPE1CASE2_2P (Failed)
     36 - compareECLFiles_flow_solvent+SPE5CASE1 (Failed)
2017-11-03 13:48:49 +01:00
Kai Bao 790db957f5 giving more information when umfpack is not available.
when calling invDXDirect.
2017-11-03 10:03:03 +01:00
Kai Bao 9fde417066 checking use_multisegment_well_ first in BlackoilModelParameters 2017-10-17 13:21:02 +02:00
Kai Bao 6b00d912c3 fixing jenkins warning. 2017-10-16 19:08:12 +02:00
Kai Bao ba8eb708d1 fixing reviewing comments from PR 1279. 2017-10-16 17:01:15 +02:00
Kai Bao 4efaf64cf7 adapting to the interface change in OPM-parser#1145. 2017-10-16 14:39:07 +02:00
Kai Bao 7054317d98 checking the results from the direct solver invDX
since I has not figure out a way to detect/catch the singularity of the
matrix with UMFPack, currently, we only check the validity of the
results to make sure inf or nan not enter other part of the simulation.

It can easiliy results in assertion failure, and causes the running to
be terminated. After all, it mostly likely is a numerical issue
generated during the non-linear iteration process.
2017-10-15 12:13:42 +02:00
Kai Bao d407e516ce throw for unsupported situations and fix warnings
for MultisegmentWell.
2017-10-13 10:16:44 +02:00
Kai Bao 7a29c5098f changing the strategy of the updateWellState in MultisegmentWell
only applying relaxation during the inner iteration.
2017-10-12 16:46:25 +02:00
Kai Bao 86269e0de2 cleaning up.
no functional change.
2017-10-12 15:36:54 +02:00
Kai Bao 93b7cceaf3 removing WellStateFullyImplicitBlackoilDense as the master
it caused some problem in rebasing.
2017-10-12 15:05:45 +02:00
Kai Bao 6a4260c264 various improvement and bug fixing.
fixed one invalid memory reading of perforation_segment_depth_diffs_
in computePerfRate, which caused different results for different
running.
2017-10-12 14:10:36 +02:00
Kai Bao 1a7b5571b6 trying to add an inner well iteration to speed up convergence. 2017-10-12 14:10:24 +02:00
Kai Bao 8a19b719d6 when Reynolds number is zero, return zero friction factor
which means there is not friction pressure loss. The formualtion has
problem in handling zero-value Reynolds number.
2017-10-12 13:43:04 +02:00
Kai Bao 6366087efd using UMFPACK for the function invDX
for better robustness.

The iterative solvers require more improvement.
2017-10-12 13:43:04 +02:00
Kai Bao 78a28abf91 fixing a bug related to adding ms well during simulation.
When there is not ms well involved, all the ms well related is not
initialized. It causes problem when we want to add ms well after some
time of running.

The bug fix the running with model 2.
2017-10-12 13:43:04 +02:00
Kai Bao c3a368e58e adding two more parameters related to ms wells
to help to tune and improve the convergence.
2017-10-12 13:43:04 +02:00
Kai Bao fc64d34bc2 cleaning up some comments. 2017-10-12 13:43:04 +02:00
Kai Bao 6fb459a797 introducing tolerance_pressure_ms_wells for pressure equations
for the multisegment wells. More detailedly, we should distinguish the
rate control equations, bhp control equations and ordinary pressure
equations.
2017-10-12 13:43:04 +02:00
Kai Bao 92abdc4f23 correcting some bugs in frictional pressure loss. 2017-10-12 13:43:04 +02:00
Kai Bao f6ad3669f8 considering the two pressure difference to MultisegmentWell
while the sign of the pressure differences are not sure or well tested
yet.
2017-10-12 13:43:04 +02:00
Kai Bao aa8b1ae0f8 giving the friction pressure loss a direction. 2017-10-12 13:43:04 +02:00
Kai Bao ccc21e9dcd removing WellStateMSWell.hpp
what was designed to use as WellState for one single Multisegment well.
2017-10-12 13:39:58 +02:00
Kai Bao 8c3f45f58e fixing a few of bugs. 2017-10-12 13:39:58 +02:00
Kai Bao 4c207eb1f5 implementing computePerfCellPressDiffs
to calculate the pressure difference between perforation and perforated
grid cell.
2017-10-12 13:39:58 +02:00
Kai Bao df593cf1d2 adding the calculation of depth differences
between the perforations and their segments, and also the perforations
and perforated grid blocks.
2017-10-12 13:39:58 +02:00
Kai Bao 2b4a99edf9 handling the acceleration pressure drop
not tested yet.
2017-10-12 13:39:58 +02:00
Kai Bao 4893334567 adding function getFrictionPressureLoss()
it should be related to the flow direction, which needs some tests.
2017-10-12 13:39:58 +02:00
Kai Bao aa8ffe9386 removing the unit conversion factors in frictional formular.
since we are using the SI unit internally, they should not be needed.
2017-10-12 13:39:58 +02:00
Kai Bao 7ae5bd5187 adding the code to calculate the segment viscosities.
not tested yet.
2017-10-12 13:39:58 +02:00
Kai Bao 391abcec7f adding helper fuction to calculate frictional pressure loss
not tested yet.
2017-10-12 13:39:58 +02:00
Kai Bao f4f26395f6 fixing two compilation warning. 2017-10-12 13:39:58 +02:00
Kai Bao ad964210e5 move invDX to MSWellHelpers.hpp. 2017-10-12 13:39:58 +02:00
Kai Bao 20c21a6cb2 removing a few variables related to matrix opertaion 2017-10-12 13:39:58 +02:00
Kai Bao fc06923c50 changing StandardWellsDense to BlackoilModelEbos
for a better naming.
2017-10-12 13:39:58 +02:00
Kai Bao 6ef0c5010c adapting the change of PR 1263 2017-10-12 13:37:05 +02:00
Kai Bao dd9ad42a28 correcting the size of seg_comp_initial_ based on num_comp
for standards wells, all the three equations are mass balance
equatiions, it is safe to use numWellEq.

for MS wells, there is one extra pressure equation, it should be the
number of mass balance equations. If we do not put the polymer equation
inside the well equations, we will face dilemma soon.
2017-10-12 13:37:05 +02:00
Kai Bao 282d678622 removing flowToEbosPvIdx from MultisegmentWell
as a result from rebase.
2017-10-12 13:37:05 +02:00
Kai Bao 0dc041d46a adding a use_multisegment_well_
to determine whether we will treat mutlisegment wells with
MultisegmentWell well model. Currently, it will be faulse by default.
It might be changed to be true by default when considering the
multisegment well model is well tested.
2017-10-12 13:37:05 +02:00
Kai Bao 3255626b2e scaling the gas rates a little bit for MS well.
It can possibly benefit the StandardWell, while it is something needs a
little bit more investigation before using it.
2017-10-12 13:37:05 +02:00
Kai Bao f7e1623b7a only clearing matrix B and C when only_wells false.
to save a little calculation.
2017-10-12 13:37:05 +02:00
Kai Bao c6be20c5cb copying the segment rates and segment pressure from old well state.
It can be something rather tricky. It looks like with simple trival
initization, it is difficutl to converge. But when there is change to
the well, direct copying will not work anymore. Will we also facing
convergence problem?
2017-10-12 13:37:05 +02:00
Kai Bao 5dee45dc0a various small improvements. 2017-10-12 13:37:05 +02:00
Kai Bao a03a67c85e not checking getWellConvergence more than one times
which is a bug. Not it is moved out of the for loop.
2017-10-12 13:37:05 +02:00
Kai Bao bafe292af0 adding some comments for later implementation. 2017-10-12 13:37:05 +02:00
Kai Bao b6d324c95e implement recoverWellSolutionAndUpdateWellState
for MultisegmentWell_impl.
2017-10-12 13:37:05 +02:00
Kai Bao 596814943c bug fixing to make the hydroPrssureLoss correct. 2017-10-12 13:37:05 +02:00
Kai Bao f784cf97eb a few bug fixing for MultisegmentWell 2017-10-12 13:37:05 +02:00
Kai Bao 5ffd2bf026 correct the treatment of the pressure equation
the derivative of the inlet contribution should go to the correction
location in duneD_.
2017-10-12 13:37:05 +02:00
Kai Bao c3b4188295 making message about catching FMatrixError more specific
in BlackoilModelEbos.
2017-10-12 13:37:05 +02:00
Kai Bao 23b0deb928 a few bug fixing for MultisegmentWell 2017-10-12 13:37:05 +02:00
Kai Bao fe1f854138 adding getWellConvergence() to MultisegmentWell_impl 2017-10-12 13:37:05 +02:00
Kai Bao 1f380713e8 using function invDX to implement functions in MultisegmentWell
it compiles, while not sure how it gonna work.
2017-10-12 13:37:05 +02:00
Kai Bao ba3c7a88db adding a functin invDX to calculate D^-1 X
not sure why putting it in ISTLSolver.hpp caused linking problem.
Putting it in MultisegmentWell for now.
2017-10-12 13:37:05 +02:00
Kai Bao 6f6f3ead5e adding updateWellState for MultisegmentWell 2017-10-12 13:37:05 +02:00
Kai Bao 1adc081430 adding function processFractions() to MultisegmentWell
to handle the undershooting and overshooting of the fractions during
updateWellState.
2017-10-12 13:37:05 +02:00