Commit Graph
100 Commits
Author SHA1 Message Date
Kai Bao 8115d918dd adding flag to wops_ms_ to indicate if MSW is involved.
to reduce some extra cost when MSW is not involved.
2016-03-09 11:20:16 +01:00
Kai Bao 5a23406d9e naming M to Matrix for better readability in WellMultiSegment 2015-12-01 10:44:05 +01:00
Kai Bao f7782c30b7 fixing compilation due to update of master. 2015-12-01 00:06:46 +01:00
Kai Bao c5252ae1ce make compilation of flow_multisegment_mpi conditional
if(DUNE_CORNERPOINT_FOUND OR dune-cornerpoint_FOUND)
2015-12-01 00:06:46 +01:00
Kai Bao 38a9dbd9ff parallel running for flow_mutlisegment
SPE9 can be run in parallel now.
2015-12-01 00:06:46 +01:00
Kai Bao 4c73f3c01c refactoring the init() of WellStateMultiSegment
to handle better when nw = 0
2015-12-01 00:06:46 +01:00
Kai Bao 0022bb8465 adding one missing #pragma line resulting from rebasing conflicts. 2015-12-01 00:06:46 +01:00
Kai Bao 8116424f6d documenting the class WellMultiSegment 2015-12-01 00:06:46 +01:00
Kai Bao bcc97b44d8 refactoring the construction of WellMultiSegment
for better readability.
2015-12-01 00:06:46 +01:00
Kai Bao c946749c73 addressing some old comments in WellMultiSegment 2015-12-01 00:06:46 +01:00
Kai Bao a684c390f5 cleaning up SimulatorFullyImplicitBlackoilMultiSegment_impl 2015-12-01 00:06:46 +01:00
Kai Bao 31061c8331 cleaning up function computeWellConnectionPressures() for ms wells. 2015-12-01 00:06:46 +01:00
Kai Bao cfa5faab4e cleaning up comments in BlackoilMultiSegmentModel_impl 2015-12-01 00:06:46 +01:00
Kai Bao f90b96abf6 removing the use of wops_ from the BlackoilModelBase in ms well
Also some cleaning up of comments in BlackoilMultiSegmentModel
2015-12-01 00:06:45 +01:00
Kai Bao df30546841 not handling SHUT wells when generating wells_multisegment
it fixed the 7th time step running for Norne.
2015-12-01 00:06:45 +01:00
Kai Bao 9114b56e9b cleaning up comments in WellMultiSegment and WellStateMultiSegment 2015-12-01 00:06:45 +01:00
Kai Bao edf3c9b08c optimizing the addWellControlEq() for ms wells. 2015-12-01 00:06:45 +01:00
Kai Bao fcd31d74ac restoring the original wellstate when solveWelleq fails. 2015-12-01 00:06:45 +01:00
Kai Bao b6ede37ca3 WIP for fixing the solveWellEq running for ms wells.
refactoring needs to be done to finish it.
2015-12-01 00:06:45 +01:00
Kai Bao 57d796ca68 not extracting the mob and b inside computeWellFlux() ms wells 2015-12-01 00:06:45 +01:00
Kai Bao 4b9064a0f8 optimizing the function computeSegmentPressuresDelta()
Further optimization is possible by introducing new variable for the
model to avoid recomputation.
2015-12-01 00:06:45 +01:00
Kai Bao 79b9039ba1 fixing computeWellFlux() to recover the mutli-segment running. 2015-12-01 00:06:45 +01:00
Kai Bao 80723fee12 adding more operators to ms well ops
p2w w2p s2w w2s
2015-12-01 00:06:45 +01:00
Kai Bao 0c28bf5a75 recovering compilation and running after merging master. 2015-12-01 00:06:45 +01:00
Kai Bao 5a0efdba30 adding comments for addWellFluxEq() 2015-12-01 00:06:45 +01:00
Kai Bao 8ae74d5a47 optimizing addWellFluxEq() based on ms well ops 2015-12-01 00:06:45 +01:00
Kai Bao 55e4206c0b adding s2s_inlets and s2s_outlets to ms well ops.
and also fix the s2p and p2s implementation.
2015-12-01 00:06:45 +01:00
Kai Bao 9ee2d92f3f recovering the compilation from the updated master branch. 2015-12-01 00:06:45 +01:00
Kai Bao c3b4088448 recovering the compilation after updating opm-parser. 2015-12-01 00:06:45 +01:00
Kai Bao c8fbb0b80d clearning up some comments and debugging output 2015-12-01 00:06:45 +01:00
Kai Bao b1fdda00af calculating the pressure difference between segments and perforations. 2015-12-01 00:06:45 +01:00
Kai Bao 31f71dd6f7 calculating the depth difference between segments and perforations 2015-12-01 00:06:45 +01:00
Kai Bao 658ad0a400 calculation of pressure difference between perofration and cells
remained to be verified.

