SWEL/XWEL: Guard Against Missing Summary Vectors
Commit 36af2aad
(PR #496) switched to not calculating the well's
summary vectors in the case of outputting the initial condition
(SEQNUM=0). Account for this possibility when creating SWEL and
XWEL.
This commit is contained in:
parent
fa9275f1af
commit
b03ccdc6e1
@ -485,11 +485,6 @@ namespace {
|
||||
{
|
||||
return static_cast<float>(units.from_si(u, x));
|
||||
};
|
||||
|
||||
auto get = [&smry, &well](const std::string& vector)
|
||||
{
|
||||
return smry.get(vector + ':' + well.name());
|
||||
};
|
||||
|
||||
assignDefaultSWell(sWell);
|
||||
|
||||
@ -524,10 +519,11 @@ namespace {
|
||||
sWell[Ix::ResVRateTarget] =
|
||||
swprop(M::rate, pp.ResVRate);
|
||||
}
|
||||
else {
|
||||
else if (smry.has("WVPR:" + well.name())) {
|
||||
// Write out summary voidage production rate if
|
||||
// target/limit is not set
|
||||
sWell[Ix::ResVRateTarget] = get("WVPR");
|
||||
sWell[Ix::ResVRateTarget] =
|
||||
static_cast<float>(smry.get("WVPR:" + well.name()));
|
||||
}
|
||||
|
||||
if (pp.THPLimit != 0.0) {
|
||||
@ -621,7 +617,9 @@ namespace {
|
||||
|
||||
auto get = [&smry, &well](const std::string& vector)
|
||||
{
|
||||
return smry.get(vector + ':' + well);
|
||||
const auto key = vector + ':' + well;
|
||||
|
||||
return smry.has(key) ? smry.get(key) : 0.0;
|
||||
};
|
||||
|
||||
xWell[Ix::OilPrRate] = get("WOPR");
|
||||
@ -658,7 +656,9 @@ namespace {
|
||||
|
||||
auto get = [&smry, &well](const std::string& vector)
|
||||
{
|
||||
return smry.get(vector + ':' + well);
|
||||
const auto key = vector + ':' + well;
|
||||
|
||||
return smry.has(key) ? smry.get(key) : 0.0;
|
||||
};
|
||||
|
||||
// Injection rates reported as negative, cumulative
|
||||
@ -688,7 +688,9 @@ namespace {
|
||||
|
||||
auto get = [&smry, &well](const std::string& vector)
|
||||
{
|
||||
return smry.get(vector + ':' + well);
|
||||
const auto key = vector + ':' + well;
|
||||
|
||||
return smry.has(key) ? smry.get(key) : 0.0;
|
||||
};
|
||||
|
||||
// Injection rates reported as negative production rates,
|
||||
@ -701,9 +703,10 @@ namespace {
|
||||
if (ecl_compatible_rst) {
|
||||
xWell[Ix::GasInjTotal] = get("WGIT");
|
||||
}
|
||||
|
||||
xWell[Ix::GasFVF] = xWell[Ix::VoidPrRate]
|
||||
/ xWell[Ix::GasPrRate];
|
||||
|
||||
xWell[Ix::GasFVF] = (std::abs(xWell[Ix::GasPrRate]) > 0.0)
|
||||
? xWell[Ix::VoidPrRate] / xWell[Ix::GasPrRate]
|
||||
: 0.0;
|
||||
|
||||
// Not fully characterised.
|
||||
xWell[Ix::item38] = xWell[Ix::GasPrRate];
|
||||
|
Loading…
Reference in New Issue
Block a user