My Project
ActionValue.hpp
1 #ifndef ACTION_VALUE_HPP
2 #define ACTION_VALUE_HPP
3 
4 #include <opm/parser/eclipse/EclipseState/Schedule/Action/ActionResult.hpp>
5 
6 enum TokenType {
7  number, // 0
8  ecl_expr, // 1
9  open_paren, // 2
10  close_paren, // 3
11  op_gt, // 4
12  op_ge, // 5
13  op_lt, // 6
14  op_le, // 7
15  op_eq, // 8
16  op_ne, // 9
17  op_and, // 10
18  op_or, // 11
19  end, // 12
20  error // 13
21 };
22 
23 enum class FuncType {
24  none,
25  time,
26  time_month,
27  region,
28  field,
29  group,
30  well,
31  well_segment,
32  well_connection,
33  Well_lgr,
34  aquifer,
35  block
36 };
37 
38 
39 
40 namespace Opm {
41 namespace Action {
42 
43 class Value {
44 public:
45  explicit Value(double value);
46  Value(const std::string& wname, double value);
47  Value() = default;
48 
49  Result eval_cmp(TokenType op, const Value& rhs) const;
50  void add_well(const std::string& well, double value);
51  double scalar() const;
52 
53 private:
54  Action::Result eval_cmp_wells(TokenType op, double rhs) const;
55 
56  double scalar_value;
57  double is_scalar = false;
58  std::vector<std::pair<std::string, double>> well_values;
59 };
60 
61 
62 }
63 }
64 #endif
Definition: ActionResult.hpp:99
Definition: ActionValue.hpp:43
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29