Commit Graph
100 Commits
Author SHA1 Message Date
Kai Bao 5a5c1bfcd3 addressing review comments from PR 1622 2018-11-14 12:45:41 +01:00
Kai Bao afcdbcf202 detecting the NAN and INF values during VFP calculation
and give warning messages when they happen, since they can be the
culprits of the termination of simulation later.

For ADB related, I did not find a good way to do the detection, so there
is no warning message given.
2018-11-14 11:35:44 +01:00
Kai Bao 32b00b61f8 updating the thp value if VFP table is valid
through function isVFPActive().
2018-11-14 11:27:00 +01:00
Kai Bao 0d1a4b2d13 adding function isVFPActive() for WellInterface
Even the well does not have a THP target/constraint, but if it is
specified with a valid VFP table, we are supposed to update the thp
value for output purposes.
2018-11-14 11:27:00 +01:00
Kai Bao 8f56634b69 fixing different well number between Wells and Well_containers
when the solveWellEq did not get converged.
2018-11-13 20:01:38 +01:00
Kai Bao 2ed2c20f12 Merge pull request #1623 from atgeirr/use-convergencereport-gather
Use gatherConvergenceReport() in BlackoilWellModel.
2018-11-13 15:16:34 +01:00
Kai Bao eb86404934 addressing review comments of PR #1615 2018-11-12 15:20:23 +01:00
Kai Bao 5e736fc4c7 decoupe the rate and fraction relaxation
the relaxation for these two have different goals and problems, it is
wise to decuple them.
2018-11-09 14:28:44 +01:00
Kai Bao 179a505b83 addressing the review comments #1597 2018-11-09 14:28:44 +01:00
Kai Bao 7e17a60c58 relaxation to avoid overshoot during Newton update in StandardWell
Solvent model is not handled yet.
2018-11-09 14:28:44 +01:00
Kai Bao 73f8ed912e detecting whether some well control events happens to a well
When there is some events happen to a well, we use the control mode
 from the DECK, and update the WellState based on the new control model.
 Otherwise, we can use the control mode from the previous well state,
 and keep the values from the previous well state as an intial guess.
2018-11-09 13:36:49 +01:00
Kai Bao 0c24a30459 some cleaning up
no funtionality changes.
2018-10-31 15:32:50 +01:00
Kai Bao 702c6e7b1f refactoring the wellTesting in BlackoilWellModel
so that we can do well test for different closing reason.
2018-10-31 15:00:21 +01:00
Kai Bao 4d58b9c34d splitting updateWellTestState to be two functions
one testing physical limits, and the other testing economic limits.
2018-10-31 12:54:39 +01:00
Kai Bao 6e2334dcad removing the extra ; after BEGIN_PROPERTIES and END_PROPERTIES
which causes compilation warning.
2018-09-18 13:35:27 +02:00
Kai Bao a154d89197 Merge pull request #1501 from totto82/wtest
Implement WTEST support
2018-07-04 10:45:27 +02:00
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