FlowDiagnostics.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2015 SINTEF ICT, Applied Mathematics.
3 
4  This file is part of the Open Porous Media project (OPM).
5 
6  OPM is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  OPM is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with OPM. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef OPM_FLOWDIAGNOSTICS_HEADER_INCLUDED
21 #define OPM_FLOWDIAGNOSTICS_HEADER_INCLUDED
22 
23 
24 #include <vector>
25 #include <utility>
26 #include <tuple>
27 
28 struct Wells;
29 
30 namespace Opm
31 {
32 
45  std::pair<std::vector<double>, std::vector<double>>
46  computeFandPhi(const std::vector<double>& pv,
47  const std::vector<double>& ftof,
48  const std::vector<double>& rtof);
49 
50 
67  double computeLorenz(const std::vector<double>& flowcap,
68  const std::vector<double>& storagecap);
69 
70 
80  std::pair<std::vector<double>, std::vector<double>>
81  computeSweep(const std::vector<double>& flowcap,
82  const std::vector<double>& storagecap);
83 
84 
95  std::vector<std::tuple<int, int, double>>
96  computeWellPairs(const Wells& wells,
97  const std::vector<double>& porevol,
98  const std::vector<double>& ftracer,
99  const std::vector<double>& btracer);
100 
101 } // namespace Opm
102 
103 #endif // OPM_FLOWDIAGNOSTICS_HEADER_INCLUDED
Definition: wells.h:50
Definition: AnisotropicEikonal.hpp:43
double computeLorenz(const std::vector< double > &flowcap, const std::vector< double > &storagecap)
Compute the Lorenz coefficient based on the F-Phi curve.
std::pair< std::vector< double >, std::vector< double > > computeFandPhi(const std::vector< double > &pv, const std::vector< double > &ftof, const std::vector< double > &rtof)
Compute flow-capacity/storage-capacity based on time-of-flight.
std::vector< std::tuple< int, int, double > > computeWellPairs(const Wells &wells, const std::vector< double > &porevol, const std::vector< double > &ftracer, const std::vector< double > &btracer)
Compute volumes associated with injector-producer pairs.
std::pair< std::vector< double >, std::vector< double > > computeSweep(const std::vector< double > &flowcap, const std::vector< double > &storagecap)
Compute sweep efficiency versus dimensionless time (PVI).