opm-simulators
WellTracerRate.hpp
1 // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 // vi: set et ts=4 sw=4 sts=4:
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 2 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  Consult the COPYING file in the top-level source directory of this
20  module for the precise wording of the license and the list of
21  copyright holders.
22 */
23 #ifndef OPM_WELL_TRACER_RATE_HPP
24 #define OPM_WELL_TRACER_RATE_HPP
25 
26 #include <string>
27 #include <unordered_map>
28 
29 namespace Opm {
30 
31 template<class Scalar>
33 {
34  std::string name{};
35  Scalar rate{};
36 
37  WellTracerRate() = default;
38 
39  WellTracerRate(const std::string& n, const Scalar r)
40  : name(n), rate(r)
41  {}
42 
43  template<class Serializer>
44  void serializeOp(Serializer& serializer)
45  {
46  serializer(name);
47  serializer(rate);
48  }
49 
50  bool operator==(const WellTracerRate& that) const
51  {
52  return
53  this->name == that.name
54  && this->rate == that.rate;
55  }
56 };
57 
58 template<class Scalar>
60 {
61  std::string name{};
62  std::unordered_map<int,Scalar> rate{};
63 
64  MSWellTracerRate() = default;
65 
66  MSWellTracerRate(const std::string& n)
67  : name(n)
68  {}
69 
70  template<class Serializer>
71  void serializeOp(Serializer& serializer)
72  {
73  serializer(name);
74  serializer(rate);
75  }
76 
77  bool operator==(const MSWellTracerRate& that) const
78  {
79  return
80  this->name == that.name
81  && this->rate == that.rate;
82  }
83 };
84 
85 } // namespace Opm
86 
87 #endif // OPM_WELL_TRACER_RATE_HPP
Definition: WellTracerRate.hpp:32
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Definition: WellTracerRate.hpp:59