SatCurveMultiplexerApproach: reduce redundancy in entries

we already know it's 'approach'
This commit is contained in:
Arne Morten Kvarving 2022-12-12 14:00:30 +01:00
parent 603ca3476a
commit a5d038204e
3 changed files with 80 additions and 80 deletions

View File

@ -801,8 +801,8 @@ private:
const auto& letSgofTab = tableManager.getSgofletTable()[satRegionIdx];
const std::vector<Scalar> dum; // dummy arg to comform with existing interface
effParams.setApproach(SatCurveMultiplexerApproach::LETApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::LETApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::LET);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::LET>();
// S=(So-Sogcr)/(1-Sogcr-Sgcr-Swco), krog = Krt*S^L/[S^L+E*(1.0-S)^T]
const Scalar s_min_w = letSgofTab.s2_critical;
@ -870,8 +870,8 @@ private:
SoSamples[sampleIdx] = (1.0 - Swco) - sgofTable.get("SG", sampleIdx);
}
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
realParams.setKrwSamples(SoSamples, normalizeKrValues_(tolcrit, sgofTable.getColumn("KROG")));
realParams.setKrnSamples(SoSamples, normalizeKrValues_(tolcrit, sgofTable.getColumn("KRG")));
@ -890,8 +890,8 @@ private:
SoSamples[sampleIdx] = slgofTable.get("SL", sampleIdx) - Swco;
}
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
realParams.setKrwSamples(SoSamples, normalizeKrValues_(tolcrit, slgofTable.getColumn("KROG")));
realParams.setKrnSamples(SoSamples, normalizeKrValues_(tolcrit, slgofTable.getColumn("KRG")));
@ -912,8 +912,8 @@ private:
SoSamples[sampleIdx] = (1.0 - Swco) - sgfnTable.get("SG", sampleIdx);
}
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
realParams.setKrwSamples(SoColumn, normalizeKrValues_(tolcrit, sof3Table.getColumn("KROG")));
realParams.setKrnSamples(SoSamples, normalizeKrValues_(tolcrit, sgfnTable.getColumn("KRG")));
@ -934,8 +934,8 @@ private:
SoSamples[sampleIdx] = (1.0 - Swco) - sgfnTable.get("SG", sampleIdx);
}
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
realParams.setKrwSamples(SoColumn, normalizeKrValues_(tolcrit, sof2Table.getColumn("KRO")));
realParams.setKrnSamples(SoSamples, normalizeKrValues_(tolcrit, sgfnTable.getColumn("KRG")));
@ -967,8 +967,8 @@ private:
const auto& swofTable = tableManager.getSwofTables().getTable<SwofTable>(satRegionIdx);
const std::vector<double> SwColumn = swofTable.getColumn("SW").vectorCopy();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
realParams.setKrwSamples(SwColumn, normalizeKrValues_(tolcrit, swofTable.getColumn("KRW")));
realParams.setKrnSamples(SwColumn, normalizeKrValues_(tolcrit, swofTable.getColumn("KROW")));
@ -979,8 +979,8 @@ private:
const auto& letTab = tableManager.getSwofletTable()[satRegionIdx];
const std::vector<Scalar> dum; // dummy arg to conform with existing interface
effParams.setApproach(SatCurveMultiplexerApproach::LETApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::LETApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::LET);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::LET>();
// S=(Sw-Swcr)/(1-Sowcr-Swcr), krw = Krt*S^L/[S^L+E*(1.0-S)^T]
const Scalar s_min_w = letTab.s1_critical;
@ -1022,8 +1022,8 @@ private:
const auto& swfnTable = tableManager.getSwfnTables().getTable<SwfnTable>(satRegionIdx);
const std::vector<double> SwColumn = swfnTable.getColumn("SW").vectorCopy();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
realParams.setKrwSamples(SwColumn, normalizeKrValues_(tolcrit, swfnTable.getColumn("KRW")));
realParams.setPcnwSamples(SwColumn, swfnTable.getColumn("PCOW").vectorCopy());
@ -1084,8 +1084,8 @@ private:
const SgfnTable& sgfnTable = tableManager.getSgfnTables().getTable<SgfnTable>( satRegionIdx );
const SwfnTable& swfnTable = tableManager.getSwfnTables().getTable<SwfnTable>( satRegionIdx );
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinearApproach);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>();
effParams.setApproach(SatCurveMultiplexerApproach::PiecewiseLinear);
auto& realParams = effParams.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>();
std::vector<double> SwColumn = swfnTable.getColumn("SW").vectorCopy();

View File

