20#ifndef OPM_GROUP_SATELLITE_INJECTION_HPP_INCLUDED
21#define OPM_GROUP_SATELLITE_INJECTION_HPP_INCLUDED
23#include <opm/input/eclipse/EclipseState/Phase.hpp>
63 const std::optional<double>&
surface()
const
65 return this->surface_;
81 return this->calorific_;
96 return (this->surface_ == that.surface_)
97 && (this->resv_ == that.resv_)
98 && (this->calorific_ == that.calorific_)
107 template <
class Serializer>
110 serializer(this->surface_);
111 serializer(this->resv_);
112 serializer(this->calorific_);
120 std::optional<double> surface_{};
126 std::optional<double> resv_{};
132 std::optional<double> calorific_{};
136 using RateIx = std::vector<Rate>::size_type;
169 const std::string&
name()
const {
return this->group_; }
178 std::optional<RateIx>
rateIndex(
const Phase phase)
const;
188 return this->rates_[i];
205 template <
class Serializer>
208 serializer(this->group_);
209 serializer(this->i_);
210 serializer(this->rates_);
218 std::string group_{};
221 std::map<Phase, RateIx> i_{};
224 std::vector<Rate> rates_{};
Satellite injection rates for a single phase.
Definition GroupSatelliteInjection.hpp:37
const std::optional< double > & reservoir() const
Reservoir injection rate for this phase.
Definition GroupSatelliteInjection.hpp:71
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition GroupSatelliteInjection.hpp:108
const std::optional< double > & calorific() const
Mean calorific value of injected gas.
Definition GroupSatelliteInjection.hpp:79
bool operator==(const Rate &that) const
Equality predicate.
Definition GroupSatelliteInjection.hpp:94
const std::optional< double > & surface() const
Surface injection rate for this phase.
Definition GroupSatelliteInjection.hpp:63
static Rate serializationTestObject()
Create a serialisation test object.
Definition GroupSatelliteInjection.cpp:31
Group level satellite production.
Definition GroupSatelliteInjection.hpp:33
Rate & rate(const Phase phase)
Read/write access to injection rate object for particular phase.
Definition GroupSatelliteInjection.cpp:75
bool operator==(const GroupSatelliteInjection &that) const
Equality predicate.
Definition GroupSatelliteInjection.cpp:99
const std::string & name() const
Group name.
Definition GroupSatelliteInjection.hpp:169
GroupSatelliteInjection()=default
Default constructor.
static GroupSatelliteInjection serializationTestObject()
Create a serialisation test object.
Definition GroupSatelliteInjection.cpp:64
std::vector< Rate >::size_type RateIx
Index type for looking up phase rate objects.
Definition GroupSatelliteInjection.hpp:136
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition GroupSatelliteInjection.hpp:206
const Rate & operator[](const RateIx i) const
Read only satellite injection rates.
Definition GroupSatelliteInjection.hpp:186
std::optional< RateIx > rateIndex(const Phase phase) const
Compute lookup index for particular phase.
Definition GroupSatelliteInjection.cpp:88
Class for (de-)serializing.
Definition Serializer.hpp:94
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30