Loading...
Searching...
No Matches
SatfuncPropertyInitializers.hpp
/*
Copyright 2014 Andreas Lauser
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef ECLIPSE_SATFUNCPROPERTY_INITIALIZERS_HPP
#define ECLIPSE_SATFUNCPROPERTY_INITIALIZERS_HPP
#include <memory>
#include <string>
#include <vector>
namespace Opm {
class Phases;
class TableManager;
}
namespace Opm { namespace satfunc {
struct RawTableEndPoints
{
struct {
std::vector<double> gas;
std::vector<double> water;
} connate;
struct {
std::vector<double> oil_in_gas;
std::vector<double> oil_in_water;
std::vector<double> gas;
std::vector<double> water;
} critical;
struct {
std::vector<double> gas;
std::vector<double> water;
} maximum;
bool operator==(const RawTableEndPoints& other) const {
return this->connate.gas == other.connate.gas &&
this->connate.water == other.connate.water &&
this->critical.gas == other.critical.gas &&
this->critical.water == other.critical.water &&
this->maximum.gas == other.maximum.gas &&
this->maximum.water == other.maximum.water;
}
};
struct RawFunctionValues
{
struct {
std::vector<double> max;
std::vector<double> rg;
std::vector<double> rw;
} kro;
struct {
std::vector<double> max;
std::vector<double> r;
} krg;
struct {
std::vector<double> max;
std::vector<double> r;
} krw;
struct {
std::vector<double> g;
std::vector<double> w;
} pc;
};
RawTableEndPoints
getRawTableEndpoints(const Opm::TableManager& tm,
const Opm::Phases& phases,
const double tolcrit);
RawFunctionValues
getRawFunctionValues(const Opm::TableManager& tm,
const Opm::Phases& phases,
const RawTableEndPoints& ep);
std::vector<double> init(const std::string& kewyord,
const TableManager& tables,
const Phases& phases,
const RawTableEndPoints& ep,
const std::vector<double>& cell_depth,
const std::vector<int>& num,
const std::vector<int>& endnum);
}} // namespace Opm::satfunc
#endif // ECLIPSE_SATFUNCPROPERTY_INITIALIZERS_HPP
Opm::Phases
Definition Runspec.hpp:46
Opm::TableManager
Definition TableManager.hpp:66
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Opm::satfunc::RawFunctionValues
Collection of unscaled/raw saturation function value range endpoints extracted directly from tables o...
Definition SatfuncPropertyInitializers.hpp:93
Opm::satfunc::RawFunctionValues::r
std::vector< double > r
Relative permeability of gas at critical saturation of displacing phase.
Definition SatfuncPropertyInitializers.hpp:124
Opm::satfunc::RawFunctionValues::w
std::vector< double > w
Maximum oil/eater capillary pressure value (Po - Pw).
Definition SatfuncPropertyInitializers.hpp:150
Opm::satfunc::RawFunctionValues::rg
std::vector< double > rg
Relative permeability of oil at critical saturation of displacing phase in oil/gas two-phase system.
Definition SatfuncPropertyInitializers.hpp:105
Opm::satfunc::RawFunctionValues::kro
struct Opm::satfunc::RawFunctionValues::@4 kro
Function values for relative permeability of oil.
Opm::satfunc::RawFunctionValues::pc
struct Opm::satfunc::RawFunctionValues::@7 pc
Maximum capillary function values.
Opm::satfunc::RawFunctionValues::max
std::vector< double > max
Maximum relative permeability value of oil in both oil/gas and oil/water two-phase systems.
Definition SatfuncPropertyInitializers.hpp:99
Opm::satfunc::RawFunctionValues::krg
struct Opm::satfunc::RawFunctionValues::@5 krg
Function values for relative permeability of gas.
Opm::satfunc::RawFunctionValues::rw
std::vector< double > rw
Relative permeability of oil at critical saturation of displacing phase in oil/water two-phase system...
Definition SatfuncPropertyInitializers.hpp:111
Opm::satfunc::RawFunctionValues::krw
struct Opm::satfunc::RawFunctionValues::@6 krw
Function values for relative permeability of gas.
Opm::satfunc::RawFunctionValues::g
std::vector< double > g
Maximum gas/oil capillary pressure value (Pg - Po).
Definition SatfuncPropertyInitializers.hpp:145
Opm::satfunc::RawTableEndPoints
Collection of unscaled/raw saturation range endpoints extracted directly from tables of tabulated sat...
Definition SatfuncPropertyInitializers.hpp:36
Opm::satfunc::RawTableEndPoints::gas
std::vector< double > gas
Connate gas saturation.
Definition SatfuncPropertyInitializers.hpp:41
Opm::satfunc::RawTableEndPoints::critical
struct Opm::satfunc::RawTableEndPoints::@2 critical
Critical saturation endpoints.
Opm::satfunc::RawTableEndPoints::maximum
struct Opm::satfunc::RawTableEndPoints::@3 maximum
Maximum saturation endpoints.
Opm::satfunc::RawTableEndPoints::oil_in_water
std::vector< double > oil_in_water
Critical saturation of oil in oil/water two-phase system.
Definition SatfuncPropertyInitializers.hpp:58
Opm::satfunc::RawTableEndPoints::water
std::vector< double > water
Connate water saturation.
Definition SatfuncPropertyInitializers.hpp:45
Opm::satfunc::RawTableEndPoints::oil_in_gas
std::vector< double > oil_in_gas
Critical saturation of oil in oil/gas two-phase system.
Definition SatfuncPropertyInitializers.hpp:53
Opm::satfunc::RawTableEndPoints::connate
struct Opm::satfunc::RawTableEndPoints::@1 connate
Connate saturation endpoints.