Commit Graph

120 Commits

Author SHA1 Message Date
Tor Harald Sandve
c076ed6485 Move Rateconverter and pvtIdx to the wellInterface 2017-11-23 08:37:30 +01:00
Tor Harald Sandve
054361d537 Make it possible to combine solvent and RESV
Compute the conversion factor for solvent using the RateConverter.hpp
2017-11-22 15:21:21 +01:00
Tor Harald Sandve
b9bc4b00cb Make the wellModel self-contained
The wellModel is now persistent over the time steps,
with an update method called every reportStep/episode.

This allows the following simplifications:

    1. move the wellState to the WellModel
    2. add a ref to the ebosSimulator to the wellModel
    3. clean up the parameters passed to the wellModel methods
    4. move RESV handling to the WellModel and the rateConverter
    5. move the econLimit update to the WellModel
2017-11-08 13:57:36 +01:00
Markus Blatt
602f3962f3 Use MatrixBlock instead of FieldMatrix for DUNE 2.5.0
3x3 matrix block inversion in FieldMatrix is numerically unstable
including version 2.5.0. Therefore the previous if clause was wrong
as it activated the use of FieldMatrix already for 2.5.0 (the version
in Debian stable). With this commit we use MatrixBlock for version 2.5.0.
2017-10-25 16:32:48 +02:00
Kai Bao
ba8eb708d1 fixing reviewing comments from PR 1279. 2017-10-16 17:01:15 +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
7b873d97c9 small improvements in StandardWell
there is not functional change.
2017-10-12 13:37:05 +02:00
Kai Bao
3e2a34239c removing two functions from WellInterface
computeWellConnectionPressures() and computeAccumWell().
They belongs to the implementation details of well models now.
2017-10-12 13:37:05 +02:00
Kai Bao
8922f3e041 adding a function calculateExplictQuantities to WellInterface
to hide some implementation details.
2017-10-12 13:37:05 +02:00
Kai Bao
47c7c54548 making the updateWellControl to WellInterface
instead of having two of them in StandardWell and MultisegmentWell
2017-10-12 13:37:05 +02:00
Kai Bao
8c0af08056 adding comments for MultisegmentWell 2017-10-12 13:36:27 +02:00
Tor Harald Sandve
5839962e31 Some trivial cleaning 2017-09-21 12:16:46 +02:00
Tor Harald Sandve
352dccd5e9 Make 2p gas oil compile and runs
-- use mapping from canonicalToActiveCompIdx from Ebos
-- add guards againts non-existing components
2017-09-18 11:28:13 +02:00
Kai Bao
9accb56c86 adding a test for well model.
It is just test for StandardWell.
2017-08-25 14:09:26 +02:00
Kai Bao
355be6c26c collecting the NaN and too large well residuals
make sure all the processes will throw if there is any of the processes
found abnormal residual values.
2017-08-25 14:09:26 +02:00
Kai Bao
96340a23ff computePerfRate and crossFlowAllowed protected in StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
bc78553686 renaming well_solutions_ and well_variables
to give slightly easier understanding.
2017-08-25 14:09:26 +02:00
Kai Bao
25869026e5 renaming a few functions
to reflect the functions better. No functional change.
2017-08-25 14:09:26 +02:00
Kai Bao
9a4a9a2bcc using well name and allow_cf form well_ecl. 2017-08-25 14:09:26 +02:00
Kai Bao
a908bd7cf1 makding createWellContainer a static function. 2017-08-25 14:09:26 +02:00
Kai Bao
f9b7094075 fixing of some comments
no functional change.
2017-08-25 14:09:26 +02:00
Kai Bao
fe3d2f91e0 adding functions to calcuate between thp and bhp
to reduce some code duplication in StandardWell
2017-08-25 14:09:26 +02:00
Kai Bao
31ce880ba7 fixing the prallel running.
It needs WellSwitchingLogger for all the processes even there are not
wells in some of the processes.
2017-08-25 14:09:26 +02:00
Kai Bao
5af15fa63f removing well_soltutions_ from WellStateFullyImplicitBlackoilDense
adding function setWellSolutions() to StandardWell.

The class WellStateFullyImplicitBlackoilDense is ready to be removed
now, while the only thing can go wrong compred with the original version
is the group control, which is not tested yet.
2017-08-25 14:09:26 +02:00
Kai Bao
8441eb77bd not using wellSolutions() from WellState
while not sure whether we can remove it totally because of the comments
related to group control.
2017-08-25 14:09:26 +02:00
Kai Bao
6dcb0dfba1 fixing the vfp running with flow_ebos. 2017-08-25 14:09:26 +02:00
Kai Bao
78dd9d1d16 more cleaning up of the interface of WellInterface and StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
1550fb7600 WIP in cleaning up the interfaces of WellInterface and StandardWell
commiting now to save some changes.
2017-08-25 14:09:26 +02:00
Kai Bao
d4f26ad47a recovering the running of flow_ebos for 2p + dummy phase. 2017-08-25 14:09:26 +02:00
Kai Bao
c43505d007 cleaning up some interface in WellInterface. 2017-08-25 14:09:26 +02:00
Kai Bao
6bbbe5061d adding the copyright information. 2017-08-25 14:09:26 +02:00
Kai Bao
3e26a8b467 using different size of block size of well and reservoir 2017-08-25 14:09:26 +02:00
Kai Bao
f19dd03387 using Base to represent WellInterface<TypeTag>
for better readability.
2017-08-25 14:09:26 +02:00
Kai Bao
4f716a633d using legacyDepth_ for the perfoation depth
for StandardWell. It turns out that it can be different with the
grid.getCellDepth() from the parser.
2017-08-25 14:09:26 +02:00
Kai Bao
c1ee941195 adding shear calculation to the polymer simulation. 2017-08-25 14:09:26 +02:00
Kai Bao
d1727d0183 correcting the injectivity with polymer injection. 2017-08-25 14:09:26 +02:00
Kai Bao
5ed9f4d497 incorporting polymer except the parts related to PLYSHLOG 2017-08-25 14:09:26 +02:00
Kai Bao
b3428a8bf9 incorporating the solvent related to StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
72ca91d59b more cleaning up for StandardWellsDense and StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
8ddd197dcf cleaning up StandardWellsDense
removing more unused stuff.
2017-08-25 14:09:26 +02:00
Kai Bao
e6d2b8550b adding function computeWellPotentials to StandardWell
for some similar reasons, this function stays in StandardWell for now.
Eventually, it should go to WellInterface with some refactoring work.
2017-08-25 14:09:26 +02:00
Kai Bao
1d34c9dc6e adding computeWellPotentialWithTHP() to StandardWell
it is not clear at the moment how all the well potentials related will
work with MS wells. For the moment, keep the well poentials related only
in StandardWell.

