#include <WellsGroup.hpp>
|
| WellsGroup (const std::string &name, const ProductionSpecification &prod_spec, const InjectionSpecification &inj_spec, const PhaseUsage &phase_usage) |
|
virtual WellsGroupInterface * | findGroup (const std::string &name_of_node) |
|
void | addChild (std::shared_ptr< WellsGroupInterface > child) |
|
virtual bool | conditionsMet (const std::vector< double > &well_bhp, const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase, WellPhasesSummed &summed_phases) |
|
virtual int | numberOfLeafNodes () |
|
virtual std::pair< WellNode
*, double > | getWorstOffending (const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase, ProductionSpecification::ControlMode mode) |
|
virtual void | applyInjGroupControl (const InjectionSpecification::ControlMode control_mode, const double target, bool forced) |
|
virtual void | applyProdGroupControl (const ProductionSpecification::ControlMode control_mode, const double target, bool forced) |
|
virtual void | applyProdGroupControls () |
|
virtual void | applyInjGroupControls () |
|
virtual double | productionGuideRate (bool only_group) |
|
virtual double | injectionGuideRate (bool only_group) |
|
virtual double | getTotalProductionFlow (const std::vector< double > &phase_flows, const BlackoilPhases::PhaseIndex phase) |
|
virtual void | applyExplicitReinjectionControls (const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase) |
|
const std::string & | name () const |
| The unique identifier for the well or well group. More...
|
|
const ProductionSpecification & | prodSpec () const |
| Production specifications for the well or well group. More...
|
|
ProductionSpecification & | prodSpec () |
| Production specifications for the well or well group. More...
|
|
const InjectionSpecification & | injSpec () const |
| Injection specifications for the well or well group. More...
|
|
InjectionSpecification & | injSpec () |
| Injection specifications for the well or well group. More...
|
|
const PhaseUsage & | phaseUsage () const |
| Phase usage information. More...
|
|
virtual bool | isLeafNode () const |
|
void | setParent (WellsGroupInterface *parent) |
|
const WellsGroupInterface * | getParent () const |
| Gets the parent of the group, NULL if no parent. More...
|
|
double | getTarget (ProductionSpecification::ControlMode mode) |
| Gets the target rate for the given mode. More...
|
|
double | getTarget (InjectionSpecification::ControlMode mode) |
| Gets the target rate for the given mode. More...
|
|
virtual void Opm::WellsGroup::applyExplicitReinjectionControls |
( |
const std::vector< double > & |
well_reservoirrates_phase, |
|
|
const std::vector< double > & |
well_surfacerates_phase |
|
) |
| |
|
virtual |
Applies explicit reinjection controls. This must be called at each timestep to be correct. - Parameters
-
[in] | well_reservoirrates_phase | A vector containing reservoir rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
[in] | well_surfacerates_phase | A vector containing surface rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
Implements Opm::WellsGroupInterface.
Sets the current active control to the provided one for all injectors within the group. After this call, the combined rate (which rate depending on control_mode) of the group shall be equal to target. - Parameters
-
[in] | forced | if true, all children will be set under group control, otherwise only children that are under group control will be changed. |
Implements Opm::WellsGroupInterface.
virtual void Opm::WellsGroup::applyInjGroupControls |
( |
| ) |
|
|
virtual |
Applies any injection group control relevant to all children nodes. If no group control is set, this is called recursively to the children.
Implements Opm::WellsGroupInterface.
Sets the current active control to the provided one for all producers within the group. After this call, the combined rate (which rate depending on control_mode) of the group shall be equal to target. - Parameters
-
[in] | forced | if true, all children will be set under group control, otherwise only children that are under group control will be changed. |
Implements Opm::WellsGroupInterface.
virtual void Opm::WellsGroup::applyProdGroupControls |
( |
| ) |
|
|
virtual |
Applies any production group control relevant to all children nodes. If no group control is set, this is called recursively to the children.
Implements Opm::WellsGroupInterface.
virtual bool Opm::WellsGroup::conditionsMet |
( |
const std::vector< double > & |
well_bhp, |
|
|
const std::vector< double > & |
well_reservoirrates_phase, |
|
|
const std::vector< double > & |
well_surfacerates_phase, |
|
|
WellPhasesSummed & |
summed_phases |
|
) |
| |
|
virtual |
Checks if each condition is met, applies well controls where needed (that is, it either changes the active control of violating wells, or shuts down wells). Only one change is applied per invocation. Typical use will be solve_pressure();
while(!group.conditionsMet(...)) {
solve_pressure();
}
- Note
- It's highly recommended to use the conditionsMet found in WellsManager.
- Parameters
-
[in] | well_bhp | A vector containing the bhp for each well. Is assumed to be ordered the same way as the related Wells-struct. |
[in] | well_reservoirrates_phase | A vector containing reservoir rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
[in] | well_surfacerates_phase | A vector containing surface rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
[out] | summed_phases | Will at end of invocation contain the summed phase rates (rate ,etc.) for the group. |
- Returns
- true if no violations were found, false otherwise (false also implies a change).
Implements Opm::WellsGroupInterface.
Gets the parent of the group, NULL if no parent.
Gets the target rate for the given mode.
Gets the target rate for the given mode.
virtual double Opm::WellsGroup::getTotalProductionFlow |
( |
const std::vector< double > & |
phase_flows, |
|
|
const BlackoilPhases::PhaseIndex |
phase |
|
) |
| |
|
virtual |
Gets the total production flow of the given phase. - Parameters
-
[in] | phase_flows | A vector containing rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
[in] | phase | The phase for which to sum up. |
Implements Opm::WellsGroupInterface.
virtual std::pair<WellNode*, double> Opm::WellsGroup::getWorstOffending |
( |
const std::vector< double > & |
well_reservoirrates_phase, |
|
|
const std::vector< double > & |
well_surfacerates_phase, |
|
|
ProductionSpecification::ControlMode |
mode |
|
) |
| |
|
virtual |
Gets the worst offending well based on the input - Parameters
-
[in] | well_reservoirrates_phase | A vector containing reservoir rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
[in] | well_surfacerates_phase | A vector containing surface rates by phase for each well. Is assumed to be ordered the same way as the related Wells-struct, with all phase rates of a single well adjacent in the array. |
[in] | mode | The relevant control mode to find the maximum over. |
- Returns
- first will be a pointer to the worst offending well, second will be the obtained value at that well.
Implements Opm::WellsGroupInterface.
virtual double Opm::WellsGroup::injectionGuideRate |
( |
bool |
only_group | ) |
|
|
virtual |
Calculates the injection guide rate for the group. - Parameters
-
[in] | only_group | If true, will only accumelate guide rates for wells under group control |
Implements Opm::WellsGroupInterface.
Injection specifications for the well or well group.
Injection specifications for the well or well group.
virtual bool Opm::WellsGroupInterface::isLeafNode |
( |
| ) |
const |
|
virtualinherited |
const std::string& Opm::WellsGroupInterface::name |
( |
| ) |
const |
|
inherited |
The unique identifier for the well or well group.
virtual int Opm::WellsGroup::numberOfLeafNodes |
( |
| ) |
|
|
virtual |
Calculates the number of leaf nodes in the given group. A leaf node is defined to have one leaf node in its group.
Implements Opm::WellsGroupInterface.
const PhaseUsage& Opm::WellsGroupInterface::phaseUsage |
( |
| ) |
const |
|
inherited |
Production specifications for the well or well group.
Production specifications for the well or well group.
virtual double Opm::WellsGroup::productionGuideRate |
( |
bool |
only_group | ) |
|
|
virtual |
Calculates the production guide rate for the group. - Parameters
-
[in] | only_group | If true, will only accumelate guide rates for wells under group control |
Implements Opm::WellsGroupInterface.
Sets the parent - Parameters
-
[in] | parent | the pointer to the parent |
The documentation for this class was generated from the following file:
|