mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3670 Implement initial WBHP changes.
This commit is contained in:
parent
7963a18928
commit
ea053eac2d
@ -58,7 +58,7 @@ RicfExportWellPathCompletions::RicfExportWellPathCompletions()
|
||||
|
||||
RICF_InitField(&m_transScalingType, "transScalingType", RicExportCompletionDataSettingsUi::TransScalingType(), "Transmissibility Scaling Type", "", "", "");
|
||||
RICF_InitField(&m_transScalingTimeStep, "transScalingTimeStep", 0, "Transmissibility Scaling Pressure Time Step", "", "", "");
|
||||
RICF_InitField(&m_transScalingSummaryWBHP, "transScalingWBHPFromSummary", true, "Transmissibility Scaling WBHP from summary", "", "", "");
|
||||
RICF_InitField(&m_transScalingInitialWBHP, "transScalingWBHPFromSummary", RicExportCompletionDataSettingsUi::TransScalingInitialWBHP(), "Transmissibility Scaling WBHP from summary", "", "", "");
|
||||
RICF_InitField(&m_transScalingWBHP, "transScalingWBHP", 200.0, "Transmissibility Scaling Constant WBHP Value", "", "", "");
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ void RicfExportWellPathCompletions::execute()
|
||||
|
||||
exportSettings->transScalingType = m_transScalingType;
|
||||
exportSettings->transScalingTimeStep = m_transScalingTimeStep;
|
||||
exportSettings->transScalingSummaryWBHP = m_transScalingSummaryWBHP;
|
||||
exportSettings->transScalingInitialWBHP = m_transScalingInitialWBHP;
|
||||
exportSettings->transScalingWBHP = m_transScalingWBHP;
|
||||
|
||||
exportSettings->useLateralNTG = m_useLateralNTG;
|
||||
|
@ -48,10 +48,10 @@ private:
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::CompdatExportType> m_compdatExport;
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::CombinationModeType> m_combinationMode;
|
||||
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingType> m_transScalingType;
|
||||
caf::PdmField<int> m_transScalingTimeStep;
|
||||
caf::PdmField<bool> m_transScalingSummaryWBHP;
|
||||
caf::PdmField<double> m_transScalingWBHP;
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingType> m_transScalingType;
|
||||
caf::PdmField<int> m_transScalingTimeStep;
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingInitialWBHP> m_transScalingInitialWBHP;
|
||||
caf::PdmField<double> m_transScalingWBHP;
|
||||
|
||||
caf::PdmField<bool> m_useLateralNTG;
|
||||
caf::PdmField<bool> m_includePerforations;
|
||||
|
@ -65,6 +65,16 @@ namespace caf
|
||||
|
||||
setDefault(RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
}
|
||||
|
||||
template<>
|
||||
void RicExportCompletionDataSettingsUi::TransScalingInitialWBHP::setUp()
|
||||
{
|
||||
addItem(RicExportFractureCompletionsImpl::FROM_PRODUCTION_START, "PROD_START", "Initial WBHP From Production Start");
|
||||
addItem(RicExportFractureCompletionsImpl::FROM_PRODUCTION_START_W_MIN, "PROD_START_MIN", "Initial WBHP From Production Start With Minimum WBHP");
|
||||
addItem(RicExportFractureCompletionsImpl::FIXED_INITIAL_WBHP, "FIXED_INITIAL_WBHP", "Fixed Initial WBHP");
|
||||
|
||||
setDefault(RicExportFractureCompletionsImpl::FROM_PRODUCTION_START);
|
||||
}
|
||||
}
|
||||
// clang-format on
|
||||
|
||||
@ -91,10 +101,10 @@ RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi()
|
||||
CAF_PDM_InitField(&includeFishbones, "IncludeFishbones", true, "Fishbones", "", "", "");
|
||||
CAF_PDM_InitField(&includeFractures, "IncludeFractures", true, "Fractures", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&transScalingType, "TransScalingType", " Pressure Diff. Depletion Transmissibility Scaling (BETA)", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingTimeStep, "TransScalingTimeStep", 0, " PDD Current Pressure Time Step (BETA)", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingWBHP, "TransScalingWBHP", 200.0, " PDD Default WBHP Value (BETA)", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingSummaryWBHP, "TransScalingWBHPFromCurrentTime", true, " PDD WBHP from Summary File at Current Time (BETA)", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&transScalingType, "TransScalingType", " Pressure Diff. Depletion Transmissibility Scaling", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingTimeStep, "TransScalingTimeStep", 0, " PDD Current WBHP Time Step", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&transScalingInitialWBHP, "TransScalingInitialWBHP", " PDD Initial WBHP Selection", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingWBHP, "TransScalingWBHP", 200.0, " PDD Initial WBHP Value", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&excludeMainBoreForFishbones,
|
||||
"ExcludeMainBoreForFishbones",
|
||||
@ -319,12 +329,36 @@ void RicExportCompletionDataSettingsUi::defineUiOrdering(QString uiConfigName, c
|
||||
{
|
||||
group->add(&transScalingType);
|
||||
group->add(&transScalingTimeStep);
|
||||
group->add(&transScalingInitialWBHP);
|
||||
group->add(&transScalingWBHP);
|
||||
group->add(&transScalingSummaryWBHP);
|
||||
|
||||
transScalingTimeStep.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
transScalingWBHP.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
transScalingSummaryWBHP.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
if (transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING)
|
||||
{
|
||||
transScalingTimeStep.uiCapability()->setUiReadOnly(true);
|
||||
transScalingInitialWBHP.uiCapability()->setUiReadOnly(true);
|
||||
transScalingWBHP.uiCapability()->setUiReadOnly(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
transScalingTimeStep.uiCapability()->setUiReadOnly(false);
|
||||
transScalingInitialWBHP.uiCapability()->setUiReadOnly(false);
|
||||
if (transScalingInitialWBHP == RicExportFractureCompletionsImpl::FROM_PRODUCTION_START)
|
||||
{
|
||||
transScalingWBHP.uiCapability()->setUiReadOnly(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
transScalingWBHP.uiCapability()->setUiReadOnly(false);
|
||||
if (transScalingInitialWBHP == RicExportFractureCompletionsImpl::FROM_PRODUCTION_START_W_MIN)
|
||||
{
|
||||
transScalingWBHP.uiCapability()->setUiName(" PDD Minimum Initial WBHP");
|
||||
}
|
||||
else
|
||||
{
|
||||
transScalingWBHP.uiCapability()->setUiName(" PDD Fixed Initial WBHP");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set visibility
|
||||
|
@ -57,6 +57,7 @@ public:
|
||||
typedef caf::AppEnum<CombinationMode> CombinationModeType;
|
||||
|
||||
typedef caf::AppEnum<RicExportFractureCompletionsImpl::PressureDepletionTransScaling> TransScalingType;
|
||||
typedef caf::AppEnum<RicExportFractureCompletionsImpl::PressureDepletionInitialWBHP> TransScalingInitialWBHP;
|
||||
|
||||
RicExportCompletionDataSettingsUi();
|
||||
|
||||
@ -67,7 +68,7 @@ public:
|
||||
|
||||
caf::PdmField<TransScalingType> transScalingType;
|
||||
caf::PdmField<int> transScalingTimeStep;
|
||||
caf::PdmField<bool> transScalingSummaryWBHP;
|
||||
caf::PdmField<TransScalingInitialWBHP> transScalingInitialWBHP;
|
||||
caf::PdmField<double> transScalingWBHP;
|
||||
|
||||
caf::PdmField<bool> includeMsw;
|
||||
|
@ -228,21 +228,45 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
PressureDepletionTransScaling currentPressureDropScaling = pdParams.pressureDropScaling;
|
||||
|
||||
int initialWellProductionTimeStep = 0;
|
||||
double initialWellPressure = pdParams.pressureScalingWBHP;
|
||||
double currentWellPressure = pdParams.pressureScalingWBHP;
|
||||
if (currentPressureDropScaling != NO_SCALING && pdParams.wbhpFromSummaryCase)
|
||||
double initialWellPressure = 0;
|
||||
double currentWellPressure = 0;
|
||||
|
||||
if (currentPressureDropScaling != NO_SCALING)
|
||||
{
|
||||
double minimumWBHP = pdParams.pressureScalingWBHP;
|
||||
|
||||
double initialWBHPFromSummary = 0.0;
|
||||
double currentWBHPFromSummary = 0.0;
|
||||
// Find well pressures (WBHP) from summary case.
|
||||
getWellPressuresAndInitialProductionTimeStepFromSummaryData(caseToApply,
|
||||
wellPathName,
|
||||
pdParams.pressureScalingTimeStep,
|
||||
&initialWellProductionTimeStep,
|
||||
&initialWellPressure,
|
||||
¤tWellPressure);
|
||||
&initialWBHPFromSummary,
|
||||
¤tWBHPFromSummary);
|
||||
|
||||
// Don't perform any scaling for this well if the current time step is before the initial well production time step.
|
||||
if (pdParams.pressureScalingTimeStep <= initialWellProductionTimeStep)
|
||||
currentWellPressure = currentWBHPFromSummary;
|
||||
if (pdParams.initialWbhpSource == FROM_PRODUCTION_START)
|
||||
{
|
||||
initialWellPressure = initialWBHPFromSummary;
|
||||
}
|
||||
else if (pdParams.initialWbhpSource == FROM_PRODUCTION_START_W_MIN)
|
||||
{
|
||||
initialWellPressure = initialWBHPFromSummary;
|
||||
if (pdParams.pressureScalingTimeStep <= initialWellProductionTimeStep)
|
||||
{
|
||||
initialWellPressure = minimumWBHP;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
initialWellPressure = minimumWBHP;
|
||||
}
|
||||
|
||||
// Final check for initial vs current pressure to see if scaling is valid
|
||||
if (std::fabs(initialWellPressure - currentWellPressure) < 1.0e-6)
|
||||
{
|
||||
// Don't perform scaling if current pressure is equal to initial.
|
||||
currentPressureDropScaling = NO_SCALING;
|
||||
}
|
||||
}
|
||||
|
@ -51,24 +51,31 @@ public:
|
||||
MATRIX_TO_WELL_DP_OVER_MAX_INITIAL_DP
|
||||
};
|
||||
|
||||
enum PressureDepletionInitialWBHP
|
||||
{
|
||||
FROM_PRODUCTION_START,
|
||||
FROM_PRODUCTION_START_W_MIN,
|
||||
FIXED_INITIAL_WBHP
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
struct PressureDepletionParameters
|
||||
{
|
||||
PressureDepletionParameters(PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
||||
int pressureScalingTimeStep = 0,
|
||||
bool wbhpFromSummaryCase = false,
|
||||
double pressureScalingWBHP = 200.0)
|
||||
int pressureScalingTimeStep = 0,
|
||||
PressureDepletionInitialWBHP initialWbhpSource = FROM_PRODUCTION_START,
|
||||
double pressureScalingWBHP = 200.0)
|
||||
: pressureDropScaling(pressureDropScaling)
|
||||
, pressureScalingTimeStep(pressureScalingTimeStep)
|
||||
, wbhpFromSummaryCase(wbhpFromSummaryCase)
|
||||
, initialWbhpSource(initialWbhpSource)
|
||||
, pressureScalingWBHP(pressureScalingWBHP)
|
||||
{}
|
||||
|
||||
PressureDepletionTransScaling pressureDropScaling;
|
||||
int pressureScalingTimeStep;
|
||||
bool wbhpFromSummaryCase;
|
||||
PressureDepletionInitialWBHP initialWbhpSource;
|
||||
double pressureScalingWBHP;
|
||||
};
|
||||
|
||||
|
@ -247,7 +247,7 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
|
||||
fractureTransmissibilityExportInformationStream.get(),
|
||||
RicExportFractureCompletionsImpl::PressureDepletionParameters(exportSettings.transScalingType(),
|
||||
exportSettings.transScalingTimeStep(),
|
||||
exportSettings.transScalingSummaryWBHP(),
|
||||
exportSettings.transScalingInitialWBHP(),
|
||||
exportSettings.transScalingWBHP()));
|
||||
|
||||
appendCompletionData(&completionsPerEclipseCellAllCompletionTypes, fractureCompletionData);
|
||||
@ -293,7 +293,7 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
|
||||
fractureTransmissibilityExportInformationStream.get(),
|
||||
RicExportFractureCompletionsImpl::PressureDepletionParameters(exportSettings.transScalingType(),
|
||||
exportSettings.transScalingTimeStep(),
|
||||
exportSettings.transScalingSummaryWBHP(),
|
||||
exportSettings.transScalingInitialWBHP(),
|
||||
exportSettings.transScalingWBHP()));
|
||||
|
||||
appendCompletionData(&completionsPerEclipseCell, fractureCompletionData);
|
||||
@ -2638,9 +2638,17 @@ QString RicWellPathExportCompletionDataFeatureImpl::createPressureDepletionFileN
|
||||
|
||||
suffix += QString("B_");
|
||||
|
||||
if (exportSettings.transScalingSummaryWBHP())
|
||||
if (exportSettings.transScalingInitialWBHP() == RicExportFractureCompletionsImpl::FROM_PRODUCTION_START)
|
||||
{
|
||||
suffix += QString("_SUMM_");
|
||||
suffix += QString("_WBHPROD_");
|
||||
}
|
||||
else if (exportSettings.transScalingInitialWBHP() == RicExportFractureCompletionsImpl::FROM_PRODUCTION_START_W_MIN)
|
||||
{
|
||||
suffix += QString("_WBHPMIN_");
|
||||
}
|
||||
else
|
||||
{
|
||||
suffix += QString("_WBHPFIX_");
|
||||
}
|
||||
|
||||
RimEclipseCase* eclipseCase = exportSettings.caseToApply();
|
||||
|
Loading…
Reference in New Issue
Block a user