miscUtilitiesBlackoil.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2012 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_MISCUTILITIESBLACKOIL_HEADER_INCLUDED
21 #define OPM_MISCUTILITIESBLACKOIL_HEADER_INCLUDED
22 
23 #include <vector>
24 
25 struct Wells;
26 
27 namespace Opm
28 {
29 
30  class BlackoilPropertiesInterface;
31  class BlackoilState;
32  class WellState;
33 
34 
51  void computeInjectedProduced(const BlackoilPropertiesInterface& props,
52  const BlackoilState& state,
53  const std::vector<double>& transport_src,
54  const double dt,
55  double* injected,
56  double* produced);
57 
58 
67  const std::vector<int>& cells,
68  const std::vector<double>& p,
69  const std::vector<double>& z,
70  const std::vector<double>& s,
71  std::vector<double>& totmob);
72 
73 
83  const std::vector<int>& cells,
84  const std::vector<double>& p,
85  const std::vector<double>& z,
86  const std::vector<double>& s,
87  std::vector<double>& totmob,
88  std::vector<double>& omega);
89 
90 
100  const std::vector<int>& cells,
101  const std::vector<double>& p,
102  const std::vector<double>& T,
103  const std::vector<double>& z,
104  const std::vector<double>& s,
105  std::vector<double>& pmobc);
106 
107 
117  const std::vector<int>& cells,
118  const std::vector<double>& p,
119  const std::vector<double>& T,
120  const std::vector<double>& z,
121  const std::vector<double>& s,
122  std::vector<double>& fractional_flows);
123 
124 
137  void computeSurfacevol(const int n,
138  const int np,
139  const double* A,
140  const double* saturation,
141  double* surfacevol);
142 
144  void computeSaturation(const BlackoilPropertiesInterface& props,
145  BlackoilState& state);
146 
157  void computeTransportSource(const BlackoilPropertiesInterface& props,
158  const Wells* wells,
159  const WellState& well_state,
160  std::vector<double>& transport_src);
161 
162 } // namespace Opm
163 
164 #endif // OPM_MISCUTILITIESBLACKOIL_HEADER_INCLUDED
Definition: wells.h:50
Definition: AnisotropicEikonal.hpp:43
void computePhaseMobilities(const Opm::IncompPropertiesInterface &props, const std::vector< int > &cells, const std::vector< double > &s, std::vector< double > &pmobc)
Computes phase mobilities for a set of saturation values.
void computeSurfacevol(const int n, const int np, const double *A, const double *saturation, double *surfacevol)
void computeTotalMobilityOmega(const Opm::IncompPropertiesInterface &props, const std::vector< int > &cells, const std::vector< double > &s, std::vector< double > &totmob, std::vector< double > &omega)
Computes total mobility and omega for a set of saturation values.
Definition: BlackoilPropertiesInterface.hpp:37
void computeTotalMobility(const Opm::IncompPropertiesInterface &props, const std::vector< int > &cells, const std::vector< double > &s, std::vector< double > &totmob)
Computes total mobility for a set of saturation values.
void computeFractionalFlow(const Opm::IncompPropertiesInterface &props, const std::vector< int > &cells, const std::vector< double > &saturations, std::vector< double > &fractional_flows)
void computeSaturation(const BlackoilPropertiesInterface &props, BlackoilState &state)
Computes saturation from surface volume densities.
void computeTransportSource(const UnstructuredGrid &grid, const std::vector< double > &src, const std::vector< double > &faceflux, const double inflow_frac, const Wells *wells, const std::vector< double > &well_perfrates, std::vector< double > &transport_src)
void computeInjectedProduced(const IncompPropertiesInterface &props, const std::vector< double > &s, const std::vector< double > &src, const double dt, double *injected, double *produced)
Computes injected and produced volumes of all phases. Note 1: assumes that only the first phase is in...