Commit Graph
100 Commits
Author SHA1 Message Date
Kai Bao b8e0cda83a putting update of water injection mobility to a separate function
computeInjectionMobility() in BlackoilPolymerModel
2016-12-16 08:56:35 +01:00
Kai Bao 4f3ce37b8e correcting one not helpful comments.
which results from the re-organization of the code.
2016-12-16 08:56:35 +01:00
Kai Bao 894bffd1b3 handling the injection mobility when mixing paramter not 1
The treatment with shear-thinning is not well tested yet.
2016-12-16 08:56:35 +01:00
Kai Bao 4f8ae4be73 putting the re-calculating wellflux inside if plyshlog
it only happens when shear effect calculation is needed. No point to
re-calculate the well flux when no shear thinning needed.
2016-12-16 08:56:35 +01:00
Kai Bao 9307a41fd5 using the polymer concentration in the polymer transport
since we already introduce the polymer viscosity there, we should apply
the water and polymer viscosity ratio again.
2016-12-16 08:56:35 +01:00
Kai Bao 8148105ae3 Revert "changing polymer production concentration to be the grid block concnetration." 2016-12-05 15:05:56 +01:00
Kai Bao 81a73650de polymer production concentration to be the grid block concnetration.
To be more consistent with the injection well.
2016-12-05 12:52:21 +01:00
Kai Bao 69d5ec94c9 adding localWellsActive() checking for two MSW functions
updatePerfPhaseRatesAndPressures() and addWellFluxEq()
2016-11-25 13:45:38 +01:00
Kai Bao e57da11fbd making the updateWellControls an iterative process for StandardWells
Seperating the updateWellStateWithTarget from updateWellControls, will
update the controls when any of the control constraints gets broken.

The reason is that the updated well control can still break some of
other the contstaints. We need to choose one control to make sure all the
constraints are honored.
2016-11-24 11:27:59 +01:00
Kai Bao 0ab04b04cd checking whethter group control is active
When applying group control related functions.
2016-11-17 16:01:59 +01:00
Kai Bao d38a6eb459 adapting the change of the function findWellNode(). 2016-11-16 14:28:35 +01:00
Kai Bao d06acaa4b5 adapting to the change in opm-core 2016-11-16 14:06:20 +01:00
Kai Bao f85da3768e cleaning up and updating MultisegmentWells 2016-11-16 13:27:30 +01:00
Kai Bao 6bbc726bc2 checking and outputing the residuals for the well equations.
Before, the tolerance for the norm of the residual of the well control
equations was 1bar, which makes no sense for rate control.
For some rate controls, we are not able to update the well state with
the target rates, we have to enforce the convergence throught the
residual checking.
2016-11-16 13:26:54 +01:00
Kai Bao 002439c5b1 WIP in testing new group update strtegy.
results with min_iter=2 works okay, while not min_iter=1.

It means the iteration stop at the wrong situation.
2016-11-16 13:26:28 +01:00
Kai Bao 753da2dd36 putting the VREP control update after updateWellControls
which makes it almost should be put inside updateWellControls function.

