@@ -35,6 +35,7 @@ enum class Phase {
|
||||
WATER = 2,
|
||||
SOLVENT = 3,
|
||||
POLYMER = 4,
|
||||
ENERGY = 5,
|
||||
};
|
||||
|
||||
Phase get_phase( const std::string& );
|
||||
@@ -43,12 +44,12 @@ std::ostream& operator<<( std::ostream&, const Phase& );
|
||||
class Phases {
|
||||
public:
|
||||
Phases() noexcept = default;
|
||||
Phases( bool oil, bool gas, bool wat, bool solvent = false, bool polymer = false ) noexcept;
|
||||
Phases( bool oil, bool gas, bool wat, bool solvent = false, bool polymer = false, bool energy = false ) noexcept;
|
||||
|
||||
bool active( Phase ) const noexcept;
|
||||
size_t size() const noexcept;
|
||||
private:
|
||||
std::bitset< 5 > bits;
|
||||
std::bitset< 6 > bits;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -143,6 +143,7 @@ namespace Opm
|
||||
void handleWCONINJE( const SCHEDULESection&, const DeckKeyword& keyword, size_t currentStep);
|
||||
void handleWPOLYMER( const DeckKeyword& keyword, size_t currentStep);
|
||||
void handleWSOLVENT( const DeckKeyword& keyword, size_t currentStep);
|
||||
void handleWTEMP( const DeckKeyword& keyword, size_t currentStep);
|
||||
void handleWCONINJH( const SCHEDULESection&, const DeckKeyword& keyword, size_t currentStep);
|
||||
void handleWELOPEN( const DeckKeyword& keyword, size_t currentStep );
|
||||
void handleWELTARG( const SCHEDULESection&, const DeckKeyword& keyword, size_t currentStep);
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace Opm {
|
||||
struct WellInjectionProperties {
|
||||
double surfaceInjectionRate;
|
||||
double reservoirInjectionRate;
|
||||
double temperature;
|
||||
double BHPLimit;
|
||||
double THPLimit;
|
||||
int VFPTableNumber;
|
||||
|
||||
41
opm/parser/eclipse/EclipseState/Tables/SpecheatTable.hpp
Normal file
41
opm/parser/eclipse/EclipseState/Tables/SpecheatTable.hpp
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
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_SPECHEAT_TABLE_HPP
|
||||
#define OPM_PARSER_SPECHEAT_TABLE_HPP
|
||||
|
||||
#include "SimpleTable.hpp"
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckItem;
|
||||
|
||||
// this table specifies the specific heat capacity of the black oil fluids. In this
|
||||
// context, be aware that the keyword "SPECHEAT" stands for "SPECific HEAT capacity"
|
||||
// not for a way to cheat on the SPE test cases ;)
|
||||
class SpecheatTable : public SimpleTable {
|
||||
public:
|
||||
SpecheatTable(const DeckItem& item);
|
||||
|
||||
const TableColumn& getTemperatureColumn() const;
|
||||
const TableColumn& getCpOilColumn() const;
|
||||
const TableColumn& getCpWaterColumn() const;
|
||||
const TableColumn& getCpGasColumn() const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
38
opm/parser/eclipse/EclipseState/Tables/SpecrockTable.hpp
Normal file
38
opm/parser/eclipse/EclipseState/Tables/SpecrockTable.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
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_SPECROCK_TABLE_HPP
|
||||
#define OPM_PARSER_SPECROCK_TABLE_HPP
|
||||
|
||||
#include "SimpleTable.hpp"
|
||||
|
||||
namespace Opm {
|
||||
|
||||
class DeckItem;
|
||||
|
||||
// this table specifies the volumetric heat capacity of the rock not including the
|
||||
// pore space.
|
||||
class SpecrockTable : public SimpleTable {
|
||||
public:
|
||||
SpecrockTable(const DeckItem& item);
|
||||
|
||||
const TableColumn& getTemperatureColumn() const;
|
||||
const TableColumn& getCpRockColumn() const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -86,6 +86,8 @@ namespace Opm {
|
||||
const TableContainer& getPvdgTables() const;
|
||||
const TableContainer& getPvdoTables() const;
|
||||
const TableContainer& getPvdsTables() const;
|
||||
const TableContainer& getSpecheatTables() const;
|
||||
const TableContainer& getSpecrockTables() const;
|
||||
const TableContainer& getWatvisctTables() const;
|
||||
const TableContainer& getOilvisctTables() const;
|
||||
const TableContainer& getGasvisctTables() const;
|
||||
|
||||
@@ -123,6 +123,12 @@ namespace Opm {
|
||||
constexpr const double pound = 0.45359237 * kilogram;
|
||||
/// @}
|
||||
|
||||
/// \name Energy
|
||||
/// @{
|
||||
constexpr const double joule = 1;
|
||||
constexpr const double btu = 1054.3503*joule; // "british thermal units"
|
||||
/// @}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
// Standardised constants
|
||||
// --------------------------------------------------------------
|
||||
@@ -267,6 +273,7 @@ namespace Opm {
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = day;
|
||||
constexpr const double SurfaceTension = dyne/(centi*meter);
|
||||
constexpr const double Energy = kilo*joule;
|
||||
}
|
||||
|
||||
|
||||
@@ -293,6 +300,7 @@ namespace Opm {
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = day;
|
||||
constexpr const double SurfaceTension = dyne/(centi*meter);
|
||||
constexpr const double Energy = btu;
|
||||
}
|
||||
|
||||
|
||||
@@ -319,6 +327,7 @@ namespace Opm {
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = hour;
|
||||
constexpr const double SurfaceTension = dyne/(centi*meter);
|
||||
constexpr const double Energy = joule;
|
||||
}
|
||||
|
||||
|
||||
@@ -345,6 +354,7 @@ namespace Opm {
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = day;
|
||||
constexpr const double SurfaceTension = dyne/(centi*meter);
|
||||
constexpr const double Energy = kilo*joule;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user