The calculation is explicit, should be performed only once at the
begining of the time step.
2015-12-01 00:06:45 +01:00
Kai Bao f3b885dc0d removing several member variables not useful
they are related to the presure correction caclulations.
2015-12-01 00:06:45 +01:00
Kai Bao 9f218ef1a3 adding segmentDiameter() to WellMultiSegment 2015-12-01 00:06:45 +01:00
Kai Bao b9e5518b51 adding compPressureDrop() member function for WellMultiSegment 2015-12-01 00:06:45 +01:00
Kai Bao 5e64da6f8e calculating the viscosity of the fluid in segments 2015-12-01 00:06:45 +01:00
Kai Bao 93a86019af calculating the mass flow rate for the segments. 2015-12-01 00:06:45 +01:00
Kai Bao 3b3ac203d9 change the name of computeSegmentDensitiesAndCompVolumeDt
to computeSegmentFluidProperties to include calculation of more fluid mixture in the segments.
2015-12-01 00:06:45 +01:00
Kai Bao 8bde14d7ce applying the volume effects to the well flux equation.
The effects on the result are really tiny, which makes the real
verfication not easy. It did not bring anything bad for the current
working case though.
2015-12-01 00:06:45 +01:00
Kai Bao 95eb44e530 calculating the surface volume of component in segment
For convinience, we calculate and store the surface volume by dt
instead.
2015-12-01 00:06:45 +01:00
Kai Bao 847ae2ef8c adding segment volume / dt to BlackoilMultiSegmentModel
to handle the wellbore volume effects.
2015-12-01 00:06:45 +01:00
Kai Bao d5f917d1ac computing the density of segment mixture and pressure drop earlier
the density of segmetn mixture will be used in the well flux
calculation.
2015-12-01 00:06:45 +01:00
Kai Bao 6190d002dd adding the hydrostatic drop effects in segment pressure equation.
Verified with current working case.
2015-12-01 00:06:45 +01:00
Kai Bao 92c5927f30 fixing a typo bug in addWellControlEq
verified with a case with a simple horizontal multi-segment well.
2015-12-01 00:06:45 +01:00
Kai Bao 50938effc4 output the well equation residual. 2015-12-01 00:06:45 +01:00
Kai Bao a44de6bb1d changing p2s_gather to p2s mappling in well flux equation. 2015-12-01 00:06:45 +01:00
Kai Bao 19caace288 unifying the well flux equaions for multi-segment and non-segment wells
verified with non-segment wells.
2015-12-01 00:06:45 +01:00
Kai Bao 7d11b49732 re-organizing the output.
no functional change.
2015-12-01 00:06:44 +01:00
Kai Bao 885dfedc91 adding the pressure drop between segments
remains to be verfied and apply to the pressure equations for segments
2015-12-01 00:06:44 +01:00
Kai Bao b7b5672c86 deleting the old unused computeSegmentDensities()
which is a first version, whose implementation should not be used
anymore.
2015-12-01 00:06:44 +01:00
Kai Bao 617e4c1786 fixing one bug in computeSegmentDensities()
the flux rate for the producing well are negtive. NotEqualZero should
used for selector instead of GreaterZero.
2015-12-01 00:06:44 +01:00
Kai Bao f3ce4dc530 finishing computeSegmentDensities()
the results remain to be verified.
2015-12-01 00:06:44 +01:00
Kai Bao d79536b0dd adding the function computeSegmentDensities()
Not verified yet.
2015-12-01 00:06:44 +01:00
Kai Bao 433d76cd86 adding the related grid cell for each segment.
This concept can be removed in the future.
2015-12-01 00:06:44 +01:00
Kai Bao 98fe7f19c5 not trying to find outlet segment for top segment 2015-12-01 00:06:44 +01:00
Kai Bao 4854bae4cd using s2s_outlet mapping in the pressure equation. 2015-12-01 00:06:44 +01:00
Kai Bao 1b6453c6ba introducing new mapping s2s_outlet
from a segment to its outlet segment
2015-12-01 00:06:44 +01:00
Kai Bao 317cbb0af8 changing the mapping s2s_outlet to s2s_inlets
to better refect the real meaning of the mapping.
2015-12-01 00:06:44 +01:00
Kai Bao cb3f54b618 the pressure fluctuation only apply for non-segmented well.
to recover previous residual history when running with only
non-segmented wells.
2015-12-01 00:06:44 +01:00
Kai Bao be293962b6 changing the perforation pressure initialization
to make it slightly different from the pressure of the perforation cell
to avoid NaN for cqt_is.

