Tuning.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2015 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 OPM_TUNING_HPP
21 #define OPM_TUNING_HPP
22 
25 
26 
27 namespace Opm {
28 
29  class Tuning {
30 
31  /*
32  When the TUNING keyword has occured in the Schedule section and
33  has been handled by the Schedule::handleTUNING() method,
34  the value for each TUNING keyword item is either
35  set from the keyword occurence or a default is set if specified in
36  the keyword description. Items that do not have a specified default
37  has got a separate <itemname>hasValue() method.
38 
39  Before any TUNING keyword has occured in the Schedule section,
40  the different TUNING keyword items has got hardcoded default values
41  (See Tuning constructor)
42  Hardcoded values are set as the same as specified in the keyword description,
43  or 0 if no default is specified in the description.
44  */
45 
46  public:
47  Tuning(TimeMapConstPtr timemap);
48 
49  void setTuningInitialValue(const std::string tuningItem, double value,bool resetVector);
50  void setTuningInitialValue(const std::string tuningItem, int value, bool resetVector);
51 
52  void getTuningItemValue(const std::string& tuningItem, size_t timestep, double& value);
53  void getTuningItemValue(const std::string& tuningItem, size_t timestep, int& value);
54 
55 
56  /* Record 1 */
57  double getTSINIT(size_t timestep) const;
58  double getTSMAXZ(size_t timestep) const;
59  double getTSMINZ(size_t timestep) const;
60  double getTSMCHP(size_t timestep) const;
61  double getTSFMAX(size_t timestep) const;
62  double getTSFMIN(size_t timestep) const;
63  double getTSFCNV(size_t timestep) const;
64  double getTFDIFF(size_t timestep) const;
65  double getTHRUPT(size_t timestep) const;
66  double getTMAXWC(size_t timestep) const;
67  bool getTMAXWChasValue(size_t timestep) const;
68  void setTSINIT(size_t timestep, double TSINIT);
69  void setTSMAXZ(size_t timestep, double TSMAXZ);
70  void setTSMINZ(size_t timestep, double TSMINZ);
71  void setTSMCHP(size_t timestep, double TSMCHP);
72  void setTSFMAX(size_t timestep, double TSFMAX);
73  void setTSFMIN(size_t timestep, double TSFMIN);
74  void setTSFCNV(size_t timestep, double TSFCNV);
75  void setTFDIFF(size_t timestep, double TFDIFF);
76  void setTHRUPT(size_t timestep, double THRUPT);
77  void setTMAXWC(size_t timestep, double TMAXWC);
78  /* Record 2 */
79  double getTRGTTE(size_t timestep) const;
80  double getTRGCNV(size_t timestep) const;
81  double getTRGMBE(size_t timestep) const;
82  double getTRGLCV(size_t timestep) const;
83  double getXXXTTE(size_t timestep) const;
84  double getXXXCNV(size_t timestep) const;
85  double getXXXMBE(size_t timestep) const;
86  double getXXXLCV(size_t timestep) const;
87  double getXXXWFL(size_t timestep) const;
88  double getTRGFIP(size_t timestep) const;
89  double getTRGSFT(size_t timestep) const;
90  bool getTRGSFThasValue(size_t timestep) const;
91  double getTHIONX(size_t timestep) const;
92  int getTRWGHT(size_t timestep) const;
93  void setTRGTTE(size_t timestep, double TRGTTE);
94  void setTRGCNV(size_t timestep, double TRGCNV);
95  void setTRGMBE(size_t timestep, double TRGMBE);
96  void setTRGLCV(size_t timestep, double TRGLCV);
97  void setXXXTTE(size_t timestep, double XXXTTE);
98  void setXXXCNV(size_t timestep, double XXXCNV);
99  void setXXXMBE(size_t timestep, double XXXMBE);
100  void setXXXLCV(size_t timestep, double XXXLCV);
101  void setXXXWFL(size_t timestep, double XXXWFL);
102  void setTRGFIP(size_t timestep, double TRGFIP);
103  void setTRGSFT(size_t timestep, double TRGFIP);
104  void setTHIONX(size_t timestep, double THIONX);
105  void setTRWGHT(size_t timestep, int TRWGHT);
106  /* Record 3 */
107  int getNEWTMX(size_t timestep) const;
108  int getNEWTMN(size_t timestep) const;
109  int getLITMAX(size_t timestep) const;
110  int getLITMIN(size_t timestep) const;
111  int getMXWSIT(size_t timestep) const;
112  int getMXWPIT(size_t timestep) const;
113  double getDDPLIM(size_t timestep) const;
114  double getDDSLIM(size_t timestep) const;
115  double getTRGDPR(size_t timestep) const;
116  double getXXXDPR(size_t timestep) const;
117  bool getXXXDPRhasValue(size_t timestep) const;
118  void setNEWTMX(size_t timestep, int NEWTMX);
119  void setNEWTMN(size_t timestep, int NEWTMN);
120  void setLITMAX(size_t timestep, int LITMAX);
121  void setLITMIN(size_t timestep, int LITMIN);
122  void setMXWSIT(size_t timestep, int MXWSIT);
123  void setMXWPIT(size_t timestep, int MXWPIT);
124  void setDDPLIM(size_t timestep, double DDPLIM);
125  void setDDSLIM(size_t timestep, double DDSLIM);
126  void setTRGDPR(size_t timestep, double TRGDPR);
127  void setXXXDPR(size_t timestep, double XXXDPR);
128 
129 
130  private:
131  /* Record1 */
132  std::shared_ptr<DynamicState<double>> m_TSINIT;
133  std::shared_ptr<DynamicState<double>> m_TSMAXZ;
134  std::shared_ptr<DynamicState<double>> m_TSMINZ;
135  std::shared_ptr<DynamicState<double>> m_TSMCHP;
136  std::shared_ptr<DynamicState<double>> m_TSFMAX;
137  std::shared_ptr<DynamicState<double>> m_TSFMIN;
138  std::shared_ptr<DynamicState<double>> m_TSFCNV;
139  std::shared_ptr<DynamicState<double>> m_TFDIFF;
140  std::shared_ptr<DynamicState<double>> m_THRUPT;
141  std::shared_ptr<DynamicState<double>> m_TMAXWC;
142  std::shared_ptr<DynamicState<bool>> m_TMAXWC_has_value;
143  /* Record 2 */
144  std::shared_ptr<DynamicState<double>> m_TRGTTE;
145  std::shared_ptr<DynamicState<double>> m_TRGCNV;
146  std::shared_ptr<DynamicState<double>> m_TRGMBE;
147  std::shared_ptr<DynamicState<double>> m_TRGLCV;
148  std::shared_ptr<DynamicState<double>> m_XXXTTE;
149  std::shared_ptr<DynamicState<double>> m_XXXCNV;
150  std::shared_ptr<DynamicState<double>> m_XXXMBE;
151  std::shared_ptr<DynamicState<double>> m_XXXLCV;
152  std::shared_ptr<DynamicState<double>> m_XXXWFL;
153  std::shared_ptr<DynamicState<double>> m_TRGFIP;
154  std::shared_ptr<DynamicState<double>> m_TRGSFT;
155  std::shared_ptr<DynamicState<bool>> m_TRGSFT_has_value;
156  std::shared_ptr<DynamicState<double>> m_THIONX;
157  std::shared_ptr<DynamicState<int>> m_TRWGHT;
158  /* Record 3 */
159  std::shared_ptr<DynamicState<int>> m_NEWTMX;
160  std::shared_ptr<DynamicState<int>> m_NEWTMN;
161  std::shared_ptr<DynamicState<int>> m_LITMAX;
162  std::shared_ptr<DynamicState<int>> m_LITMIN;
163  std::shared_ptr<DynamicState<int>> m_MXWSIT;
164  std::shared_ptr<DynamicState<int>> m_MXWPIT;
165  std::shared_ptr<DynamicState<double>> m_DDPLIM;
166  std::shared_ptr<DynamicState<double>> m_DDSLIM;
167  std::shared_ptr<DynamicState<double>> m_TRGDPR;
168  std::shared_ptr<DynamicState<double>> m_XXXDPR;
169  std::shared_ptr<DynamicState<bool>> m_XXXDPR_has_value;
170  std::map<std::string, bool> m_ResetValue;
171 
172  double getDoubleValue(const std::string tuningItem, std::shared_ptr<DynamicState<double>> values, size_t timestep) const;
173  int getIntValue(const std::string tuningItem, std::shared_ptr<DynamicState<int>> values, size_t timestep) const;
174  bool getBoolValue(const std::string tuningItem, std::shared_ptr<DynamicState<bool>> values, size_t timestep) const;
175 
176  };
177 
178 
179  typedef std::shared_ptr<Tuning> TuningPtr;
180  typedef std::shared_ptr<const Tuning> TuningConstPtr;
181 
182 } //namespace Opm
183 
184 #endif
double getTFDIFF(size_t timestep) const
void setTFDIFF(size_t timestep, double TFDIFF)
std::shared_ptr< const TimeMap > TimeMapConstPtr
Definition: TimeMap.hpp:77
Definition: Deck.hpp:29
void setTRGSFT(size_t timestep, double TRGFIP)
void setMXWPIT(size_t timestep, int MXWPIT)
Definition: DynamicState.hpp:56
double getTRGFIP(size_t timestep) const
void setLITMIN(size_t timestep, int LITMIN)
int getMXWSIT(size_t timestep) const
void setTRGTTE(size_t timestep, double TRGTTE)
void setTSFMIN(size_t timestep, double TSFMIN)
double getXXXWFL(size_t timestep) const
void setTRWGHT(size_t timestep, int TRWGHT)
double getTMAXWC(size_t timestep) const
int getNEWTMN(size_t timestep) const
double getTSINIT(size_t timestep) const
double getXXXLCV(size_t timestep) const
void setDDPLIM(size_t timestep, double DDPLIM)
int getNEWTMX(size_t timestep) const
double getTRGDPR(size_t timestep) const
double getTRGSFT(size_t timestep) const
void setTHIONX(size_t timestep, double THIONX)
void setTSMINZ(size_t timestep, double TSMINZ)
double getTRGMBE(size_t timestep) const
void setXXXWFL(size_t timestep, double XXXWFL)
double getXXXDPR(size_t timestep) const
void setXXXMBE(size_t timestep, double XXXMBE)
void setTMAXWC(size_t timestep, double TMAXWC)
void setXXXLCV(size_t timestep, double XXXLCV)
Tuning(TimeMapConstPtr timemap)
int getLITMAX(size_t timestep) const
void setXXXDPR(size_t timestep, double XXXDPR)
void setTRGCNV(size_t timestep, double TRGCNV)
void setLITMAX(size_t timestep, int LITMAX)
void setTHRUPT(size_t timestep, double THRUPT)
double getTSMCHP(size_t timestep) const
void setTSMAXZ(size_t timestep, double TSMAXZ)
Definition: Tuning.hpp:29
bool getXXXDPRhasValue(size_t timestep) const
void setXXXTTE(size_t timestep, double XXXTTE)
double getTHIONX(size_t timestep) const
std::shared_ptr< Tuning > TuningPtr
Definition: Tuning.hpp:179
double getTSMINZ(size_t timestep) const
double getXXXTTE(size_t timestep) const
double getTSFMIN(size_t timestep) const
void setTRGMBE(size_t timestep, double TRGMBE)
double getTRGCNV(size_t timestep) const
void setTSMCHP(size_t timestep, double TSMCHP)
int getMXWPIT(size_t timestep) const
double getTSFMAX(size_t timestep) const
int getTRWGHT(size_t timestep) const
double getTSMAXZ(size_t timestep) const
bool getTMAXWChasValue(size_t timestep) const
void getTuningItemValue(const std::string &tuningItem, size_t timestep, double &value)
double getTRGTTE(size_t timestep) const
double getTRGLCV(size_t timestep) const
void setNEWTMX(size_t timestep, int NEWTMX)
double getDDPLIM(size_t timestep) const
void setMXWSIT(size_t timestep, int MXWSIT)
void setNEWTMN(size_t timestep, int NEWTMN)
bool getTRGSFThasValue(size_t timestep) const
void setDDSLIM(size_t timestep, double DDSLIM)
void setTSFCNV(size_t timestep, double TSFCNV)
void setTRGLCV(size_t timestep, double TRGLCV)
int getLITMIN(size_t timestep) const
double getTHRUPT(size_t timestep) const
void setTRGFIP(size_t timestep, double TRGFIP)
double getXXXMBE(size_t timestep) const
void setTRGDPR(size_t timestep, double TRGDPR)
void setXXXCNV(size_t timestep, double XXXCNV)
void setTuningInitialValue(const std::string tuningItem, double value, bool resetVector)
double getDDSLIM(size_t timestep) const
double getTSFCNV(size_t timestep) const
void setTSFMAX(size_t timestep, double TSFMAX)
std::shared_ptr< const Tuning > TuningConstPtr
Definition: Tuning.hpp:180
double getXXXCNV(size_t timestep) const
void setTSINIT(size_t timestep, double TSINIT)