fixed: enum member in EclMultiplexerApproach clashes with EclTwoPhaseApproach enum

fix by converting both to enum class
This commit is contained in:
Arne Morten Kvarving
2020-01-21 13:22:00 +01:00
parent 1b5206200c
commit 93df3fa6d5
5 changed files with 121 additions and 121 deletions

View File

@@ -449,8 +449,8 @@ public:
// change the sat table it points to.
switch (mlp.approach()) {
case EclStone1Approach: {
auto& realParams = mlp.template getRealParams<Opm::EclStone1Approach>();
case EclMultiplexerApproach::EclStone1Approach: {
auto& realParams = mlp.template getRealParams<EclMultiplexerApproach::EclStone1Approach>();
realParams.oilWaterParams().drainageParams().setUnscaledPoints(oilWaterUnscaledPointsVector_[satRegionIdx]);
realParams.oilWaterParams().drainageParams().setEffectiveLawParams(oilWaterEffectiveParamVector_[satRegionIdx]);
@@ -465,8 +465,8 @@ public:
}
break;
case EclStone2Approach: {
auto& realParams = mlp.template getRealParams<Opm::EclStone2Approach>();
case EclMultiplexerApproach::EclStone2Approach: {
auto& realParams = mlp.template getRealParams<EclMultiplexerApproach::EclStone2Approach>();
realParams.oilWaterParams().drainageParams().setUnscaledPoints(oilWaterUnscaledPointsVector_[satRegionIdx]);
realParams.oilWaterParams().drainageParams().setEffectiveLawParams(oilWaterEffectiveParamVector_[satRegionIdx]);
realParams.gasOilParams().drainageParams().setUnscaledPoints(gasOilUnscaledPointsVector_[satRegionIdx]);
@@ -480,8 +480,8 @@ public:
}
break;
case EclDefaultApproach: {
auto& realParams = mlp.template getRealParams<Opm::EclDefaultApproach>();
case EclMultiplexerApproach::EclDefaultApproach: {
auto& realParams = mlp.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>();
realParams.oilWaterParams().drainageParams().setUnscaledPoints(oilWaterUnscaledPointsVector_[satRegionIdx]);
realParams.oilWaterParams().drainageParams().setEffectiveLawParams(oilWaterEffectiveParamVector_[satRegionIdx]);
realParams.gasOilParams().drainageParams().setUnscaledPoints(gasOilUnscaledPointsVector_[satRegionIdx]);
@@ -495,8 +495,8 @@ public:
}
break;
case EclTwoPhaseApproach: {
auto& realParams = mlp.template getRealParams<Opm::EclTwoPhaseApproach>();
case EclMultiplexerApproach::EclTwoPhaseApproach: {
auto& realParams = mlp.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>();
realParams.oilWaterParams().drainageParams().setUnscaledPoints(oilWaterUnscaledPointsVector_[satRegionIdx]);
realParams.oilWaterParams().drainageParams().setEffectiveLawParams(oilWaterEffectiveParamVector_[satRegionIdx]);
realParams.gasOilParams().drainageParams().setUnscaledPoints(gasOilUnscaledPointsVector_[satRegionIdx]);
@@ -587,23 +587,23 @@ public:
{
auto& materialParams = *materialLawParams_[elemIdx];
switch (materialParams.approach()) {
case EclStone1Approach: {
auto& realParams = materialParams.template getRealParams<Opm::EclStone1Approach>();
case EclMultiplexerApproach::EclStone1Approach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclStone1Approach>();
return realParams.oilWaterParams().drainageParams().scaledPoints();
}
case EclStone2Approach: {
auto& realParams = materialParams.template getRealParams<Opm::EclStone2Approach>();
case EclMultiplexerApproach::EclStone2Approach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclStone2Approach>();
return realParams.oilWaterParams().drainageParams().scaledPoints();
}
case EclDefaultApproach: {
auto& realParams = materialParams.template getRealParams<Opm::EclDefaultApproach>();
case EclMultiplexerApproach::EclDefaultApproach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>();
return realParams.oilWaterParams().drainageParams().scaledPoints();
}
case EclTwoPhaseApproach: {
auto& realParams = materialParams.template getRealParams<Opm::EclTwoPhaseApproach>();
case EclMultiplexerApproach::EclTwoPhaseApproach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>();
return realParams.oilWaterParams().drainageParams().scaledPoints();
}
default:
@@ -646,24 +646,24 @@ private:
if (numEnabled == 0) {
throw std::runtime_error("At least one fluid phase must be enabled. (Is: "+std::to_string(numEnabled)+")");
} else if (numEnabled == 1) {
threePhaseApproach_ = Opm::EclMultiplexerApproach::EclOnePhaseApproach;
threePhaseApproach_ = EclMultiplexerApproach::EclOnePhaseApproach;
} else if ( numEnabled == 2) {
threePhaseApproach_ = Opm::EclTwoPhaseApproach;
threePhaseApproach_ = EclMultiplexerApproach::EclTwoPhaseApproach;
if (!gasEnabled)
twoPhaseApproach_ = Opm::EclTwoPhaseOilWater;
twoPhaseApproach_ = EclTwoPhaseApproach::EclTwoPhaseOilWater;
else if (!oilEnabled)
twoPhaseApproach_ = Opm::EclTwoPhaseGasWater;
twoPhaseApproach_ = EclTwoPhaseApproach::EclTwoPhaseGasWater;
else if (!waterEnabled)
twoPhaseApproach_ = Opm::EclTwoPhaseGasOil;
twoPhaseApproach_ = EclTwoPhaseApproach::EclTwoPhaseGasOil;
}
else {
assert(numEnabled == 3);
threePhaseApproach_ = Opm::EclDefaultApproach;
threePhaseApproach_ = EclMultiplexerApproach::EclDefaultApproach;
if (deck.hasKeyword("STONE") || deck.hasKeyword("STONE2"))
threePhaseApproach_ = Opm::EclStone2Approach;
threePhaseApproach_ = EclMultiplexerApproach::EclStone2Approach;
else if (deck.hasKeyword("STONE1"))
threePhaseApproach_ = Opm::EclStone1Approach;
threePhaseApproach_ = EclMultiplexerApproach::EclStone1Approach;
}
}
@@ -980,8 +980,8 @@ private:
materialParams.setApproach(threePhaseApproach_);
switch (materialParams.approach()) {
case EclStone1Approach: {
auto& realParams = materialParams.template getRealParams<Opm::EclStone1Approach>();
case EclMultiplexerApproach::EclStone1Approach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclStone1Approach>();
realParams.setGasOilParams(gasOilParams);
realParams.setOilWaterParams(oilWaterParams);
realParams.setSwl(epsInfo.Swl);
@@ -995,8 +995,8 @@ private:
break;
}
case EclStone2Approach: {
auto& realParams = materialParams.template getRealParams<Opm::EclStone2Approach>();
case EclMultiplexerApproach::EclStone2Approach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclStone2Approach>();
realParams.setGasOilParams(gasOilParams);
realParams.setOilWaterParams(oilWaterParams);
realParams.setSwl(epsInfo.Swl);
@@ -1004,8 +1004,8 @@ private:
break;
}
case EclDefaultApproach: {
auto& realParams = materialParams.template getRealParams<Opm::EclDefaultApproach>();
case EclMultiplexerApproach::EclDefaultApproach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>();
realParams.setGasOilParams(gasOilParams);
realParams.setOilWaterParams(oilWaterParams);
realParams.setSwl(epsInfo.Swl);
@@ -1013,8 +1013,8 @@ private:
break;
}
case EclTwoPhaseApproach: {
auto& realParams = materialParams.template getRealParams<Opm::EclTwoPhaseApproach>();
case EclMultiplexerApproach::EclTwoPhaseApproach: {
auto& realParams = materialParams.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>();
realParams.setGasOilParams(gasOilParams);
realParams.setOilWaterParams(oilWaterParams);
realParams.setApproach(twoPhaseApproach_);
@@ -1022,7 +1022,7 @@ private:
break;
}
case EclOnePhaseApproach: {
case EclMultiplexerApproach::EclOnePhaseApproach: {
// Nothing to do, no parameters.
break;
}

View File

@@ -132,31 +132,31 @@ public:
const FluidState& fluidState)
{
switch (params.approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::capillaryPressures(values,
params.template getRealParams<EclStone1Approach>(),
params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>(),
fluidState);
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::capillaryPressures(values,
params.template getRealParams<EclStone2Approach>(),
params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>(),
fluidState);
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::capillaryPressures(values,
params.template getRealParams<EclDefaultApproach>(),
params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>(),
fluidState);
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::capillaryPressures(values,
params.template getRealParams<EclTwoPhaseApproach>(),
params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>(),
fluidState);
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
values[0] = 0.0;
break;
}
@@ -173,27 +173,27 @@ public:
const Params& params)
{
switch (params.approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::oilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone1Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>());
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::oilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone2Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>());
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::oilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclDefaultApproach>());
params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>());
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::oilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclTwoPhaseApproach>());
params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>());
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
// Do nothing.
break;
}
@@ -210,27 +210,27 @@ public:
Params& params)
{
switch (params.approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::setOilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone1Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>());
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::setOilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone2Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>());
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::setOilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclDefaultApproach>());
params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>());
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::setOilWaterHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclTwoPhaseApproach>());
params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>());
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
// Do nothing.
break;
}
@@ -247,27 +247,27 @@ public:
const Params& params)
{
switch (params.approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::gasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone1Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>());
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::gasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone2Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>());
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::gasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclDefaultApproach>());
params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>());
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::gasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclTwoPhaseApproach>());
params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>());
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
// Do nothing.
break;
}
@@ -284,27 +284,27 @@ public:
Params& params)
{
switch (params.approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::setGasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone1Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>());
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::setGasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclStone2Approach>());
params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>());
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::setGasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclDefaultApproach>());
params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>());
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::setGasOilHysteresisParams(pcSwMdc, krnSwMdc,
params.template getRealParams<EclTwoPhaseApproach>());
params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>());
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
// Do nothing.
break;
}
@@ -404,37 +404,37 @@ public:
const FluidState& fluidState)
{
switch (params.approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::relativePermeabilities(values,
params.template getRealParams<EclStone1Approach>(),
params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>(),
fluidState);
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::relativePermeabilities(values,
params.template getRealParams<EclStone2Approach>(),
params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>(),
fluidState);
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::relativePermeabilities(values,
params.template getRealParams<EclDefaultApproach>(),
params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>(),
fluidState);
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::relativePermeabilities(values,
params.template getRealParams<EclTwoPhaseApproach>(),
params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>(),
fluidState);
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
values[0] = 1.0;
break;
default:
throw std::logic_error("Not implemented: relativePermeabilities() option for unknown EclMultiplexerApproach (="
+ std::to_string(params.approach()) + ")");
+ std::to_string(static_cast<int>(params.approach())) + ")");
}
}
@@ -480,26 +480,26 @@ public:
static void updateHysteresis(Params& params, const FluidState& fluidState)
{
switch (params.approach()) {
case EclStone1Approach:
Stone1Material::updateHysteresis(params.template getRealParams<EclStone1Approach>(),
case EclMultiplexerApproach::EclStone1Approach:
Stone1Material::updateHysteresis(params.template getRealParams<EclMultiplexerApproach::EclStone1Approach>(),
fluidState);
break;
case EclStone2Approach:
Stone2Material::updateHysteresis(params.template getRealParams<EclStone2Approach>(),
case EclMultiplexerApproach::EclStone2Approach:
Stone2Material::updateHysteresis(params.template getRealParams<EclMultiplexerApproach::EclStone2Approach>(),
fluidState);
break;
case EclDefaultApproach:
DefaultMaterial::updateHysteresis(params.template getRealParams<EclDefaultApproach>(),
case EclMultiplexerApproach::EclDefaultApproach:
DefaultMaterial::updateHysteresis(params.template getRealParams<EclMultiplexerApproach::EclDefaultApproach>(),
fluidState);
break;
case EclTwoPhaseApproach:
TwoPhaseMaterial::updateHysteresis(params.template getRealParams<EclTwoPhaseApproach>(),
case EclMultiplexerApproach::EclTwoPhaseApproach:
TwoPhaseMaterial::updateHysteresis(params.template getRealParams<EclMultiplexerApproach::EclTwoPhaseApproach>(),
fluidState);
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
break;
}
}

View File

@@ -40,7 +40,7 @@
namespace Opm {
enum EclMultiplexerApproach {
enum class EclMultiplexerApproach {
EclDefaultApproach,
EclStone1Approach,
EclStone2Approach,
@@ -111,23 +111,23 @@ public:
approach_ = newApproach;
switch (approach()) {
case EclStone1Approach:
case EclMultiplexerApproach::EclStone1Approach:
realParams_ = ParamPointerType(new Stone1Params, Deleter< Stone1Params > () );
break;
case EclStone2Approach:
case EclMultiplexerApproach::EclStone2Approach:
realParams_ = ParamPointerType(new Stone2Params, Deleter< Stone2Params > () );
break;
case EclDefaultApproach:
case EclMultiplexerApproach::EclDefaultApproach:
realParams_ = ParamPointerType(new DefaultParams, Deleter< DefaultParams > () );
break;
case EclTwoPhaseApproach:
case EclMultiplexerApproach::EclTwoPhaseApproach:
realParams_ = ParamPointerType(new TwoPhaseParams, Deleter< TwoPhaseParams > () );
break;
case EclOnePhaseApproach:
case EclMultiplexerApproach::EclOnePhaseApproach:
// Do nothing, no parameters.
break;
}
@@ -138,7 +138,7 @@ public:
// get the parameter object for the Stone1 case
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclStone1Approach, Stone1Params>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclStone1Approach, Stone1Params>::type&
getRealParams()
{
assert(approach() == approachV);
@@ -146,7 +146,7 @@ public:
}
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclStone1Approach, const Stone1Params>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclStone1Approach, const Stone1Params>::type&
getRealParams() const
{
assert(approach() == approachV);
@@ -155,7 +155,7 @@ public:
// get the parameter object for the Stone2 case
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclStone2Approach, Stone2Params>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclStone2Approach, Stone2Params>::type&
getRealParams()
{
assert(approach() == approachV);
@@ -163,7 +163,7 @@ public:
}
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclStone2Approach, const Stone2Params>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclStone2Approach, const Stone2Params>::type&
getRealParams() const
{
assert(approach() == approachV);
@@ -172,7 +172,7 @@ public:
// get the parameter object for the default case
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclDefaultApproach, DefaultParams>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclDefaultApproach, DefaultParams>::type&
getRealParams()
{
assert(approach() == approachV);
@@ -180,7 +180,7 @@ public:
}
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclDefaultApproach, const DefaultParams>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclDefaultApproach, const DefaultParams>::type&
getRealParams() const
{
assert(approach() == approachV);
@@ -189,7 +189,7 @@ public:
// get the parameter object for the twophase case
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclTwoPhaseApproach, TwoPhaseParams>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclTwoPhaseApproach, TwoPhaseParams>::type&
getRealParams()
{
assert(approach() == approachV);
@@ -197,7 +197,7 @@ public:
}
template <EclMultiplexerApproach approachV>
typename std::enable_if<approachV == EclTwoPhaseApproach, const TwoPhaseParams>::type&
typename std::enable_if<approachV == EclMultiplexerApproach::EclTwoPhaseApproach, const TwoPhaseParams>::type&
getRealParams() const
{
assert(approach() == approachV);

View File

@@ -129,7 +129,7 @@ public:
typedef typename std::remove_reference<decltype(values[0])>::type Evaluation;
switch (params.approach()) {
case EclTwoPhaseGasOil: {
case EclTwoPhaseApproach::EclTwoPhaseGasOil: {
const Evaluation& So =
Opm::decay<Evaluation>(fluidState.saturation(oilPhaseIdx));
@@ -138,7 +138,7 @@ public:
break;
}
case EclTwoPhaseOilWater: {
case EclTwoPhaseApproach::EclTwoPhaseOilWater: {
const Evaluation& Sw =
Opm::decay<Evaluation>(fluidState.saturation(waterPhaseIdx));
@@ -147,7 +147,7 @@ public:
break;
}
case EclTwoPhaseGasWater: {
case EclTwoPhaseApproach::EclTwoPhaseGasWater: {
const Evaluation& Sw =
Opm::decay<Evaluation>(fluidState.saturation(waterPhaseIdx));
@@ -319,7 +319,7 @@ public:
typedef typename std::remove_reference<decltype(values[0])>::type Evaluation;
switch (params.approach()) {
case EclTwoPhaseGasOil: {
case EclTwoPhaseApproach::EclTwoPhaseGasOil: {
const Evaluation& So =
Opm::decay<Evaluation>(fluidState.saturation(oilPhaseIdx));
@@ -328,7 +328,7 @@ public:
break;
}
case EclTwoPhaseOilWater: {
case EclTwoPhaseApproach::EclTwoPhaseOilWater: {
const Evaluation& Sw =
Opm::decay<Evaluation>(fluidState.saturation(waterPhaseIdx));
@@ -337,7 +337,7 @@ public:
break;
}
case EclTwoPhaseGasWater: {
case EclTwoPhaseApproach::EclTwoPhaseGasWater: {
const Evaluation& Sw =
Opm::decay<Evaluation>(fluidState.saturation(waterPhaseIdx));
@@ -390,21 +390,21 @@ public:
static void updateHysteresis(Params& params, const FluidState& fluidState)
{
switch (params.approach()) {
case EclTwoPhaseGasOil: {
case EclTwoPhaseApproach::EclTwoPhaseGasOil: {
Scalar So = Opm::scalarValue(fluidState.saturation(oilPhaseIdx));
params.gasOilParams().update(/*pcSw=*/So, /*krwSw=*/So, /*krnSw=*/So);
break;
}
case EclTwoPhaseOilWater: {
case EclTwoPhaseApproach::EclTwoPhaseOilWater: {
Scalar Sw = Opm::scalarValue(fluidState.saturation(waterPhaseIdx));
params.oilWaterParams().update(/*pcSw=*/Sw, /*krwSw=*/Sw, /*krnSw=*/Sw);
break;
}
case EclTwoPhaseGasWater: {
case EclTwoPhaseApproach::EclTwoPhaseGasWater: {
Scalar Sw = Opm::scalarValue(fluidState.saturation(waterPhaseIdx));
params.oilWaterParams().update(/*pcSw=*/Sw, /*krwSw=*/Sw, /*krnSw=*/0);

View File

@@ -34,7 +34,7 @@
#include <opm/material/common/EnsureFinalized.hpp>
namespace Opm {
enum EclTwoPhaseApproach {
enum class EclTwoPhaseApproach {
EclTwoPhaseGasOil,
EclTwoPhaseOilWater,
EclTwoPhaseGasWater