Loading...
Searching...
No Matches
Tables.hpp
/*
Copyright 2019 Equinor.
Copyright 2017 Statoil ASA.
Copyright 2016 Statoil ASA.
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 OUTPUT_TABLES_HPP
#define OUTPUT_TABLES_HPP
#include <tuple>
#include <vector>
namespace Opm {
struct DensityTable;
class EclipseState;
class UnitSystem;
} // namespace Opm
namespace Opm {
class Tables
{
public:
explicit Tables(const UnitSystem& units);
void addDensity(const DensityTable& density);
void addPVTTables(const EclipseState& es);
void addSatFunc(const EclipseState& es);
const std::vector<int>& tabdims() const;
const std::vector<double>& tab() const;
private:
const UnitSystem& units_;
std::vector<int> tabdims_;
std::vector<double> data_;
void addData(const std::size_t offset_index,
const std::vector<double>& new_data);
void addSatFuncGas(const std::tuple<int, int, std::vector<double>>& sgfn);
void addSatFuncOil(const std::tuple<int, int, std::vector<double>>& sofn);
void addSatFuncWater(const std::tuple<int, int, std::vector<double>>& swfn);
void addGasPVTTables(const EclipseState& es);
void addOilPVTTables(const EclipseState& es);
void addWaterPVTTables(const EclipseState& es);
};
} // namespace Opm
#endif // OUTPUT_TABLES_HPP
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30