it does not change the result.
2016-11-16 13:25:35 +01:00
Kai Bao a5aaf9b802 easier way to update whether the well under group control
potentially can be more consistent way.
It does not change the result.
2016-11-16 13:25:35 +01:00
Kai Bao 8a1e1e010a using findWellNode() to avoid dynamic_casting
form WellGroupInterface* to WellNode*.
2016-11-16 13:25:35 +01:00
Kai Bao 337693cc65 removing the wrongly wrapped std::vector
adding more comments for future reference.
2016-11-16 13:25:35 +01:00
Kai Bao 9150c217f2 making the VREP enforcement into a small method.
in BlackoilModelBase.
2016-11-16 13:25:35 +01:00
Kai Bao 9a95697fde updating some comments. 2016-11-16 13:25:35 +01:00
Kai Bao 75e0ff0018 Trying always to give a valid control when initing WellState.
Without the fix, when we specify GRUP control for WCONINJE, the control
mode will be initialized to be -1.
2016-11-16 13:25:35 +01:00
Kai Bao 8474ff2895 fixing all the simulators that call solveWellEq.
Not all the group control functionalities working for allt the
simulators. Some need to be fixed later.
2016-11-16 13:25:35 +01:00
Kai Bao 0f3e34bb25 cleaning up some comments. 2016-11-16 13:25:35 +01:00
Kai Bao cb897b07d0 Adding VREP injection support.
As part of it, adding a function to calculate reservoir voidage rate.
2016-11-16 13:25:35 +01:00
Kai Bao a15513e546 adding a rate converter to the BlackoilModelBase 2016-11-16 13:25:35 +01:00
Kai Bao e65d24aa16 removing outdated log ouptut code about control switching
Which results from the rebasing process.
2016-11-16 13:25:35 +01:00
Kai Bao e13cf827b5 applying the efficiency factors to the multi-segment wells. 2016-11-16 13:25:35 +01:00
Kai Bao 623ef3850e applying the efficiency factor to flow 2016-11-16 13:25:35 +01:00
Kai Bao aca587b76b calculate efficiency factor in StandardWells
which will be used to scale the perforation flow rate when entering the
matrial balance equations.
2016-11-16 13:25:35 +01:00
Kai Bao ac67a10316 removing one updateWellControls from solveWellEq
not recalling why adding it in the first place.

And correcting some comments for clarification.
2016-11-16 13:25:35 +01:00
Kai Bao e049508eec adding the group control related part to MultisegmentWells
while looks like the well potentials part may not work with multisegment
wells.

Will check later.
2016-11-16 13:25:35 +01:00
Kai Bao 0df52603d7 fixing the interface of wellModel constructors
to make all the simulators compile.
2016-11-16 13:25:35 +01:00
Kai Bao 26b16c1050 cleaning up the output and adding more comments. 2016-11-16 13:25:11 +01:00
Kai Bao d992161b82 output cleaning up and add more comment. 2016-11-16 13:24:39 +01:00
Kai Bao e323f15d2f putting more things in the prototyping test. 2016-11-16 13:23:55 +01:00
Kai Bao e0dd9bfabd keeping putting group control in. 2016-11-16 13:22:52 +01:00
Kai Bao f62d40fc05 adding a pointer to the well_collection of WellsManger
might change to reference later. Using pointer now is trying to keep the
WellModel constant.
2016-11-16 13:22:52 +01:00
Kai Bao 1c34af4dea a few warning fixing. 2016-11-16 13:17:35 +01:00
Kai Bao ce8498c4d7 checking the residual for the well control equations. 2016-11-11 13:26:22 +01:00
Kai Bao 2f5045bb85 removing some white spaces in MissingFeatures 2016-07-13 09:16:18 +02:00
Kai Bao ab31ab470b removing two supported keywords from MissingFeatures. 2016-07-12 16:59:45 +02:00
Kai Bao 399298be21 using mapentry_t instead of iterator. 2016-07-05 15:28:02 +02:00
Kai Bao a8c2626e5a fixing comments.
no functional change.
2016-07-05 13:02:28 +02:00
Kai Bao 4dad47f90d adding warning tags to all the WECON related warnings. 2016-07-05 13:02:28 +02:00
Kai Bao aed2760b31 updating the path for the multi-segment wells test.
due to the renaming of the folder name in opm-data.
2016-07-05 13:02:28 +02:00
Kai Bao ddec62288a fixing the warning messages. 2016-07-05 13:02:28 +02:00
Kai Bao 6a70450422 wrtiting state to report at the end of each time step
insead of writing in the begining of each time step.
2016-07-05 13:02:28 +02:00
Kai Bao 8e52e71993 changing shutted to shut. 2016-07-05 13:02:28 +02:00
Kai Bao b2524a7dc3 making a forwarded updateListEconLimited in SimulatorBase.
and some changes to make the code compile for all the simulators.
2016-07-05 13:02:28 +02:00
Kai Bao 98a6495abc makeing wellModel public for flow_polymer and flow_solvent. 2016-07-05 13:02:27 +02:00
Kai Bao cc957a77fe some well will go to stopped list and infomation output. 2016-07-05 13:02:27 +02:00
Kai Bao e817719d48 When last connection is closed, the well is shut done. 2016-07-05 13:02:27 +02:00
Kai Bao 109b55f61c using OpmLog to give warning. 2016-07-05 13:02:27 +02:00
Kai Bao 41b9fca434 implementing checkRatioEconLimits 2016-07-05 13:02:27 +02:00
Kai Bao 9220a2bbaf refactoring updateListEconLimited based on new functions. 2016-07-05 13:02:27 +02:00
Kai Bao dd59762c0b adding checkMaxWaterCutLimit to StandardWells. 2016-07-05 13:02:27 +02:00
Kai Bao c77aa5af09 adding checkRateEconLimited to StandardWells
to check rate related to economic limits.
2016-07-05 13:02:27 +02:00
Kai Bao d48399ac3a WIP for handling the water cut ecnomic limit 2016-07-05 13:02:27 +02:00
Kai Bao a019460268 warning if requesting opening a new well after closing a well
it is not supported yet.
2016-07-05 13:02:27 +02:00
Kai Bao e903690107 giving a warning if the WECON request ending running
It is not supported yet to stop the whole program after a well is closed
due to economic limits.
2016-07-05 13:02:27 +02:00
Kai Bao 53490270e1 adding updateListEconLimited to StandardWells 2016-07-05 13:02:27 +02:00
Kai Bao 18fa442721 adapted to the interface change of WellsManager
At the moment, for the ParallelDebugOutput, we put a dummy
dyanmic_list_econ_limited, not sure how it will the parallel running.