By theory, they should be very similar, while some dependence on certain
member variables makes some small refactoring work necessary.
2017-08-25 14:09:26 +02:00
Kai Bao
c3cc4021fa adding computeWellRatesWithBhp() to StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
ab67635134 adding applySolutionWellState to apply solution from reservoir
to update well state.

With this way, the BlackoilModelEbos does not need to know the data type
assocated with different well type.

It is not well tested yet.
2017-08-25 14:09:26 +02:00
Kai Bao
07f563a1e1 implementing two apply() function in StandardWell_impl
The two functions will be essentially the same even for different types
of wells. Maybe later we should try to put them in WellInterface.
2017-08-25 14:09:26 +02:00
Kai Bao
f1123acdf0 also switching B and C in StandardWell_impl 2017-08-25 14:09:26 +02:00
Kai Bao
3ceea76616 adding function computeAccumWell and computeWellConnectionPressures
to StandardWell and removing a few not needed function from StandardWellsDense
2017-08-25 14:09:26 +02:00
Kai Bao
033fe70620 making init() function for WellInterface virtual. 2017-08-25 14:09:26 +02:00
Kai Bao
9c215faade removing function allow_cross_flow() from StandardWellsDense 2017-08-25 14:09:26 +02:00
Kai Bao
d535157b1a cleaning up a few fucntions in StandardWellsDense
to remove the implementation implemented in StandardWell already.
2017-08-25 14:09:26 +02:00
Kai Bao
48dee6bd7a renaming function allCrossFlow() in StandardWell
to avoid confusion. and the detail of the function needs to be
justified.
2017-08-25 14:09:26 +02:00
Kai Bao
e5b5e250fe incoporating more content from PR 1220
while the parts related to polymer are not incoporated fully yet, since
it has been considered in the new well model refactoring.
2017-08-25 14:09:26 +02:00
Kai Bao
e3399ca203 fixing some compilation error after rebase.
while a lot of new stuff have not entered, since many of the essential
parts are in different files now. Rebasing will not incoporate the new
stuff automatically.
2017-08-25 14:09:26 +02:00
Kai Bao
07d24b9d8d solveWellEq in StandardWellsDense calls
solveWellEq from each individual well.
2017-08-25 14:09:26 +02:00
Kai Bao
9dace225de adding wellEqIteration() to StandardWell
the involvement of the group control in updateWellControls() makes the
solution of well equations for each well individually more troublesome.
As a result, we will still makes the solveWellEq in all the wells level.
2017-08-25 14:09:26 +02:00
Kai Bao
d99fe876dd adding getWellConvergence for StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
e01e8c352a adding function computeWellConnectionDensitesPressures to StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
0f997a537a adding computeConnectionPressureDelta to StandardWell
it is also copied from WellDensitySegmented while only handle one
Standard Well.
2017-08-25 14:09:26 +02:00
Kai Bao
9514e44d13 adding function computeConnectionDensities to StandardWell
which is copied from WellDensitySegmented, while avoid using of the
Wells struct.

TODO: find a better place to put these long functions.
2017-08-25 14:09:26 +02:00
Kai Bao
20c36d19c1 adding computePropertiesForWellConnectionPressures to StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
9c65684bf0 adding updateWellControl to StandardWell
TODO: check whehter it should go to WellInterface.
2017-08-25 14:09:26 +02:00
Kai Bao
f293e81336 adding function updateWellStateWithTarget to StandardWell
without dealing with wsolvent function. It can be just a member variable
since we are handling well one by one individually.
2017-08-25 14:09:26 +02:00
Kai Bao
1d9d70ee02 adding the updateWellState to StandardWell
this function is very long and need to debug very carefully and it
should be split for better readability for sure.
2017-08-25 14:09:26 +02:00
Kai Bao
1174d2de54 adding assembleWellEq to StandardWell
F0_ is not initialized yet.
2017-08-25 14:09:26 +02:00
Kai Bao
1942853337 adding function computePerfRate to StandardWell 2017-08-25 14:09:26 +02:00
Kai Bao
7223163155 handing the numComponents in WellInterface 2017-08-25 14:09:26 +02:00
Kai Bao
266442b0bd adding extendEval() to StandardWell
For this type of functions that related to Evaluation should be
implemented within individual well model.
2017-08-25 14:09:26 +02:00
Kai Bao
1a4ceeec66 makding the StandardWell and WellInterface templated
with the template parameter TypeTag.
2017-08-25 14:09:26 +02:00
Kai Bao
2d02503091 more or less getting the old implementation in
and compile now.
2017-08-25 14:09:26 +02:00
Kai Bao
0cf6699591 adding StandardWell class
copied from the old implementation, which is the starting point for the
new refactoring
2017-08-25 14:09:26 +02:00