#include <WellsGroup.hpp>
|
| WellsGroupInterface (const std::string &name, const ProductionSpecification &prod_spec, const InjectionSpecification &inj_spec, const PhaseUsage &phase_usage) |
|
virtual | ~WellsGroupInterface () |
|
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...
|
|
const InjectionSpecification & | injSpec () const |
| Injection specifications for the well or well group. More...
|
|
ProductionSpecification & | prodSpec () |
| Production 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 |
|
virtual WellsGroupInterface * | findGroup (const std::string &name_of_node)=0 |
|
void | setParent (WellsGroupInterface *parent) |
|
const WellsGroupInterface * | getParent () const |
| Gets the parent of the group, NULL if no parent. More...
|
|
virtual int | numberOfLeafNodes ()=0 |
|
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)=0 |
|
virtual void | applyInjGroupControl (const InjectionSpecification::ControlMode control_mode, const double target, const bool forced)=0 |
|
virtual void | applyProdGroupControl (const ProductionSpecification::ControlMode control_mode, const double target, const bool forced)=0 |
|
virtual std::pair< WellNode
*, double > | getWorstOffending (const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase, ProductionSpecification::ControlMode mode)=0 |
|
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 | applyProdGroupControls ()=0 |
|
virtual void | applyInjGroupControls ()=0 |
|
virtual double | productionGuideRate (bool only_group)=0 |
|
virtual double | injectionGuideRate (bool only_group)=0 |
|
virtual double | getTotalProductionFlow (const std::vector< double > &phase_flows, const BlackoilPhases::PhaseIndex phase)=0 |
|
virtual void | applyExplicitReinjectionControls (const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase)=0 |
|
virtual Opm::WellsGroupInterface::~WellsGroupInterface |
( |
| ) |
|
|
virtual |
virtual void Opm::WellsGroupInterface::applyExplicitReinjectionControls |
( |
const std::vector< double > & |
well_reservoirrates_phase, |
|
|
const std::vector< double > & |
well_surfacerates_phase |
|
) |
| |
|
pure 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. |
Implemented in Opm::WellNode, and Opm::WellsGroup.
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. |
Implemented in Opm::WellNode, and Opm::WellsGroup.
virtual void Opm::WellsGroupInterface::applyInjGroupControls |
( |
| ) |
|
|
pure virtual |
Applies any injection group control relevant to all children nodes. If no group control is set, this is called recursively to the children.
Implemented in Opm::WellNode, and Opm::WellsGroup.
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. |
Implemented in Opm::WellNode, and Opm::WellsGroup.
virtual void Opm::WellsGroupInterface::applyProdGroupControls |
( |
| ) |
|
|
pure virtual |
Applies any production group control relevant to all children nodes. If no group control is set, this is called recursively to the children.
Implemented in Opm::WellNode, and Opm::WellsGroup.
virtual bool Opm::WellsGroupInterface::conditionsMet |
( |
const std::vector< double > & |
well_bhp, |
|
|
const std::vector< double > & |
well_reservoirrates_phase, |
|
|
const std::vector< double > & |
well_surfacerates_phase, |
|
|
WellPhasesSummed & |
summed_phases |
|
) |
| |
|
pure 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).
Implemented in Opm::WellNode, and Opm::WellsGroup.
virtual WellsGroupInterface* Opm::WellsGroupInterface::findGroup |
( |
const std::string & |
name_of_node | ) |
|
|
pure virtual |
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::WellsGroupInterface::getTotalProductionFlow |
( |
const std::vector< double > & |
phase_flows, |
|
|
const BlackoilPhases::PhaseIndex |
phase |
|
) |
| |
|
pure 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. |
Implemented in Opm::WellNode, and Opm::WellsGroup.
virtual std::pair<WellNode*, double> Opm::WellsGroupInterface::getWorstOffending |
( |
const std::vector< double > & |
well_reservoirrates_phase, |
|
|
const std::vector< double > & |
well_surfacerates_phase, |
|
|
ProductionSpecification::ControlMode |
mode |
|
) |
| |
|
pure 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.
Implemented in Opm::WellNode, and Opm::WellsGroup.
virtual double Opm::WellsGroupInterface::injectionGuideRate |
( |
bool |
only_group | ) |
|
|
pure 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 |
Implemented in Opm::WellNode, and Opm::WellsGroup.
Injection specifications for the well or well group.
Injection specifications for the well or well group.
virtual bool Opm::WellsGroupInterface::isLeafNode |
( |
| ) |
const |
|
virtual |
const std::string& Opm::WellsGroupInterface::name |
( |
| ) |
const |
The unique identifier for the well or well group.
virtual int Opm::WellsGroupInterface::numberOfLeafNodes |
( |
| ) |
|
|
pure virtual |
Calculates the number of leaf nodes in the given group. A leaf node is defined to have one leaf node in its group.
Implemented in Opm::WellNode, and Opm::WellsGroup.
const PhaseUsage& Opm::WellsGroupInterface::phaseUsage |
( |
| ) |
const |
Production specifications for the well or well group.
Production specifications for the well or well group.
virtual double Opm::WellsGroupInterface::productionGuideRate |
( |
bool |
only_group | ) |
|
|
pure 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 |
Implemented in Opm::WellNode, and Opm::WellsGroup.
Sets the parent - Parameters
-
[in] | parent | the pointer to the parent |
The documentation for this class was generated from the following file:
|