The basic problem is that when initialzing the globalWellState_, what
will happen if they can not find state information for a well in the Wells*.

If some defaulted values are used, then no big problem here.
2016-07-05 13:02:27 +02:00
Kai Bao a1cc880ad7 only calculating repesentative radius when having PLYSHLOG. 2016-06-28 15:50:50 +08:00
Kai Bao 9dbb908b04 adding a test for flow_multisegment
it is a 2D case with H__ pressure drop specification, and it takes about
2 second to run.
2016-06-28 15:50:50 +08:00
Kai Bao d2c822e37a only calculating repesentative radius when having PLYSHLOG. 2016-06-24 10:00:06 +02:00
Kai Bao d27524c3a7 adding a test for flow_multisegment
it is a 2D case with H__ pressure drop specification, and it takes about
2 second to run.
2016-06-21 14:43:11 +02:00
Kai Bao 0ebd25f66a fixing the compilation error due to rebasing. 2016-05-23 15:42:05 +02:00
Kai Bao d2d9bd8a80 moving depth difference calcualtion to init() for MultisegmentWells
instead of recalculating them for each iterations.
2016-05-23 15:11:52 +02:00
Kai Bao c2bdaa1b92 fixing the calculation of volumeRatio.
due to the wrong use of parenthesis.
2016-05-23 15:11:52 +02:00
Kai Bao 879f127ae8 moving variableStateExtractWellsVars() from models to Well Models. 2016-05-23 15:11:52 +02:00
Kai Bao fbe7143f54 using WellModel functions in BlackoilPolymerModel.
reducing some repeated code.
2016-05-23 15:11:52 +02:00
Kai Bao 846ff890de refactoring the interface of computeWellPotentials()
to reduce the cost of makeConstantState when not calculating the
potentials.
2016-05-23 15:11:52 +02:00
Kai Bao 19a256dce0 some pure cleaning up. 2016-05-23 15:11:52 +02:00
Kai Bao f2b7f2a56c moving numWellVars from models to Wells. 2016-05-23 15:11:52 +02:00
Kai Bao b3d1c0eabc initializing the pointers to be nullptr in the Wells classes 2016-05-23 15:11:52 +02:00
Kai Bao 4527034f29 removing variableStateInitials() from BlackoilMultiSegmentModel
which is not helpful anymore.
2016-05-23 15:11:52 +02:00
Kai Bao a102e934ac removing baseSolveWellEq from BlackoilMultiSegmentModel
to solve the different interfaces of computeWellConnectionPressures for
StandardWells and MultisegmentWells, a function
computeWellConnectionPressures was introduced for the models.
2016-05-23 15:11:52 +02:00
Kai Bao 01328559e2 removing the updateWellState from the models. 2016-05-23 15:11:52 +02:00
Kai Bao 4e8099057e small cleaning up for BlackoilMultiSegmentModel_impl 2016-05-23 15:11:51 +02:00
Kai Bao fcd541a1c1 removing the rebundant ms_wells_ in BlackoilMultiSegmentModel 2016-05-23 15:11:51 +02:00
Kai Bao 184bff95ba using well_model_ to represent the WellModel member 2016-05-23 15:11:51 +02:00
Kai Bao 06775ee02c Make BlackoilMultisegmentModel constructured from MultisegmentWells
Instead of being coustructed based StandardWells and having a
MultisegmentWells member.
2016-05-23 15:11:51 +02:00
Kai Bao 4254b48b57 unifying interface of a few functions of Wells classes
updateWellControls()
updateWellState()
addWellControlEq()

