custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp
Go to the documentation of this file.
1/*
2 Copyright 2016 SINTEF ICT, Applied Mathematics.
3 Copyright 2016 Statoil ASA.
4
5 This file is part of the Open Porous Media project (OPM).
6
7 OPM is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 OPM is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with OPM. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifndef OPM_SOLUTION_HEADER_INCLUDED
22#define OPM_SOLUTION_HEADER_INCLUDED
23
24
27#include <memory>
28#include <vector>
29
30
31namespace Opm
32{
33namespace FlowDiagnostics
34{
35
38 {
39 public:
42
45
47 Solution(const Solution& rhs);
48
51
52 // ------ Interface for querying of solution below ------
53
55 std::vector<CellSetID> startPoints() const;
56
58 const std::vector<double>& timeOfFlight() const;
59
61 CellSetValues timeOfFlight(const CellSetID& tracer) const;
62
68
69 // ------ Interface for modification of solution below ------
70
72 {
74 };
75
77 {
79 };
80
81 void assignGlobalToF(std::vector<double>&& global_tof);
82 void assign(const CellSetID& id, TimeOfFlight&& tof);
83 void assign(const CellSetID& id, TracerConcentration&& conc);
84
85 private:
86 class Impl;
87
88 explicit Solution(std::unique_ptr<Impl> pImpl);
89
90 std::unique_ptr<Impl> pImpl_;
91 };
92
93} // namespace FlowDiagnostics
94} // namespace Opm
95
96#endif // OPM_SOLUTION_HEADER_INCLUDED
Definition: CellSet.hpp:35
Results from diagnostics computations.
Definition: custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp:38
void assignGlobalToF(std::vector< double > &&global_tof)
Solution(Solution &&rhs)
Move constructor.
Solution(const Solution &rhs)
Copy constructor.
CellSetValues timeOfFlight(const CellSetID &tracer) const
Time-of-flight field restricted to single tracer region.
void assign(const CellSetID &id, TracerConcentration &&conc)
void assign(const CellSetID &id, TimeOfFlight &&tof)
Solution()
Default constructor.
const std::vector< double > & timeOfFlight() const
Time-of-flight field from all start points.
CellSetValues concentration(const CellSetID &tracer) const
std::vector< CellSetID > startPoints() const
Ids of stored tracer solutions.
std::map< int, double > CellSetValues
Definition: CellSetValues.hpp:29
Definition: A.hpp:4
Definition: custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp:72
CellSetValues data
Definition: custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp:73
Definition: custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp:77
CellSetValues data
Definition: custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp:78