Commit Graph

232 Commits

Author SHA1 Message Date
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
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
Markus Blatt
10bfa5dfa8 Use index according to eclipse schedule to identify deactivated wells. 2016-09-13 10:55:15 +02:00
Markus Blatt
012edac7ce Use provided set of deactivated wells in parallel.
Before this commit we tried to compute whether a well is represented on
the processor using the grid information. Due to the overlap region and
possible completion on deactivated cells of the global grid this is not
even possible. E.g. we cannot distinguish whether a completion is just
not represented on the domain of a process or the corresponding cell is
not active in the simulation.

With this commit we refactor to passing the well manager an explicit
list of name of wells that should be completely neglected. This information
can easily by computed after the loadbalancer has computed partitions.
2016-09-13 10:55:15 +02:00
Kai Bao
b0a4387573 adding default constructor for DynamicListEconLimited 2016-07-04 16:21:55 +02:00
Kai Bao
18b76331eb addressing comments.
no functional change.
2016-06-30 16:20:38 +02:00
Kai Bao
b4fa2b4944 removing some commented lines. 2016-06-30 15:17:13 +02:00
Kai Bao
28636aad5c adding stopped wells list to DynamicListEconLimited
when well is closed due to rate economic limits, based on the auto
shut-in configuration, the well can be STOP or SHUT.

When well is closed due to all the connections are closed, it should be
SHUT.
2016-06-30 14:41:14 +02:00
Kai Bao
eb163e648c handling connection closing in DynamicListEconLimited
due to econ limits.
2016-06-30 14:41:14 +02:00
Kai Bao
c64d33fbd3 adding list_econ_limited to setupWellControls 2016-06-30 14:41:14 +02:00
Kai Bao
7dac2201bb WIP in adding class DynamicListEconLimited
to handle the closed wells and connection dynamically based on the
economic limits provied by keyword WECON
2016-06-30 14:41:14 +02:00
Markus Blatt
b5f6513520 Use NULL instead of 0 in null comparison. 2016-06-27 14:38:30 +02:00
Markus Blatt
f976c6ee9d Make wells_equal work for only one null pointer. 2016-06-27 13:29:44 +02:00
Markus Blatt
88ebfeba28 Make wells_equal work for null wells.
This is needed to run test cases without wells with debugging on.
Without this commit we get segmentation fault in an assert statement.
2016-06-27 12:21:45 +02:00
Atgeirr Flø Rasmussen
675bc960db Merge pull request #1043 from pgdr/remove-return-type-warn
Remove warnings (by throwing), added copyright header
2016-06-20 22:34:40 +02:00
Pål Grønås Drange
4acd859559 Using OPM_THROW to log messages, fixed Copyright headers 2016-06-20 17:20:33 +02:00
Pål Grønås Drange
e9c2382b45 Remove [-Wreturn-type] warnings (added throw), added copyright header 2016-06-20 14:13:29 +02:00
Jørgen Kvalsvik
03104f2320 WellPtr and GroupPtr deprecated
shared_ptr aliases are considered deprecated and has largely been
removed upstream (and replaced by raw pointers).
2016-06-16 09:33:43 +02:00
Liu Ming
7d0833f2d2 make toString() method as static. 2016-05-24 09:07:28 +08:00
Liu Ming
ca030efeb9 simplify the implementation. 2016-05-23 10:48:51 +08:00
Liu Ming
1cb66d2b4f write well related information into OpmLog. 2016-05-20 16:14:16 +08:00
Liu Ming
8c573d4ef1 Add enum to string functions. 2016-05-20 16:13:37 +08:00
Pål Grønås Drange
75936c1d9c Using getInputGrid API from Parser, changed GridManager to no longer accept Deck in constructor 2016-04-20 08:51:10 +02:00
Tor Harald Sandve
17aed6c181 BUGFIX. Comparison with null pointer 2016-04-15 12:56:04 +02:00