The change of function computeWellConnectionPressures() is not done
completely. Should find a solution later.
2016-05-23 15:11:51 +02:00
Kai Bao be165a26e0 adding a few more members to the Wells classes.
gravity, vfp_properties_ and depth_.

to further simplify the interfaces.
2016-05-23 15:11:51 +02:00
Kai Bao 50385013fe adding variableWellStateInitials to MultisegmentWells 2016-05-23 15:11:51 +02:00
Kai Bao 7886e4b9d2 adding computeWellConnectionPressures to MultisegmentWells 2016-05-23 15:11:51 +02:00
Kai Bao b4f4878901 fixing the errors from rebasing. 2016-05-23 15:11:51 +02:00
Kai Bao 60fb868727 adding updatePerfPhaseRatesAndPressures to MultisegmentWells 2016-05-23 15:11:51 +02:00
Kai Bao 508de4dc37 adding extractWellPerfProperties to MultisegmentWells
removing extractWellPerfProperties in all the model classes.
2016-05-23 15:11:51 +02:00
Kai Bao 718ba5470b adding const Wells* wells_ for MultisegmentWells
for interface refactoring.
At the moment, both wells_ and wells_multisegment_ contain all the
wells.
2016-05-23 15:11:51 +02:00
Kai Bao 4180fea951 refactoring the construcor of MultisegmentWells
MultisegmentWells is initialized with Wells structure.
2016-05-23 15:11:51 +02:00
Kai Bao 7d0d50eb53 changing reservoir related members to pointers for MultisegmentWells 2016-05-23 15:11:51 +02:00
Kai Bao 66cd66e61b change reservoir related members to be pointers in StandardWells
to fullfil the requirement of interface design.
2016-05-23 15:11:51 +02:00
Kai Bao 89a8f133fd adding variableWellStateIndices to MultisegmentWells
to remove the using of stdWells() in BlackoilMultiSegmentModel
The code is copied from StandardWells, better solution need to be
exploited.
2016-05-23 15:11:50 +02:00
Kai Bao a8742a9348 introduce perforation densities and pressdiffs to MultisegmentWells
to reduce dependence on StandardWells.
2016-05-23 15:11:50 +02:00
Kai Bao 25fbd20acf adding a few member variables for MultisegmentWells
and reduce the number of parameters of the related functions by using
the new introduced member variables.
2016-05-23 15:11:50 +02:00
Kai Bao bd03eff5a5 making two functions in StandardWells protected.
computePropertiesForWellConnectionPressures
computeWellConnectionDensitesPressures
2016-05-23 15:11:50 +02:00
Kai Bao 1f2442fe80 reducing paramter list for more functions in StandardWells
computeWellFlux
updateWellState
updateWellControls
addWellControlEq
computeWellPotentials
2016-05-23 15:11:50 +02:00
Kai Bao a35c3e7468 removing parameters for extractWellPerfProperties 2016-05-23 15:11:50 +02:00