Merge pull request #1806 from goncalvesmachadoc/salt
finalizeSaltTables
This commit is contained in:
38
opm/parser/eclipse/EclipseState/Tables/PermfactTable.hpp
Normal file
38
opm/parser/eclipse/EclipseState/Tables/PermfactTable.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
Copyright (C) 2020 by Equinor.
|
||||
Copyright (C) 2020 by TNO.
|
||||
|
||||
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 OPM_PARSER_PERMFACT_TABLE_HPP
|
||||
#define OPM_PARSER_PERMFACT_TABLE_HPP
|
||||
|
||||
#include "SimpleTable.hpp"
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckItem;
|
||||
|
||||
class PermfactTable : public SimpleTable {
|
||||
public:
|
||||
PermfactTable( const DeckItem& item );
|
||||
|
||||
const TableColumn& getPorosityChangeColumn() const;
|
||||
const TableColumn& getPermeabilityMultiplierColumn() const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
40
opm/parser/eclipse/EclipseState/Tables/PvtgwTable.hpp
Normal file
40
opm/parser/eclipse/EclipseState/Tables/PvtgwTable.hpp
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright (C) 2020 by Equinor
|
||||
Copyright (C) 2020 by TNO
|
||||
|
||||
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 OPM_PARSER_PVTGW_TABLE_HPP
|
||||
#define OPM_PARSER_PVTGW_TABLE_HPP
|
||||
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtxTable.hpp>
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckKeyword;
|
||||
|
||||
class PvtgwTable : public PvtxTable {
|
||||
public:
|
||||
PvtgwTable() = default;
|
||||
PvtgwTable( const DeckKeyword& keyword, size_t tableIdx);
|
||||
|
||||
static PvtgwTable serializeObject();
|
||||
|
||||
bool operator==(const PvtgwTable& data) const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
40
opm/parser/eclipse/EclipseState/Tables/PvtgwoTable.hpp
Normal file
40
opm/parser/eclipse/EclipseState/Tables/PvtgwoTable.hpp
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright (C) 2020 by Equinor
|
||||
Copyright (C) 2020 by TNO
|
||||
|
||||
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 OPM_PARSER_PVTGWO_TABLE_HPP
|
||||
#define OPM_PARSER_PVTGWO_TABLE_HPP
|
||||
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtxTable.hpp>
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckKeyword;
|
||||
|
||||
class PvtgwoTable : public PvtxTable {
|
||||
public:
|
||||
PvtgwoTable() = default;
|
||||
PvtgwoTable( const DeckKeyword& keyword, size_t tableIdx);
|
||||
|
||||
static PvtgwoTable serializeObject();
|
||||
|
||||
bool operator==(const PvtgwoTable& data) const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
58
opm/parser/eclipse/EclipseState/Tables/RwgsaltTable.hpp
Normal file
58
opm/parser/eclipse/EclipseState/Tables/RwgsaltTable.hpp
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
Copyright (C) 2020 by Equinor
|
||||
Copyright (C) 2020 by TNO
|
||||
|
||||
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 OPM_PARSER_RWGSALT_TABLE_HPP
|
||||
#define OPM_PARSER_RWGSALT_TABLE_HPP
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckKeyword;
|
||||
|
||||
class RwgsaltTable {
|
||||
public:
|
||||
RwgsaltTable();
|
||||
|
||||
static RwgsaltTable serializeObject();
|
||||
|
||||
void init(const Opm::DeckRecord& record1);
|
||||
size_t size() const;
|
||||
std::vector<double> getPressureColumn() const;
|
||||
std::vector<double> getSaltConcentrationColumn() const;
|
||||
std::vector<double> getVaporizedWaterGasRatioColumn() const;
|
||||
const std::vector<double>& getTableValues() const;
|
||||
|
||||
bool operator==(const RwgsaltTable& data) const;
|
||||
|
||||
template<class Serializer>
|
||||
void serializeOp(Serializer& serializer)
|
||||
{
|
||||
serializer(m_tableValues);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
std::vector <double> m_tableValues;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
38
opm/parser/eclipse/EclipseState/Tables/SaltpvdTable.hpp
Normal file
38
opm/parser/eclipse/EclipseState/Tables/SaltpvdTable.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
Copyright (C) 2020 by Equinor.
|
||||
Copyright (C) 2020 by TNO.
|
||||
|
||||
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 OPM_PARSER_SALTPVD_TABLE_HPP
|
||||
#define OPM_PARSER_SALTPVD_TABLE_HPP
|
||||
|
||||
#include "SimpleTable.hpp"
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckItem;
|
||||
|
||||
class SaltpvdTable : public SimpleTable {
|
||||
public:
|
||||
SaltpvdTable( const DeckItem& item );
|
||||
|
||||
const TableColumn& getDepthColumn() const;
|
||||
const TableColumn& getSaltpColumn() const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -33,12 +33,15 @@
|
||||
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/DenT.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtgTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtgwTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtgwoTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtoTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/RocktabTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Rock2dTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Rock2dtrTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PlyshlogTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PvtwsaltTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/RwgsaltTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/BrineDensityTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/SolventDensityTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/StandardCond.hpp>
|
||||
@@ -97,6 +100,8 @@ namespace Opm {
|
||||
const TableContainer& getPbvdTables() const;
|
||||
const TableContainer& getPdvdTables() const;
|
||||
const TableContainer& getSaltvdTables() const;
|
||||
const TableContainer& getSaltpvdTables() const;
|
||||
const TableContainer& getPermfactTables() const;
|
||||
const TableContainer& getEnkrvdTables() const;
|
||||
const TableContainer& getEnptvdTables() const;
|
||||
const TableContainer& getImkrvdTables() const;
|
||||
@@ -131,6 +136,8 @@ namespace Opm {
|
||||
const JFunc& getJFunc() const;
|
||||
|
||||
const std::vector<PvtgTable>& getPvtgTables() const;
|
||||
const std::vector<PvtgwTable>& getPvtgwTables() const;
|
||||
const std::vector<PvtgwoTable>& getPvtgwoTables() const;
|
||||
const std::vector<PvtoTable>& getPvtoTables() const;
|
||||
const std::vector<Rock2dTable>& getRock2dTables() const;
|
||||
const std::vector<Rock2dtrTable>& getRock2dtrTables() const;
|
||||
@@ -144,6 +151,7 @@ namespace Opm {
|
||||
std::size_t gas_comp_index() const;
|
||||
const PvtwTable& getPvtwTable() const;
|
||||
const std::vector<PvtwsaltTable>& getPvtwSaltTables() const;
|
||||
const std::vector<RwgsaltTable>& getRwgSaltTables() const;
|
||||
const std::vector<BrineDensityTable>& getBrineDensityTables() const;
|
||||
const std::vector<SolventDensityTable>& getSolventDensityTables() const;
|
||||
|
||||
@@ -192,6 +200,8 @@ namespace Opm {
|
||||
serializer(split.rockMax);
|
||||
serializer.map(split.rockMap);
|
||||
serializer.vector(m_pvtgTables);
|
||||
serializer.vector(m_pvtgwTables);
|
||||
serializer.vector(m_pvtgwoTables);
|
||||
serializer.vector(m_pvtoTables);
|
||||
serializer.vector(m_rock2dTables);
|
||||
serializer.vector(m_rock2dtrTables);
|
||||
@@ -207,6 +217,7 @@ namespace Opm {
|
||||
m_viscrefTable.serializeOp(serializer);
|
||||
m_watdentTable.serializeOp(serializer);
|
||||
serializer.vector(m_pvtwsaltTables);
|
||||
serializer.vector(m_rwgsaltTables);
|
||||
serializer.vector(m_bdensityTables);
|
||||
serializer.vector(m_sdensityTables);
|
||||
serializer.map(m_plymwinjTables);
|
||||
@@ -320,6 +331,22 @@ namespace Opm {
|
||||
assert(regionIdx == numTables);
|
||||
}
|
||||
|
||||
template <class TableType>
|
||||
void initRwgsaltTables(const Deck& deck, std::vector<TableType>& rwgtables ) {
|
||||
|
||||
size_t numTables = m_tabdims.getNumPVTTables();
|
||||
rwgtables.resize(numTables);
|
||||
|
||||
const auto& keyword = deck.getKeyword("RWGSALT");
|
||||
size_t regionIdx = 0;
|
||||
for (const auto& record : keyword) {
|
||||
rwgtables[regionIdx].init(record);
|
||||
++regionIdx;
|
||||
}
|
||||
assert(regionIdx == numTables);
|
||||
}
|
||||
|
||||
|
||||
template <class TableType>
|
||||
void initBrineTables(const Deck& deck, std::vector<TableType>& brinetables ) {
|
||||
|
||||
@@ -464,6 +491,8 @@ namespace Opm {
|
||||
|
||||
std::map<std::string , TableContainer> m_simpleTables;
|
||||
std::vector<PvtgTable> m_pvtgTables;
|
||||
std::vector<PvtgwTable> m_pvtgwTables;
|
||||
std::vector<PvtgwoTable> m_pvtgwoTables;
|
||||
std::vector<PvtoTable> m_pvtoTables;
|
||||
std::vector<Rock2dTable> m_rock2dTables;
|
||||
std::vector<Rock2dtrTable> m_rock2dtrTables;
|
||||
@@ -479,6 +508,7 @@ namespace Opm {
|
||||
ViscrefTable m_viscrefTable;
|
||||
WatdentTable m_watdentTable;
|
||||
std::vector<PvtwsaltTable> m_pvtwsaltTables;
|
||||
std::vector<RwgsaltTable> m_rwgsaltTables;
|
||||
std::vector<BrineDensityTable> m_bdensityTables;
|
||||
std::vector<SolventDensityTable> m_sdensityTables;
|
||||
std::map<int, PlymwinjTable> m_plymwinjTables;
|
||||
|
||||
Reference in New Issue
Block a user