corrections to IWEL for pressure loss model and multiphase model
This commit is contained in:
parent
6eb9eb8414
commit
9a2410ddb2
@ -58,6 +58,18 @@ namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems
|
|||||||
// Value 0 for regular wells
|
// Value 0 for regular wells
|
||||||
// Value #segments for MS wells
|
// Value #segments for MS wells
|
||||||
|
|
||||||
|
MSW_PlossMod = 81, // Pressure loss model for well segments
|
||||||
|
// = 0 for regular wells
|
||||||
|
// = 0 for MSW wells and HFA (WELSEGS item 6)
|
||||||
|
// = 1 for MSW wells and HF- (WELSEGS item 6)
|
||||||
|
// = 2 for MSW wells and H-- (WELSEGS item 6)
|
||||||
|
|
||||||
|
MSW_MulPhaseMod = 85, // Multiphase flow model for well segments - NOTE DF - model is not implemented yet!!
|
||||||
|
// = 0 for regular wells
|
||||||
|
// = 1 for MSW wells and HO (WELSEGS item 7)
|
||||||
|
// = 2 for MSW wells and DF (WELSEGS item 7)
|
||||||
|
|
||||||
|
|
||||||
CompOrd = 98, // Well's completion ordering scheme.
|
CompOrd = 98, // Well's completion ordering scheme.
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -97,6 +109,22 @@ namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems
|
|||||||
// appearance in simulation model's
|
// appearance in simulation model's
|
||||||
// COMPDAT keyword.
|
// COMPDAT keyword.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum PLossMod : int {
|
||||||
|
HFA = 0, // Components of pressure loss in MSW model for well (WELSEGS item 6)
|
||||||
|
// Hydrostatic, Friction, Acceleration
|
||||||
|
|
||||||
|
HF_ = 1, // Hydrostatic, Friction,
|
||||||
|
|
||||||
|
H__ = 2, // Hydrostatic
|
||||||
|
};
|
||||||
|
|
||||||
|
/*enum MPMod : int {
|
||||||
|
HO = 1, // Multiphase flow model for MSW well
|
||||||
|
// Homogeneous flow
|
||||||
|
|
||||||
|
DF = 2, // Drift flux model
|
||||||
|
};*/
|
||||||
} // Value
|
} // Value
|
||||||
} // IWell
|
} // IWell
|
||||||
|
|
||||||
|
@ -186,6 +186,33 @@ namespace {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PLossMod(const Opm::Well& well)
|
||||||
|
{
|
||||||
|
using CPD = ::Opm::WellSegments::CompPressureDrop;
|
||||||
|
using PLM = ::Opm::RestartIO::Helpers::
|
||||||
|
VectorItems::IWell::Value::PLossMod;
|
||||||
|
switch (well.getSegments().compPressureDrop()) {
|
||||||
|
case CPD::HFA: return PLM::HFA;
|
||||||
|
case CPD::HF_: return PLM::HF_;
|
||||||
|
case CPD::H__: return PLM::H__;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*int MPhaseMod(const Opm::Well& well)
|
||||||
|
{
|
||||||
|
using MPM = ::Opm::WellSegments::MultiPhaseModel;
|
||||||
|
using MUM = ::Opm::RestartIO::Helpers::
|
||||||
|
VectorItems::IWell::Value::MPMod;
|
||||||
|
switch (well.getSegments().multiPhaseModel()) {
|
||||||
|
case MPM::HO: return MUM::HO;
|
||||||
|
case MPM::DF: return MUM::DF;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}*/
|
||||||
|
|
||||||
template <typename IWellArray>
|
template <typename IWellArray>
|
||||||
void setCurrentControl(const Opm::Well& well,
|
void setCurrentControl(const Opm::Well& well,
|
||||||
const int curr,
|
const int curr,
|
||||||
@ -268,9 +295,14 @@ namespace {
|
|||||||
// Multi-segmented well information
|
// Multi-segmented well information
|
||||||
iWell[Ix::MsWID] = 0; // MS Well ID (0 or 1..#MS wells)
|
iWell[Ix::MsWID] = 0; // MS Well ID (0 or 1..#MS wells)
|
||||||
iWell[Ix::NWseg] = 0; // Number of well segments
|
iWell[Ix::NWseg] = 0; // Number of well segments
|
||||||
|
iWell[Ix::MSW_PlossMod] = 0; // Segment pressure loss model
|
||||||
|
iWell[Ix::MSW_MulPhaseMod] = 0; // Segment multi phase flow model
|
||||||
if (well.isMultiSegment()) {
|
if (well.isMultiSegment()) {
|
||||||
iWell[Ix::MsWID] = static_cast<int>(msWellID);
|
iWell[Ix::MsWID] = static_cast<int>(msWellID);
|
||||||
iWell[Ix::NWseg] = well.getSegments().size();
|
iWell[Ix::NWseg] = well.getSegments().size();
|
||||||
|
iWell[Ix::MSW_PlossMod] = PLossMod(well);
|
||||||
|
iWell[Ix::MSW_MulPhaseMod] = 1; // temporary solution - valid for HO - multiphase model - only implemented now
|
||||||
|
//iWell[Ix::MSW_MulPhaseMod] = MPhaseMod(well);
|
||||||
}
|
}
|
||||||
|
|
||||||
iWell[Ix::CompOrd] = compOrder(well);
|
iWell[Ix::CompOrd] = compOrder(well);
|
||||||
|
Loading…
Reference in New Issue
Block a user