Toolbox.hpp
Go to the documentation of this file.
1/*
2 Copyright 2016 Statoil ASA.
3 Copyright 2016 SINTEF ICT, Applied Mathematics.
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_FLOWDIAGNOSTICS_TOOLBOX_HEADER_INCLUDED
22#define OPM_FLOWDIAGNOSTICS_TOOLBOX_HEADER_INCLUDED
23
29
30#include <memory>
31#include <vector>
32
33namespace Opm
34{
35namespace FlowDiagnostics
36{
37
39 class Toolbox
40 {
41 public:
43 explicit Toolbox(const ConnectivityGraph& connectivity);
44
47
50
53
55 void assignPoreVolume(const std::vector<double>& pv);
56
59
67 void assignInflowFlux(const std::map<CellSetID, CellSetValues>& inflow_flux);
68
69 struct Forward
70 {
71 const Solution fd;
72 };
73
74 struct Reverse
75 {
76 const Solution fd;
77 };
78
93 Forward computeInjectionDiagnostics(const std::vector<CellSet>& start_sets);
94
109 Reverse computeProductionDiagnostics(const std::vector<CellSet>& start_sets);
110
111 private:
112 class Impl;
113
114 std::unique_ptr<Impl> pImpl_;
115 };
116
117} // namespace FlowDiagnostics
118} // namespace Opm
119
120#endif // OPM_FLOWDIAGNOSTICS_TOOLBOX_HEADER_INCLUDED
Definition: ConnectionValues.hpp:34
Definition: ConnectivityGraph.hpp:31
Results from diagnostics computations.
Definition: custom-opm-flowdiagnostics/opm-flowdiagnostics/opm/flowdiagnostics/Solution.hpp:38
Toolbox for running flow diagnostics.
Definition: Toolbox.hpp:40
void assignConnectionFlux(const ConnectionValues &flux)
Assign fluxes associated with each connection.
Forward computeInjectionDiagnostics(const std::vector< CellSet > &start_sets)
Toolbox(const ConnectivityGraph &connectivity)
Construct from known neighbourship relation.
Reverse computeProductionDiagnostics(const std::vector< CellSet > &start_sets)
void assignPoreVolume(const std::vector< double > &pv)
Assign pore volumes associated with each active cell.
Toolbox & operator=(Toolbox &&rhs)
Move assignment.
void assignInflowFlux(const std::map< CellSetID, CellSetValues > &inflow_flux)
Toolbox(Toolbox &&rhs)
Move constructor.
constexpr const double flux
Definition: custom-opm-common/opm-common/opm/parser/eclipse/Units/Units.hpp:183
Definition: A.hpp:4
Definition: Toolbox.hpp:70
const Solution fd
Definition: Toolbox.hpp:71
Definition: Toolbox.hpp:75
const Solution fd
Definition: Toolbox.hpp:76