WellProductionProperties.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2013 Statoil ASA.
3 
4  This file is part of the Open Porous Media project (OPM).
5 
6  OPM is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  OPM is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with OPM. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef WELLPRODUCTIONPROPERTIES_HPP_HEADER_INCLUDED
21 #define WELLPRODUCTIONPROPERTIES_HPP_HEADER_INCLUDED
22 
25 
26 namespace Opm {
28  public:
29  double OilRate;
30  double WaterRate;
31  double GasRate;
32  double LiquidRate;
33  double ResVRate;
34  double BHPLimit;
35  double THPLimit;
37  double ALQValue;
39 
41 
42  bool operator==(const WellProductionProperties& other) const;
43  bool operator!=(const WellProductionProperties& other) const;
45 
47 
49 
51  return (m_productionControls & controlModeArg) != 0;
52  }
53 
55  if (hasProductionControl(controlModeArg))
56  m_productionControls -= controlModeArg;
57  }
58 
60  if (! hasProductionControl(controlModeArg))
61  m_productionControls += controlModeArg;
62  }
63 
64  private:
65  int m_productionControls;
66 
68 
69  void init();
70  };
71 } // namespace Opm
72 
73 #endif // WELLPRODUCTIONPROPERTIES_HPP_HEADER_INCLUDED
bool hasProductionControl(WellProducer::ControlModeEnum controlModeArg) const
Definition: WellProductionProperties.hpp:50
static WellProductionProperties history(DeckRecordConstPtr record)
double BHPLimit
Definition: WellProductionProperties.hpp:34
double THPLimit
Definition: WellProductionProperties.hpp:35
WellProducer::ControlModeEnum controlMode
Definition: WellProductionProperties.hpp:40
double OilRate
Definition: WellProductionProperties.hpp:29
double GasRate
Definition: WellProductionProperties.hpp:31
int VFPTableNumber
Definition: WellProductionProperties.hpp:36
Definition: Deck.hpp:29
bool predictionMode
Definition: WellProductionProperties.hpp:38
bool operator==(const WellProductionProperties &other) const
double ALQValue
Definition: WellProductionProperties.hpp:37
double LiquidRate
Definition: WellProductionProperties.hpp:32
bool operator!=(const WellProductionProperties &other) const
static WellProductionProperties prediction(DeckRecordConstPtr record)
double ResVRate
Definition: WellProductionProperties.hpp:33
void addProductionControl(WellProducer::ControlModeEnum controlModeArg)
Definition: WellProductionProperties.hpp:59
std::shared_ptr< const DeckRecord > DeckRecordConstPtr
Definition: DeckRecord.hpp:54
Definition: WellProductionProperties.hpp:27
double WaterRate
Definition: WellProductionProperties.hpp:30
void dropProductionControl(WellProducer::ControlModeEnum controlModeArg)
Definition: WellProductionProperties.hpp:54
ControlModeEnum
Definition: ScheduleEnums.hpp:122