anotehr way can be initialized them related to the bhp of the well.
some tests will be performed in the future.
2015-12-01 00:06:44 +01:00
Kai Bao cc2d40a1a8 handling aliveWells when adding control equations
to recover the SPE9 running.
2015-12-01 00:06:44 +01:00
Kai Bao 4fe0ae4a58 correcting the index of phase rate of the top segment
When handling the rate control equations.
2015-12-01 00:06:44 +01:00
Kai Bao 70e1ccb736 using the first cell of the well to initialize bhp
instead of using the the first cell of all the wells in
WellStateMultiSegment
2015-12-01 00:06:44 +01:00
Kai Bao 9b5b5198b2 update the currentControls from prevState
when initializing WellStateMultiSegment
2015-12-01 00:06:44 +01:00
Kai Bao 504dc45de2 some information output
for debugging puropose.
2015-12-01 00:06:44 +01:00
Kai Bao 2b4922a986 updating pressure and phase rates for top segments in updateWellControls 2015-12-01 00:06:44 +01:00
Kai Bao 70d6d253fe correcting bugs when initializing the WellState by copying prevState 2015-12-01 00:06:44 +01:00
Kai Bao 0a3cbe0c1e upating the segment pressure in updateWellState.
The running of the first time step is okay.
2015-12-01 00:06:44 +01:00
Kai Bao 8c522ccc34 correcting a bug in pressure initialization in WellStateMultiSegment
for the pressure of top segment and peforations.
2015-12-01 00:06:44 +01:00
Kai Bao 247ae11fc3 fixing the compilation. 2015-12-01 00:06:44 +01:00
Kai Bao d7900d4fe8 updating the pressure of perforations.
only for usual wells now.

for multisegment wells, need to solve the the pressure difference calculation
first.
2015-12-01 00:06:44 +01:00
Kai Bao 2f0818df79 adding a public member function for the top segment index. 2015-12-01 00:06:44 +01:00
Kai Bao 052b61e672 indexing the location of top segments in WellStateMultiSegment
it is better to be in the global well class if we decide to have it
later.
2015-12-01 00:06:44 +01:00
Kai Bao f7951ef018 correcting the well control equation (rate control) 2015-12-01 00:06:44 +01:00
Kai Bao cf766b5c3e fixing warnings related to mutlie segment wells. 2015-12-01 00:06:44 +01:00
Kai Bao 09f8da0324 fixing compilation and running after rebasing. 2015-12-01 00:06:44 +01:00
Kai Bao ca5dd0dca4 WIP debugging. 2015-12-01 00:06:44 +01:00
Kai Bao 0fee0059a6 outputing the well information after updateWellState
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao 3bce63ed64 correcting the bhp value when calculating connection pressure 2015-12-01 00:06:43 +01:00
Kai Bao d93b27cedd fixing the compilation due to function interface change.
outputWriter function introduced extra arguments.
2015-12-01 00:06:43 +01:00
Kai Bao 72af213835 outputing the wellMap information.
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao 5379467b4c adding temperature for WellStateMultiSegment
it is not used though
2015-12-01 00:06:43 +01:00
Kai Bao 895e04b6fa outputing all the information of the WellStateMultiSegment
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao 4feee98457 correcting the mapping matrix in WellMultiSegment
correcting the calculation of s2s_gather
2015-12-01 00:06:43 +01:00
Kai Bao 34d72a774a correcting some initialization for WellMultiSegment 2015-12-01 00:06:43 +01:00
Kai Bao 33c979b772 outputing all the information related to multisegment wells
for debugging purpose.
2015-12-01 00:06:43 +01:00
Kai Bao 709c030b10 adding public member function WellMultiSegment::inletSegments() 2015-12-01 00:06:43 +01:00
Kai Bao 3eae01de18 pure cleaning up in WellStateMultiSegment 2015-12-01 00:06:43 +01:00
Kai Bao 9526b5a9b1 WIP for addWellControlEq
P_n - P_n-1  = 0;
This is not making sense. remains to be corrected later.

It can run with NaN or too large solutions.
2015-12-01 00:06:43 +01:00
Kai Bao d8634e41e5 some commenting. 2015-12-01 00:06:43 +01:00
Kai Bao a137db6d37 using segment rates instead of well rates in addWellControlEq 2015-12-01 00:06:43 +01:00
Kai Bao 3b40a8d5b3 adding computeSegmentDensities for BlackoilMultiSegmentModel
cacluating the density of fluid mixture in segment, which is very
important for the pressure drop calculation for multi-segment wells.

This version is based on \sigma(q_s * dens_s) / \sigma(q_s * B).
More sophiscate techniques will be required to take into consideration
of the segment pressure and also the rs rv.
2015-12-01 00:06:43 +01:00
Kai Bao bfe77db26f adding p2s_average to the wellOps for WellMultiSegment
this mapping calculate the averaged perforation properties to their
related segments
2015-12-01 00:06:43 +01:00
Kai Bao 487f90ee88 small comments 2015-12-01 00:06:43 +01:00
Kai Bao 45e89c5d28 adding convergenceReduction for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao 62b6e69de8 adding updateWellState to BlackoilMultiSegmentModel
no THP treament.
2015-12-01 00:06:43 +01:00
Kai Bao f496646182 adding updateState() for BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00
Kai Bao 2e74b7cbaf WIP version for addWellControlEq()
not figuring out how to calculate the density of the mixuture.
2015-12-01 00:06:43 +01:00
Kai Bao 747a295122 adding addWellContributionToMassBalanceEq to BlackoilMultiSegmentModel 2015-12-01 00:06:43 +01:00