@ -91,15 +91,15 @@ public:
static void capillaryPressures(Container& values, const Params& params, const FluidState& fluidState)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
case SatCurveMultiplexerApproach::LET:
LETTwoPhaseLaw::capillaryPressures(values,
params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidState);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
case SatCurveMultiplexerApproach::PiecewiseLinear:
PLTwoPhaseLaw::capillaryPressures(values,
params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidState);
break;
}
@ -113,15 +113,15 @@ public:
static void saturations(Container& values, const Params& params, const FluidState& fluidState)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
case SatCurveMultiplexerApproach::LET:
LETTwoPhaseLaw::saturations(values,
params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidState);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
case SatCurveMultiplexerApproach::PiecewiseLinear:
PLTwoPhaseLaw::saturations(values,
params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidState);
break;
}
@ -141,15 +141,15 @@ public:
static void relativePermeabilities(Container& values, const Params& params, const FluidState& fluidState)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
case SatCurveMultiplexerApproach::LET:
LETTwoPhaseLaw::relativePermeabilities(values,
params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidState);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
case SatCurveMultiplexerApproach::PiecewiseLinear:
PLTwoPhaseLaw::relativePermeabilities(values,
params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidState);
break;
}
@ -162,13 +162,13 @@ public:
static Evaluation pcnw(const Params& params, const FluidState& fluidState)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::pcnw(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::pcnw(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidState);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::pcnw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::pcnw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidState);
break;
}
@ -180,13 +180,13 @@ public:
static Evaluation twoPhaseSatPcnw(const Params& params, const Evaluation& Sw)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::twoPhaseSatPcnw(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::twoPhaseSatPcnw(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
Sw);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::twoPhaseSatPcnw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::twoPhaseSatPcnw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
Sw);
break;
}
@ -208,13 +208,13 @@ public:
static Evaluation Sw(const Params& params, const FluidState& fluidstate)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::Sw(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::Sw(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidstate);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::Sw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::Sw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidstate);
break;
}
@ -237,13 +237,13 @@ public:
static Evaluation Sn(const Params& params, const FluidState& fluidstate)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::Sn(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::Sn(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidstate);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::Sn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::Sn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidstate);
break;
}
@ -255,13 +255,13 @@ public:
static Evaluation twoPhaseSatSn(const Params& params, const Evaluation& pc)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::twoPhaseSatSn(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::twoPhaseSatSn(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
pc);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::twoPhaseSatSn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::twoPhaseSatSn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
pc);
break;
}
@ -277,13 +277,13 @@ public:
static Evaluation krw(const Params& params, const FluidState& fluidstate)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::krw(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::krw(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidstate);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::krw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::krw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidstate);
break;
}
@ -295,13 +295,13 @@ public:
static Evaluation twoPhaseSatKrw(const Params& params, const Evaluation& Sw)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::twoPhaseSatKrw(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::twoPhaseSatKrw(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
Sw);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::twoPhaseSatKrw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::twoPhaseSatKrw(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
Sw);
break;
}
@ -323,13 +323,13 @@ public:
static Evaluation krn(const Params& params, const FluidState& fluidstate)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::krn(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::krn(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
fluidstate);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::krn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::krn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
fluidstate);
break;
}
@ -341,13 +341,13 @@ public:
static Evaluation twoPhaseSatKrn(const Params& params, const Evaluation& Sw)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::twoPhaseSatKrn(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::twoPhaseSatKrn(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
Sw);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::twoPhaseSatKrn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::twoPhaseSatKrn(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
Sw);
break;
}
@ -359,13 +359,13 @@ public:
static Evaluation twoPhaseSatKrnInv(const Params& params, const Evaluation& krn)
{
switch (params.approach()) {
case SatCurveMultiplexerApproach::LETApproach:
return LETTwoPhaseLaw::twoPhaseSatKrnInv(params.template getRealParams<SatCurveMultiplexerApproach::LETApproach>(),
case SatCurveMultiplexerApproach::LET:
return LETTwoPhaseLaw::twoPhaseSatKrnInv(params.template getRealParams<SatCurveMultiplexerApproach::LET>(),
krn);
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
return PLTwoPhaseLaw::twoPhaseSatKrnInv(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinearApproach>(),
case SatCurveMultiplexerApproach::PiecewiseLinear:
return PLTwoPhaseLaw::twoPhaseSatKrnInv(params.template getRealParams<SatCurveMultiplexerApproach::PiecewiseLinear>(),
krn);
break;
}

View File

@ -39,11 +39,11 @@
#include <cassert>
#include <memory>
namespace Opm
namespace Opm {
{enum class SatCurveMultiplexerApproach {
PiecewiseLinearApproach,
LETApproach
enum class SatCurveMultiplexerApproach {
PiecewiseLinear,
LET
};
/*!
@ -108,11 +108,11 @@ public:
approach_ = newApproach;
switch (approach()) {
case SatCurveMultiplexerApproach::LETApproach:
case SatCurveMultiplexerApproach::LET:
realParams_ = ParamPointerType(new LETParams, Deleter< LETParams > () );
break;
case SatCurveMultiplexerApproach::PiecewiseLinearApproach:
case SatCurveMultiplexerApproach::PiecewiseLinear:
realParams_ = ParamPointerType(new PLParams, Deleter< PLParams > () );
break;
}
@ -123,7 +123,7 @@ public:
// get the parameter object for the LET curve
template <SatCurveMultiplexerApproach approachV>
typename std::enable_if<approachV == SatCurveMultiplexerApproach::LETApproach, LETParams>::type&
typename std::enable_if<approachV == SatCurveMultiplexerApproach::LET, LETParams>::type&
getRealParams()
{
assert(approach() == approachV);
@ -131,7 +131,7 @@ public:
}
template <SatCurveMultiplexerApproach approachV>
typename std::enable_if<approachV == SatCurveMultiplexerApproach::LETApproach, const LETParams>::type&
typename std::enable_if<approachV == SatCurveMultiplexerApproach::LET, const LETParams>::type&
getRealParams() const
{
assert(approach() == approachV);
@ -140,7 +140,7 @@ public:
// get the parameter object for the PL curve
template <SatCurveMultiplexerApproach approachV>
typename std::enable_if<approachV == SatCurveMultiplexerApproach::PiecewiseLinearApproach, PLParams>::type&
typename std::enable_if<approachV == SatCurveMultiplexerApproach::PiecewiseLinear, PLParams>::type&
getRealParams()
{
assert(approach() == approachV);
@ -148,7 +148,7 @@ public:
}
template <SatCurveMultiplexerApproach approachV>
typename std::enable_if<approachV == SatCurveMultiplexerApproach::PiecewiseLinearApproach, const PLParams>::type&
typename std::enable_if<approachV == SatCurveMultiplexerApproach::PiecewiseLinear, const PLParams>::type&
getRealParams() const
{
assert(approach() == approachV);