20 #ifndef OPM_TRACER_CONFIG_HPP
21 #define OPM_TRACER_CONFIG_HPP
23 #include <opm/input/eclipse/EclipseState/Runspec.hpp>
35 std::string unit_string;
36 Phase phase = Phase::OIL;
37 std::optional<std::vector<double>> free_concentration;
38 std::optional<std::vector<double>> solution_concentration;
39 std::optional<TracerVdTable> free_tvdp;
40 std::optional<TracerVdTable> solution_tvdp;
41 std::string fname()
const {
42 return this->name +
"F";
47 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
48 Phase phase_, std::vector<double> free_concentration_)
50 , unit_string(unit_string_)
52 , free_concentration(std::move(free_concentration_))
55 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
56 Phase phase_, std::vector<double> free_concentration_, std::vector<double> solution_concentration_)
58 , unit_string(unit_string_)
60 , free_concentration(std::move(free_concentration_))
61 , solution_concentration(std::move(solution_concentration_))
64 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
67 , unit_string(unit_string_)
69 , free_tvdp(std::move(free_tvdp_))
72 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
75 , unit_string(unit_string_)
77 , free_tvdp(std::move(free_tvdp_))
78 , solution_tvdp(std::move(solution_tvdp_))
81 TracerEntry(
const std::string& name_,
const std::string& unit_string_, Phase phase_)
83 , unit_string(unit_string_)
88 return this->name == data.name &&
89 this->unit_string == data.unit_string &&
90 this->phase == data.phase &&
91 this->free_concentration == data.free_concentration &&
92 this->solution_concentration == data.solution_concentration &&
93 this->free_tvdp == data.free_tvdp &&
94 this->solution_tvdp == data.solution_tvdp;
97 template<
class Serializer>
101 serializer(unit_string);
103 serializer(free_concentration);
104 serializer(solution_concentration);
105 serializer(this->free_tvdp);
106 serializer(this->solution_tvdp);
118 const std::vector<TracerEntry>::const_iterator begin()
const;
119 const std::vector<TracerEntry>::const_iterator end()
const;
120 const TracerEntry& operator[](
const std::string& name)
const;
121 const TracerEntry& operator[](std::size_t index)
const;
123 template<
class Serializer>
126 serializer.vector(tracers);
131 std::string get_unit_string(
const UnitSystem& unit_system,
const std::string & tracer_kw)
const;
134 std::vector<TracerEntry> tracers;
A class that contains tracer concentration vs depth table.
Definition: Serializer.hpp:38
Definition: TracerConfig.hpp:31
A class that contains tracer concentration vs depth table.
Definition: TracerVdTable.hpp:35
Definition: UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: TracerConfig.hpp:33