FluidStateBlackoil.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2010 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_FLUIDSTATEBLACKOIL_HEADER_INCLUDED
21 #define OPM_FLUIDSTATEBLACKOIL_HEADER_INCLUDED
22 
23 
24 #include "BlackoilDefs.hpp"
25 
26 
27 namespace Opm
28 {
33  {
41  PhaseToCompMatrix phase_to_comp_; // RB^{-1} in Fortran ordering
48  PhaseJacobian drelperm_;
50  PhaseJacobian dmobility_;
51  };
52 
53 
57  struct AllFluidStates : public BlackoilDefs
58  {
59  // Canonical state variables.
60  std::vector<CompVec> surface_volume_density; // z
61  std::vector<PhaseVec> phase_pressure; // p
62 
63  // Variables from PVT functions.
64  std::vector<PhaseVec> formation_volume_factor; // B
65  std::vector<PhaseVec> formation_volume_factor_deriv; // dB/dp
66  std::vector<PhaseVec> solution_factor; // R
67  std::vector<PhaseVec> solution_factor_deriv; // dR/dp
68  std::vector<PhaseVec> viscosity; // mu
69 
70  // Variables computed from PVT data.
71  // The A matrices are all in Fortran order (or, equivalently,
72  // we store the transposes).
73  std::vector<PhaseToCompMatrix> state_matrix; // A' = (RB^{-1})'
74  std::vector<PhaseVec> phase_volume_density; // u
75  std::vector<Scalar> total_phase_volume_density; // sum(u)
76  std::vector<PhaseVec> saturation; // s = u/sum(u)
77  std::vector<PhaseVec> phase_compressibility; // c
78  std::vector<Scalar> total_compressibility; // cT
79  std::vector<Scalar> experimental_term; // ex = sum(Ai*dA*Ai*z)
80 
81  // Variables computed from saturation.
82  std::vector<PhaseVec> relperm; // kr
83  std::vector<PhaseJacobian> relperm_deriv; // dkr/ds
84  std::vector<PhaseVec> mobility; // lambda
85  std::vector<PhaseJacobian> mobility_deriv; // dlambda/ds
86  };
87 
88 } // end namespace Opm
89 
90 
91 #endif // OPM_FLUIDSTATEBLACKOIL_HEADER_INCLUDED
Scalar experimental_term_
Definition: FluidStateBlackoil.hpp:45
PhaseVec phase_compressibility_
Definition: FluidStateBlackoil.hpp:43
std::vector< PhaseVec > solution_factor_deriv
Definition: FluidStateBlackoil.hpp:67
std::vector< Scalar > total_compressibility
Definition: FluidStateBlackoil.hpp:78
std::vector< PhaseVec > mobility
Definition: FluidStateBlackoil.hpp:84
std::vector< Scalar > experimental_term
Definition: FluidStateBlackoil.hpp:79
PhaseVec mobility_
Definition: FluidStateBlackoil.hpp:49
Multiple fluid states for a black oil model.
Definition: FluidStateBlackoil.hpp:57
Definition: BlackoilFluid.hpp:31
Dune::FieldVector< Scalar, numComponents > CompVec
Definition: BlackoilDefs.hpp:40
Scalar temperature_
Definition: FluidStateBlackoil.hpp:34
std::vector< PhaseVec > formation_volume_factor_deriv
Definition: FluidStateBlackoil.hpp:65
std::vector< PhaseVec > phase_volume_density
Definition: FluidStateBlackoil.hpp:74
std::vector< PhaseVec > phase_pressure
Definition: FluidStateBlackoil.hpp:61
std::vector< PhaseJacobian > relperm_deriv
Definition: FluidStateBlackoil.hpp:83
PhaseVec phase_pressure_
Definition: FluidStateBlackoil.hpp:36
Dune::FieldVector< Scalar, numPhases > PhaseVec
Definition: BlackoilDefs.hpp:41
double Scalar
Definition: BlackoilDefs.hpp:39
Scalar total_compressibility_
Definition: FluidStateBlackoil.hpp:44
PhaseToCompMatrix phase_to_comp_
Definition: FluidStateBlackoil.hpp:41
std::vector< PhaseVec > relperm
Definition: FluidStateBlackoil.hpp:82
std::vector< PhaseVec > saturation
Definition: FluidStateBlackoil.hpp:76
std::vector< PhaseVec > phase_compressibility
Definition: FluidStateBlackoil.hpp:77
PhaseVec solution_factor_
Definition: FluidStateBlackoil.hpp:40
std::vector< PhaseVec > viscosity
Definition: FluidStateBlackoil.hpp:68
std::vector< PhaseVec > formation_volume_factor
Definition: FluidStateBlackoil.hpp:64
PhaseVec relperm_
Definition: FluidStateBlackoil.hpp:47
PhaseJacobian dmobility_
Definition: FluidStateBlackoil.hpp:50
PhaseVec saturation_
Definition: FluidStateBlackoil.hpp:42
PhaseVec formation_volume_factor_
Definition: FluidStateBlackoil.hpp:39
std::vector< PhaseJacobian > mobility_deriv
Definition: FluidStateBlackoil.hpp:85
Definition: BlackoilDefs.hpp:30
std::vector< PhaseVec > solution_factor
Definition: FluidStateBlackoil.hpp:66
PhaseVec viscosity_
Definition: FluidStateBlackoil.hpp:46
std::vector< PhaseToCompMatrix > state_matrix
Definition: FluidStateBlackoil.hpp:73
Scalar total_phase_volume_density_
Definition: FluidStateBlackoil.hpp:38
std::vector< Scalar > total_phase_volume_density
Definition: FluidStateBlackoil.hpp:75
CompVec surface_volume_
Definition: FluidStateBlackoil.hpp:35
std::vector< CompVec > surface_volume_density
Definition: FluidStateBlackoil.hpp:60
PhaseJacobian drelperm_
Definition: FluidStateBlackoil.hpp:48
Fluid state for a black oil model.
Definition: FluidStateBlackoil.hpp:32
PhaseVec phase_volume_density_
Definition: FluidStateBlackoil.hpp:37