GConSump.hpp
Go to the documentation of this file.
1/*
2 Copyright 2019 Equinor 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 GCONSUMP_H
21#define GCONSUMP_H
22
23#include <map>
24#include <string>
25
29
30namespace Opm {
31
32 class GConSump {
33 public:
40
41 bool operator==(const GCONSUMPGroup& data) const {
42 return consumption_rate == data.consumption_rate &&
43 import_rate == data.import_rate &&
44 network_node == data.network_node &&
45 udq_undefined == data.udq_undefined &&
46 unit_system == data.unit_system;
47 }
48
49 template<class Serializer>
50 void serializeOp(Serializer& serializer)
51 {
52 consumption_rate.serializeOp(serializer);
53 import_rate.serializeOp(serializer);
54 serializer(network_node);
55 serializer(udq_undefined);
56 unit_system.serializeOp(serializer);
57 }
58 };
59
64 };
65
67
68 bool has(const std::string& name) const;
69 const GCONSUMPGroup& get(const std::string& name) const;
70 const GCONSUMPGroupProp get(const std::string& name, const SummaryState& st) const;
71 void add(const std::string& name, const UDAValue& consumption_rate, const UDAValue& import_rate, const std::string network_node, double udq_undefined_arg, const UnitSystem& unit_system);
72 size_t size() const;
73
74 bool operator==(const GConSump& data) const;
75
76 template<class Serializer>
77 void serializeOp(Serializer& serializer)
78 {
79 serializer.map(groups);
80 }
81
82 private:
83 std::map<std::string, GCONSUMPGroup> groups;
84 };
85
86}
87
88#endif
const char *const name
Definition: cJSON.h:258
const char *const string
Definition: cJSON.h:170
Definition: GConSump.hpp:32
void serializeOp(Serializer &serializer)
Definition: GConSump.hpp:77
static GConSump serializeObject()
const GCONSUMPGroupProp get(const std::string &name, const SummaryState &st) const
const GCONSUMPGroup & get(const std::string &name) const
void add(const std::string &name, const UDAValue &consumption_rate, const UDAValue &import_rate, const std::string network_node, double udq_undefined_arg, const UnitSystem &unit_system)
size_t size() const
bool operator==(const GConSump &data) const
bool has(const std::string &name) const
Definition: Serializer.hpp:38
Definition: SummaryState.hpp:65
Definition: UDAValue.hpp:32
void serializeOp(Serializer &serializer)
Definition: UDAValue.hpp:72
Definition: UnitSystem.hpp:32
void serializeOp(Serializer &serializer)
Definition: UnitSystem.hpp:121
Definition: A.hpp:4
static std::string data()
Definition: exprtk.hpp:40022
Definition: GConSump.hpp:34
UDAValue import_rate
Definition: GConSump.hpp:36
void serializeOp(Serializer &serializer)
Definition: GConSump.hpp:50
UDAValue consumption_rate
Definition: GConSump.hpp:35
double udq_undefined
Definition: GConSump.hpp:38
UnitSystem unit_system
Definition: GConSump.hpp:39
bool operator==(const GCONSUMPGroup &data) const
Definition: GConSump.hpp:41
std::string network_node
Definition: GConSump.hpp:37
Definition: GConSump.hpp:60
double consumption_rate
Definition: GConSump.hpp:61
double import_rate
Definition: GConSump.hpp:62
std::string network_node
Definition: GConSump.hpp:63