Kai Bao
78b96d9c20
a flag to WellCollection whether group control active
2016-11-17 16:26:19 +01:00
Kai Bao
37e1fb0043
rewriting the findWellNode function
...
with assuming we should always find the well in the well collection.
2016-11-16 14:27:15 +01:00
Joakim Hove
9739b2167c
Merge pull request #1101 from jokva/changes-in-grouptree
...
GroupTree interface changed upstream
2016-11-16 13:26:58 +01:00
Kai Bao
d7b2d3368c
fixing the comments.
...
No change in the functions and results.
2016-11-16 11:40:10 +01:00
Kai Bao
0e6214723c
addressing a few comments.
2016-11-16 09:51:06 +01:00
Kai Bao
6714c53dc8
adding target_updated_ flag to WellNode
...
to save some repeated efforts when updating Well Targets.
2016-11-16 09:43:28 +01:00
Kai Bao
ca52f1f59e
checking whehter need to update before updateWellTargets.
2016-11-15 13:56:49 +01:00
Kai Bao
f4a44ec1dd
cleaning up more unused flag from WellsGroup
2016-11-11 11:29:12 +01:00
Kai Bao
6c9c64cb3e
removing a few not-used function with the new strategy.
2016-11-10 17:50:30 +01:00
Kai Bao
84910993c4
different strategy is using when updating the well targets
...
When the group has wells both under individual control and group
control, since the well rates under individual control changes each
iteration, the well targets for this kind of group need to be updated
each iteration.
When we change to use implicit well potentials later, which is supposed
to be more accurate, we probably should always (unless we decided not to)
update the well targets each iteration.
2016-11-10 17:22:25 +01:00
Kai Bao
73b511f90a
adding function findWellNode() to WellCollection
...
to return the WellNode* instead of WellGroupInterface*
2016-11-10 16:28:40 +01:00
Kai Bao
62dbf74bc9
cleaning up and adding more comments for better understanding.
...
No functional change.
2016-11-10 16:28:40 +01:00
Kai Bao
8ce422072e
applying the efficiency factor to VREP control.
2016-11-10 16:28:40 +01:00
Kai Bao
fe7a77d80e
adding VREP injection support.
...
not handling multiple injection wells for moment.
2016-11-10 16:28:40 +01:00
Kai Bao
0e3118af42
using variable only_group instead of hard-coded false.
...
when applying group production control.
2016-11-10 16:28:40 +01:00
Kai Bao
a77750c0b6
correcting the typo in efficiency
...
It was efficicency, which causes inconvenience when searching variables
or functions.
2016-11-10 16:28:40 +01:00
Kai Bao
099a62f07a
adding basic support for group injection control.
...
more testing will be required later.
2016-11-10 16:28:40 +01:00
Kai Bao
f1123e4e4c
applying efficiency factor to the group control.
2016-11-10 16:28:40 +01:00
Kai Bao
f922ed6ad9
function for accumulative efficiency factor for WellNode
...
This is the final efficiency factor that goes to the source/sink terms
in the material balance equations.
2016-11-10 16:28:40 +01:00
Kai Bao
194d9b161d
adding efficiency factor to the WellsGroupInterface.
...
The one for the WellNode should be specified with WEFAC, which we are
not handling for the moment, so we just set it to be 1.0 for the moment.
2016-11-10 16:28:40 +01:00
Kai Bao
a67bff245b
refactoring function updateWellProductionTargets()
...
To handle different types of control mode.
2016-11-10 16:28:40 +01:00
Kai Bao
be5f1e5c58
When NONE is specified, no group control enforcement.
...
NONE is specified in GCONPROD or GCONINJE.
2016-11-10 16:28:40 +01:00
Kai Bao
d3926a6a6a
output cleanining up
2016-11-10 16:28:40 +01:00
Kai Bao
9bfe9d561a
removing the use of cast between base class and derived class
...
between WellsGroupInterface and WellsGroup, WellNode.
2016-11-10 16:28:40 +01:00
Kai Bao
631ea6cf82
revising updateWellTargets to remove the dependency of WellState
...
avoiding template using here. It is possible we will need WellState
eventually, while only using the well_rates for the moment.
2016-11-10 16:28:40 +01:00
Kai Bao
1174da5326
fixing the comilation problem from rebasing.
2016-11-10 16:28:40 +01:00
Kai Bao
2ddb199f4f
revising injectionGuideRate and productionGuideRate
...
for WellNode. It gives a better logic.
2016-11-10 16:28:40 +01:00
Kai Bao
3551ccac0a
adding updateWellInjectionTargets updateWellProductionTargets
...
For WellsGroup. At least for the current moment, the updation of the
well targets for injectors and producers should be handled in a
seprate way.
2016-11-10 16:28:40 +01:00
Kai Bao
df745bafef
functions for indicating injection and production upating.
...
it is for WellCollection, which is logically wrong. It should be done in
the group level, while things will be different for multi-level groups.
The current implementation basically works for current needs, that we
only have one group.
2016-11-10 16:28:40 +01:00
Kai Bao
86e41a8937
adding isProducer() and isProjector() to wellNode class.
...
Did not see type() function there, while it should still be a okay idea.
2016-11-10 16:28:40 +01:00
Kai Bao
7926a58fae
parameter forced to only_group from applyInjGroup applyProdGroup
...
forced and only_group basically mean two opposite things. Having both of
them in the same context will be really confusing and error-prone.
And also, we do not do anything forcedly. We do things base on what
setup tells us to do.
Only_group may not be the final name, while deinitely a better one than
forced.
2016-11-10 16:28:40 +01:00
Kai Bao
a9335266c6
putting more things in the prototyping test.
2016-11-10 16:28:40 +01:00
Kai Bao
999b80a91a
keeping adding group control related in.
2016-11-10 16:28:40 +01:00
Kai Bao
26cc5de202
keeping putting group controlling in.
2016-11-10 16:28:40 +01:00
Kai Bao
4d57b641a8
adding a non-const wellCollection() in WellsManager.
...
For the WellModel from the simulator to use. Not decided totally,
well_collection might need to be updated during the simualtion due
to the update the target of wells.
2016-11-10 16:28:40 +01:00
Kai Bao
59ab9b8424
not returning zero from double WellNode::productionGuideRate
...
Current understanding. Two ways might prevent to return the guide_rate here
1. preventing the well from group control with keyword WGRUPCON
2. the well violating some limits and working under limits. We do not have strategy
to handle this situation yet.
2016-11-10 16:28:40 +01:00
Kai Bao
3150b94ed6
Not return from the WellNode:applyInjGroupControl
...
unless we prevent the well from group control with keyword WGRUPCON.
2016-11-10 16:28:40 +01:00
Kai Bao
2e9929e2af
To make the injection well be able to receive the target.
...
Very hacky way here. The logic of the code is that only
a well is specified under GRUP control, it is under group
control. Which is not the case observed from the result.
From the result, if we specify group control with GCONPROD
and WCONPROD for a well, it looks like the well will be
under group control. TODO: make the logic correct here
instead of using `false` here.
2016-11-10 16:28:40 +01:00
Kai Bao
0640c963fc
group can be both injection group and production group.
...
Change if else to two ifs.
2016-11-10 16:28:40 +01:00
Kai Bao
f93fd52c26
adding support for the FLD for the control type of group control.
...
And also adding support for the liquid rate type of guide rate type.
2016-11-10 16:28:40 +01:00
Jørgen Kvalsvik
478ac16a1b
GroupTree interface changed upstream
...
Updates to the slightly modified GroupTree interface from opm-parser.
2016-11-09 13:04:33 +01:00
Jørgen Kvalsvik
3bde655e12
Read phase information from EclipseState.runspec
2016-11-01 11:37:27 +01:00
Robert Kloefkorn
81189135bf
Merge remote-tracking branch 'upstream/master' into PR/fix-wellmanager-constructor
2016-10-21 13:55:21 +02:00
Robert Kloefkorn
ca7c3070a2
[bugfix] Make WellsManager compile with c++-11.
2016-10-21 10:43:32 +02:00
Jørgen Kvalsvik
a52724ae97
Update to shared_ptr-less parser interface.
2016-10-20 10:14:41 +02:00
Andreas Lauser
fabdfbafcb
consolidate the unit system to opm-parser
...
since the unit code within opm-parser is now a drop-in replacement,
this simplifies things and make them less error-prone.
unfortunately, this requires quite a few PRs. (most are pretty
trivial, though.)
2016-10-10 17:50:26 +02:00
Jørgen Kvalsvik
3c2ebf9cfd
Schedule::getGroup returns reference, not pointer
2016-10-05 15:24:14 +02:00
Markus Blatt
29dc9a1880
Use an unordered_set of string to identify defunct wells.
...
We do not rely on the order of the set and hope that the lookup
might be faster as it prevents string comparisons.
2016-09-13 10:55:15 +02:00
Markus Blatt
60ba51aea0
Do exclude SHUT wells from lookup of deactivated wells.
...
This should be prevent some unnecessary find calls in the set.
2016-09-13 10:55:15 +02:00
Markus Blatt
2875b64faf
Revert "Use index according to eclipse schedule to identify deactivated wells."
...
This reverts commit 09205dfa074af24b381595d02c15e799523ddb2b.
We cannot use the index as it might change for a well between different
report steps. Unfortunately the only persistent way to identify wells
over all report steps in the schedule seems to be the well name.
2016-09-13 10:55:15 +02:00