Commit Graph

2853 Commits

Author SHA1 Message Date
Kai Bao
bf2f9b3f06 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
55eec0b2ed checking whehter need to update before updateWellTargets. 2016-11-15 13:56:49 +01:00
Kai Bao
f9f5bacee4 cleaning up more unused flag from WellsGroup 2016-11-11 11:29:12 +01:00
Kai Bao
91b8c872eb removing a few not-used function with the new strategy. 2016-11-10 17:50:30 +01:00
Kai Bao
95997e208c 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
085785bf26 adding function findWellNode() to WellCollection
to return the WellNode* instead of WellGroupInterface*
2016-11-10 16:28:40 +01:00
Kai Bao
b319e1a75d cleaning up and adding more comments for better understanding.
No functional change.
2016-11-10 16:28:40 +01:00
Kai Bao
3e8b1bdb82 applying the efficiency factor to VREP control. 2016-11-10 16:28:40 +01:00
Kai Bao
76a2108ea9 adding VREP injection support.
not handling multiple injection wells for moment.
2016-11-10 16:28:40 +01:00
Kai Bao
88181f4948 using variable only_group instead of hard-coded false.
when applying group production control.
2016-11-10 16:28:40 +01:00
Kai Bao
06d380df51 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
2b289f8964 adding basic support for group injection control.
more testing will be required later.
2016-11-10 16:28:40 +01:00
Kai Bao
63e5755fa9 applying efficiency factor to the group control. 2016-11-10 16:28:40 +01:00
Kai Bao
a0e1fcf89d 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
013c907e66 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
2e135388a6 refactoring function updateWellProductionTargets()
To handle different types of control mode.
2016-11-10 16:28:40 +01:00
Kai Bao
b8ac674f9b 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
65d61d1c4f output cleanining up 2016-11-10 16:28:40 +01:00
Kai Bao
352c185edf 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
32e9b26ce8 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
fec53a1af5 fixing the comilation problem from rebasing. 2016-11-10 16:28:40 +01:00
Kai Bao
e183ab6ccd revising injectionGuideRate and productionGuideRate
for WellNode. It gives a better logic.
2016-11-10 16:28:40 +01:00
Kai Bao
7295f26f54 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
46a9a62741 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
6942a986da 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
e28715b601 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
a438680fb0 putting more things in the prototyping test. 2016-11-10 16:28:40 +01:00
Kai Bao
0d5a86cc71 keeping adding group control related in. 2016-11-10 16:28:40 +01:00
Kai Bao
f628064884 keeping putting group controlling in. 2016-11-10 16:28:40 +01:00
Kai Bao
4214cfec83 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
36bedfcf67 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
3bdf0eae11 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
c5958da6c9 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
a0d3ceff62 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
f79fe1f7ad 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
Arne Morten Kvarving
630d5477d8 fixed: use correct indices for well state completion data 2016-11-04 16:40:09 +01:00
Joakim Hove
e348baa6c7 Merge pull request #1098 from jokva/phase-in-runspec
Read phase information from EclipseState.runspec
2016-11-02 11:52:24 +01:00
Andreas Lauser
5376fb618d Merge pull request #1096 from andlaus/Evaluation_accessors
use accessor methods to access the value and derivatives of Evaluation objects
2016-11-01 13:16:05 +01:00
Jørgen Kvalsvik
23ef9dce5c Read phase information from EclipseState.runspec 2016-11-01 11:37:27 +01:00
Atgeirr Flø Rasmussen
5d33f0d900 Merge pull request #1095 from atgeirr/fix-diag-twophase
Fix saturation family diagnostics for two-phase case.
2016-10-28 10:41:17 +02:00
Tor Harald Sandve
d96b7193ee Make it possible to set initial timestep
Default is kept at -1.0. I.e. this PR does not change the current
behaviour.
2016-10-28 09:03:29 +02:00
Andreas Lauser
1387c5f834 use accessor methods to access the value and derivatives of Evaluation objects 2016-10-27 16:53:52 +02:00
Atgeirr Flø Rasmussen
1ce4c47b09 Fix saturation family diagnostics for two-phase case. 2016-10-27 11:58:50 +02:00
Atgeirr Flø Rasmussen
9dfd16cffb Adapt to changed data::Wells API. 2016-10-25 10:41:16 +02:00
Atgeirr Flø Rasmussen
125d1696d6 Merge pull request #1093 from dr-robertk/PR/fix-wellmanager-constructor
Make WellsManager compile with c++-11.
2016-10-23 07:36:08 +02:00
Atgeirr Flø Rasmussen
ad5d98664c Merge pull request #1075 from jokva/output-data-wells-sans-vectors
WIP: Restore from data::Wells without vector dumps
2016-10-21 14:58:10 +02:00
Robert Kloefkorn
d082d977fd Merge remote-tracking branch 'upstream/master' into PR/fix-wellmanager-constructor 2016-10-21 13:55:21 +02:00
Atgeirr Flø Rasmussen
cc72693348 Merge pull request #1090 from atgeirr/convergence-failure-problem-not-error
Convergence failure is "problem" not "error"
2016-10-21 12:49:10 +02:00
Robert Kloefkorn
044d47b9fb [bugfix] Make WellsManager compile with c++-11. 2016-10-21 10:43:32 +02:00
Atgeirr Flø Rasmussen
069b65a635 Add option to enable logging (default true).
This makes it possible to avoid logging from this class in a parallel setting.
2016-10-20 22:39:08 +02:00