Merge pull request #1537 from akva2/internaliz_shrate

Internalize SHRATE
This commit is contained in:
Arne Morten Kvarving
2020-03-06 09:58:42 +01:00
committed by GitHub
9 changed files with 44 additions and 111 deletions

View File

@@ -24,7 +24,6 @@
#include <opm/parser/eclipse/EclipseState/InitConfig/Equil.hpp>
#include <opm/parser/eclipse/EclipseState/InitConfig/FoamConfig.hpp>
#include <opm/parser/eclipse/EclipseState/InitConfig/PolymerConfig.hpp>
namespace Opm {
@@ -36,7 +35,6 @@ namespace Opm {
InitConfig();
explicit InitConfig(const Deck& deck);
InitConfig(const Equil& equil, const FoamConfig& foam,
const PolymerConfig& polymer,
bool filleps, bool gravity, bool restartReq, int restartStep,
const std::string& restartRootName);
@@ -53,8 +51,6 @@ namespace Opm {
bool hasFoamConfig() const;
const FoamConfig& getFoamConfig() const;
const PolymerConfig& getPolymerConfig() const;
bool filleps() const
{
return this->m_filleps;
@@ -65,7 +61,6 @@ namespace Opm {
private:
Equil equil;
FoamConfig foamconfig;
PolymerConfig polymerconfig;
bool m_filleps;
bool m_gravity = true;

View File

@@ -1,46 +0,0 @@
/*
Copyright 2019 SINTEF Digital, Mathematics and Cybernetics.
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_POLYMERCONFIG_HPP
#define OPM_POLYMERCONFIG_HPP
namespace Opm
{
class Deck;
class DeckRecord;
class PolymerConfig
{
public:
PolymerConfig() = default;
explicit PolymerConfig(const Deck&);
PolymerConfig(bool shrate);
bool shrate() const;
bool operator==(const PolymerConfig& data) const;
private:
bool has_shrate;
};
} // end namespace Opm
#endif // OPM_POLYMERCONFIG_HPP

View File

@@ -127,6 +127,20 @@ struct PlyvmhTable : public FlatTable<PlyvmhRecord> {
using FlatTable< PlyvmhRecord >::FlatTable;
};
struct ShrateRecord {
static constexpr std::size_t size = 1;
double rate;
bool operator==(const ShrateRecord& data) const {
return rate == data.rate;
}
};
struct ShrateTable : public FlatTable<ShrateRecord> {
using FlatTable< ShrateRecord >::FlatTable;
};
struct TlmixparRecord {
static constexpr std::size_t size = 2;

View File

@@ -73,6 +73,7 @@ namespace Opm {
const PlyvmhTable& plyvmhTable,
const RockTable& rockTable,
const PlmixparTable& plmixparTable,
const ShrateTable& shrateTable,
const TlmixparTable& tlmixparTable,
const ViscrefTable& viscrefTable,
const WatdentTable& watdentTable,
@@ -89,6 +90,7 @@ namespace Opm {
bool useImptvd,
bool useEnptvd,
bool useEqlnum,
bool useShrate,
std::shared_ptr<JFunc> jfunc_param,
const DenT& oilDenT,
const DenT& gasDenT,
@@ -183,6 +185,7 @@ namespace Opm {
const RockTable& getRockTable() const;
const ViscrefTable& getViscrefTable() const;
const PlmixparTable& getPlmixparTable() const;
const ShrateTable& getShrateTable() const;
const TlmixparTable& getTlmixparTable() const;
const WatdentTable& getWatdentTable() const;
const std::map<int, PlymwinjTable>& getPlymwinjTables() const;
@@ -199,6 +202,9 @@ namespace Opm {
/// deck has keyword "EQLNUM" --- Equilibriation region numbers
bool useEqlnum() const;
/// deck has keyword "SHRATE"
bool useShrate() const;
/// deck has keyword "JFUNC" --- Use Leverett's J Function for capillary pressure
bool useJFunc() const;
@@ -432,6 +438,7 @@ namespace Opm {
PlyvmhTable m_plyvmhTable;
RockTable m_rockTable;
PlmixparTable m_plmixparTable;
ShrateTable m_shrateTable;
TlmixparTable m_tlmixparTable;
ViscrefTable m_viscrefTable;
WatdentTable m_watdentTable;
@@ -450,6 +457,7 @@ namespace Opm {
bool hasImptvd = false;// if deck has keyword IMPTVD
bool hasEnptvd = false;// if deck has keyword ENPTVD
bool hasEqlnum = false;// if deck has keyword EQLNUM
bool hasShrate = false;// if deck has keyword SHRATE
std::shared_ptr<JFunc> jfunc;
DenT oilDenT;