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
Atgeirr Flø Rasmussen
61cccfebf8
Refactor updatState() to use numWellVars().
...
This allows us to use the base version of updateState().
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
Atgeirr Flø Rasmussen
233a275191
Made the solveWellEq() method return if it converged.
...
Also use this to avoid updating if not converged in the
multi-segment version.
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
Atgeirr Flø Rasmussen
2055c94269
Implement solveWellEq() for multisegment model.
...
Note that this initial version has only been tested on regular wells!
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
Atgeirr Flø Rasmussen
693f5c791b
Refactor computeWellFlux().
...
Now much faster, avoiding repeated use of subset() etc. by
vectorization of code.
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
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
Atgeirr Flø Rasmussen
5b43018862
Fix ms well ops implementation.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
bbf86dcd4a
Add wops_ms_ member.
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
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
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
Atgeirr Flø Rasmussen
9dea3c6b57
Fix typo in variable name.
2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
81e9c25b10
Made methods const in multi-segment model as well.
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
Atgeirr Flø Rasmussen
ba7b3e728c
Minor improvements in computeSegmentDensities().
...
Mainly improving comments, deleting unused code and moving some variable
definitions closer to where they are used.
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
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
Atgeirr Flø Rasmussen
702cd3170a
Remove unused code and fix a few warnings.
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
Atgeirr Flø Rasmussen
4dd8536afa
Make multi-segment model use Base::addWellContribution...() method.
...
Also make assemble() more similar to base version, using the
extractWellPerfProperties() member from Base.
To do this it was necessary to change the well_cells member of the
WellOps to be correct for the multi-segment wells (since they may
have different perforation order for some wells).
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
b2787e24e7
Use value() in argument to make Selector constructor compile.
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
Atgeirr Flø Rasmussen
653e55d7db
Make assemble() more similar to base version.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
e6a81fca83
Make convergence methods work for multi-segment wells.
...
The convergenceReduction() method no longer takes a number-of-wells argument,
instead it infers the number of well fluxes to check from the size of the
well_flux_eq member of the residual.
After this, a custom getConvergence() method is no longer required for the
multi-segment well model.
2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
ae512d5c83
Update location of ErrorMacros.hpp header in includes.
2015-12-01 00:06:44 +01:00