Loading...
Searching...
No Matches
EclEpsConfig.hpp
Go to the documentation of this file.
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*
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 2 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/>.
Consult the COPYING file in the top-level source directory of this
module for the precise wording of the license and the list of
copyright holders.
*/
#ifndef OPM_ECL_EPS_CONFIG_HPP
#define OPM_ECL_EPS_CONFIG_HPP
#include <string>
namespace Opm {
#if HAVE_ECL_INPUT
class EclipseState;
#endif
enum class EclTwoPhaseSystemType {
GasOil,
OilWater,
GasWater
};
class EclEpsConfig
{
public:
void setEnableSatScaling(bool yesno)
{ enableSatScaling_ = yesno; }
bool enableSatScaling() const
{ return enableSatScaling_; }
void setEnableThreePointKrSatScaling(bool yesno)
{ enableThreePointKrSatScaling_ = yesno; }
bool enableThreePointKrSatScaling() const
{ return enableThreePointKrSatScaling_; }
void setEnableKrwScaling(bool yesno)
{ enableKrwScaling_ = yesno; }
bool enableKrwScaling() const
{ return enableKrwScaling_; }
void setEnableThreePointKrwScaling(const bool enable)
{ this->enableThreePointKrwScaling_ = enable; }
bool enableThreePointKrwScaling() const
{ return this->enableThreePointKrwScaling_; }
void setEnableThreePointKrnScaling(const bool enable)
{ this->enableThreePointKrnScaling_ = enable; }
bool enableThreePointKrnScaling() const
{ return this->enableThreePointKrnScaling_; }
void setEnableKrnScaling(bool yesno)
{ enableKrnScaling_ = yesno; }
bool enableKrnScaling() const
{ return enableKrnScaling_; }
void setEnablePcScaling(bool yesno)
{ enablePcScaling_ = yesno; }
bool enablePcScaling() const
{ return enablePcScaling_; }
void setEnableLeverettScaling(bool yesno)
{ enableLeverettScaling_ = yesno; }
bool enableLeverettScaling() const
{ return enableLeverettScaling_; }
#if HAVE_ECL_INPUT
void initFromState(const EclipseState& eclState,
EclTwoPhaseSystemType twoPhaseSystemType,
const std::string& prefix = "",
const std::string& suffix = "");
#endif
private:
// enable scaling of the input saturations (i.e., rescale the x-Axis)
bool enableSatScaling_{false};
// use three (instead of two) points to scale the saturations for the relative
// permeabilities.
//
// This means that two piecewise linear functions are used for saturation scaling
// instead of a single linear one
bool enableThreePointKrSatScaling_{false};
// enable the scaling of the capillary pressure and relative permeability outputs
// (i.e., rescale the y-Axis)
bool enablePcScaling_{false};
bool enableLeverettScaling_{false};
bool enableKrwScaling_{false};
bool enableKrnScaling_{false};
// Employ three-point vertical scaling (e.g., KRWR and KRW).
bool enableThreePointKrwScaling_{false};
// Employ three-point vertical scaling (e.g., KRORW and KRO).
bool enableThreePointKrnScaling_{false};
};
} // namespace Opm
#endif
Opm::EclEpsConfig
Specifies the configuration used by the endpoint scaling code.
Definition EclEpsConfig.hpp:56
Opm::EclEpsConfig::enableThreePointKrwScaling
bool enableThreePointKrwScaling() const
Whether or not three-point relative permeability value scaling is enabled for the wetting phase (KRWR...
Definition EclEpsConfig.hpp:107
Opm::EclEpsConfig::enableKrwScaling
bool enableKrwScaling() const
Returns whether relative permeability scaling is enabled for the wetting phase.
Definition EclEpsConfig.hpp:93
Opm::EclEpsConfig::setEnableKrnScaling
void setEnableKrnScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the non-wetting phase.
Definition EclEpsConfig.hpp:127
Opm::EclEpsConfig::setEnablePcScaling
void setEnablePcScaling(bool yesno)
Specify whether capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:139
Opm::EclEpsConfig::enableKrnScaling
bool enableKrnScaling() const
Returns whether relative permeability scaling is enabled for the non-wetting phase.
Definition EclEpsConfig.hpp:133
Opm::EclEpsConfig::setEnableKrwScaling
void setEnableKrwScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the wetting phase.
Definition EclEpsConfig.hpp:87
Opm::EclEpsConfig::enableLeverettScaling
bool enableLeverettScaling() const
Returns whether the Leverett capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:165
Opm::EclEpsConfig::setEnableSatScaling
void setEnableSatScaling(bool yesno)
Specify whether saturation scaling is enabled.
Definition EclEpsConfig.hpp:61
Opm::EclEpsConfig::setEnableLeverettScaling
void setEnableLeverettScaling(bool yesno)
Specify whether the Leverett capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:155
Opm::EclEpsConfig::setEnableThreePointKrwScaling
void setEnableThreePointKrwScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (KRW...
Definition EclEpsConfig.hpp:100
Opm::EclEpsConfig::enablePcScaling
bool enablePcScaling() const
Returns whether capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:145
Opm::EclEpsConfig::setEnableThreePointKrSatScaling
void setEnableThreePointKrSatScaling(bool yesno)
Specify whether three point saturation scaling is enabled for the relative permeabilities.
Definition EclEpsConfig.hpp:74
Opm::EclEpsConfig::setEnableThreePointKrnScaling
void setEnableThreePointKrnScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (e....
Definition EclEpsConfig.hpp:114
Opm::EclEpsConfig::enableThreePointKrnScaling
bool enableThreePointKrnScaling() const
Whether or not three-point relative permeability value scaling is enabled for the non-wetting phase (...
Definition EclEpsConfig.hpp:121
Opm::EclEpsConfig::enableThreePointKrSatScaling
bool enableThreePointKrSatScaling() const
Returns whether three point saturation scaling is enabled for the relative permeabilities.
Definition EclEpsConfig.hpp:81
Opm::EclEpsConfig::enableSatScaling
bool enableSatScaling() const
Returns whether saturation scaling is enabled.
Definition EclEpsConfig.hpp:67
Opm::EclipseState
Definition EclipseState.hpp:62
Opm::prefix
Conversion prefix for units.
Definition Units.hpp:59
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Opm::EclTwoPhaseSystemType
EclTwoPhaseSystemType
Specified which fluids are involved in a given twophase material law for endpoint scaling.
Definition EclEpsConfig.hpp:42