20#ifndef OPM_TRACER_CONFIG_HPP
21#define OPM_TRACER_CONFIG_HPP
23#include <opm/input/eclipse/EclipseState/Phase.hpp>
37 std::string unit_string;
38 Phase phase = Phase::OIL;
39 std::optional<std::vector<double>> free_concentration;
40 std::optional<std::vector<double>> solution_concentration;
41 std::optional<TracerVdTable> free_tvdp;
42 std::optional<TracerVdTable> solution_tvdp;
43 std::string fname()
const {
44 return this->name +
"F";
49 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
50 Phase phase_, std::vector<double> free_concentration_)
52 , unit_string(unit_string_)
54 , free_concentration(std::move(free_concentration_))
57 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
58 Phase phase_, std::vector<double> free_concentration_, std::vector<double> solution_concentration_)
60 , unit_string(unit_string_)
62 , free_concentration(std::move(free_concentration_))
63 , solution_concentration(std::move(solution_concentration_))
66 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
69 , unit_string(unit_string_)
71 , free_tvdp(std::move(free_tvdp_))
74 TracerEntry(
const std::string& name_,
const std::string& unit_string_,
77 , unit_string(unit_string_)
79 , free_tvdp(std::move(free_tvdp_))
80 , solution_tvdp(std::move(solution_tvdp_))
83 TracerEntry(
const std::string& name_,
const std::string& unit_string_, Phase phase_)
85 , unit_string(unit_string_)
90 return this->name == data.name &&
91 this->unit_string == data.unit_string &&
92 this->phase == data.phase &&
93 this->free_concentration == data.free_concentration &&
94 this->solution_concentration == data.solution_concentration &&
95 this->free_tvdp == data.free_tvdp &&
96 this->solution_tvdp == data.solution_tvdp;
99 template<
class Serializer>
103 serializer(unit_string);
105 serializer(free_concentration);
106 serializer(solution_concentration);
107 serializer(this->free_tvdp);
108 serializer(this->solution_tvdp);
120 const std::vector<TracerEntry>::const_iterator begin()
const;
121 const std::vector<TracerEntry>::const_iterator end()
const;
122 const TracerEntry& operator[](
const std::string& name)
const;
123 const TracerEntry& operator[](std::size_t index)
const;
125 template<
class Serializer>
133 std::string get_unit_string(
const UnitSystem& unit_system,
const std::string & tracer_kw)
const;
136 std::vector<TracerEntry> tracers;
A class that contains tracer concentration vs depth table.
Class for (de-)serializing.
Definition: Serializer.hpp:84
Definition: TracerConfig.hpp:33
A class that contains tracer concentration vs depth table.
Definition: TracerVdTable.hpp:35
Definition: UnitSystem.hpp:33
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Definition: TracerConfig.hpp:35