mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3193 Implement setting BHP and reading it from summary case
This commit is contained in:
parent
9a47cdf8ab
commit
9dd6ccb24d
@ -56,8 +56,9 @@ RicfExportWellPathCompletions::RicfExportWellPathCompletions()
|
|||||||
RICF_InitField(&m_excludeMainBoreForFishbones, "excludeMainBoreForFishbones", false, "Exclude Main Bore for Fishbones", "", "", "");
|
RICF_InitField(&m_excludeMainBoreForFishbones, "excludeMainBoreForFishbones", false, "Exclude Main Bore for Fishbones", "", "", "");
|
||||||
|
|
||||||
RICF_InitField(&m_transScalingType, "transScalingType", RicExportCompletionDataSettingsUi::TransScalingType(), "Transmissibility Scaling Type", "", "", "");
|
RICF_InitField(&m_transScalingType, "transScalingType", RicExportCompletionDataSettingsUi::TransScalingType(), "Transmissibility Scaling Type", "", "", "");
|
||||||
|
RICF_InitField(&m_transScalingTimeStep, "transScalingTimeStep", -1, "Transmissibility Scaling WBHP Time Step", "", "", "");
|
||||||
|
RICF_InitField(&m_transScalingWBHP, "transScalingWBHP", 200.0, "Transmissibility Scaling Constant WBHP", "", "", "");
|
||||||
RICF_InitField(&m_transScalingCorrection, "transScalingCorrection", RicExportCompletionDataSettingsUi::TransScalingCorrection(), "Transmissibility Scaling Correction", "", "", "");
|
RICF_InitField(&m_transScalingCorrection, "transScalingCorrection", RicExportCompletionDataSettingsUi::TransScalingCorrection(), "Transmissibility Scaling Correction", "", "", "");
|
||||||
RICF_InitField(&m_transScalingTimeStep, "transScalingTimeStep", 0, "Transmissibility Scaling Correction", "", "", "");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -82,7 +83,8 @@ void RicfExportWellPathCompletions::execute()
|
|||||||
|
|
||||||
exportSettings->transScalingType = m_transScalingType;
|
exportSettings->transScalingType = m_transScalingType;
|
||||||
exportSettings->transScalingCorrection = m_transScalingCorrection;
|
exportSettings->transScalingCorrection = m_transScalingCorrection;
|
||||||
exportSettings->transScalingPressureTimeStep = m_transScalingTimeStep;
|
exportSettings->transScalingWBHPTimeStep = m_transScalingTimeStep;
|
||||||
|
exportSettings->transScalingWBHP = m_transScalingWBHP;
|
||||||
|
|
||||||
exportSettings->useLateralNTG = m_useLateralNTG;
|
exportSettings->useLateralNTG = m_useLateralNTG;
|
||||||
exportSettings->includePerforations = m_includePerforations;
|
exportSettings->includePerforations = m_includePerforations;
|
||||||
|
@ -49,8 +49,9 @@ private:
|
|||||||
caf::PdmField<RicExportCompletionDataSettingsUi::CombinationModeType> m_combinationMode;
|
caf::PdmField<RicExportCompletionDataSettingsUi::CombinationModeType> m_combinationMode;
|
||||||
|
|
||||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingType> m_transScalingType;
|
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingType> m_transScalingType;
|
||||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingCorrection> m_transScalingCorrection;
|
|
||||||
caf::PdmField<int> m_transScalingTimeStep;
|
caf::PdmField<int> m_transScalingTimeStep;
|
||||||
|
caf::PdmField<double> m_transScalingWBHP;
|
||||||
|
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingCorrection> m_transScalingCorrection;
|
||||||
|
|
||||||
caf::PdmField<bool> m_useLateralNTG;
|
caf::PdmField<bool> m_useLateralNTG;
|
||||||
caf::PdmField<bool> m_includePerforations;
|
caf::PdmField<bool> m_includePerforations;
|
||||||
|
@ -93,9 +93,10 @@ RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi()
|
|||||||
CAF_PDM_InitField(&includeFishbones, "IncludeFishbones", true, "Fishbones", "", "", "");
|
CAF_PDM_InitField(&includeFishbones, "IncludeFishbones", true, "Fishbones", "", "", "");
|
||||||
CAF_PDM_InitField(&includeFractures, "IncludeFractures", true, "Fractures", "", "", "");
|
CAF_PDM_InitField(&includeFractures, "IncludeFractures", true, "Fractures", "", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&transScalingType, "TransScalingType", " PDD Transmissibility Scaling", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&transScalingType, "TransScalingType", " Pressure Diff. Depletion Transmissibility Scaling (BETA)", "", "", "");
|
||||||
CAF_PDM_InitFieldNoDefault(&transScalingCorrection, "TransScalingCorrection", " PDD Transmissibility Scaling Correction", "", "", "");
|
CAF_PDM_InitField(&transScalingWBHPTimeStep, "TransScalingTimeStep", -1, " PDD WBHP from Summary Case Time Step (BETA)", "", "", "");
|
||||||
CAF_PDM_InitField(&transScalingPressureTimeStep, "TransScalingTimeStep", 0, " PDD Pressure Scaling Time Step", "", "", "");
|
CAF_PDM_InitField(&transScalingWBHP, "TransScalingWBHP", 200.0, " PDD Constant WBHP (BETA)", "", "", "");
|
||||||
|
CAF_PDM_InitFieldNoDefault(&transScalingCorrection, "TransScalingCorrection", " PDD Transmissibility Scaling Correction (BETA)", "", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_includeFracturesSummaryHeader,
|
CAF_PDM_InitField(&m_includeFracturesSummaryHeader,
|
||||||
"IncludeFracturesSummaryHeader",
|
"IncludeFracturesSummaryHeader",
|
||||||
@ -205,6 +206,17 @@ void RicExportCompletionDataSettingsUi::fieldChangedByUi(const caf::PdmFieldHand
|
|||||||
includeFractures = true;
|
includeFractures = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (changedField == &transScalingType)
|
||||||
|
{
|
||||||
|
if (transScalingType == RicExportFractureCompletionsImpl::MATRIX_TO_WELL_DP_OVER_INITIAL_DP)
|
||||||
|
{
|
||||||
|
transScalingCorrection = RicExportFractureCompletionsImpl::HOGSTOL_CORRECTION;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
transScalingCorrection = RicExportFractureCompletionsImpl::NO_CORRECTION;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -214,7 +226,7 @@ QList<caf::PdmOptionItemInfo>
|
|||||||
RicExportCompletionDataSettingsUi::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
RicExportCompletionDataSettingsUi::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
||||||
{
|
{
|
||||||
QList<caf::PdmOptionItemInfo> options;
|
QList<caf::PdmOptionItemInfo> options;
|
||||||
if (fieldNeedingOptions == &timeStep || fieldNeedingOptions == &transScalingPressureTimeStep)
|
if (fieldNeedingOptions == &timeStep || fieldNeedingOptions == &transScalingWBHPTimeStep)
|
||||||
{
|
{
|
||||||
QStringList timeStepNames;
|
QStringList timeStepNames;
|
||||||
|
|
||||||
@ -222,7 +234,7 @@ QList<caf::PdmOptionItemInfo>
|
|||||||
{
|
{
|
||||||
timeStepNames = caseToApply->timeStepStrings();
|
timeStepNames = caseToApply->timeStepStrings();
|
||||||
}
|
}
|
||||||
|
options.push_back(caf::PdmOptionItemInfo("Use Constant WBHP", -1));
|
||||||
for (int i = 0; i < timeStepNames.size(); i++)
|
for (int i = 0; i < timeStepNames.size(); i++)
|
||||||
{
|
{
|
||||||
options.push_back(caf::PdmOptionItemInfo(timeStepNames[i], i));
|
options.push_back(caf::PdmOptionItemInfo(timeStepNames[i], i));
|
||||||
@ -270,15 +282,20 @@ void RicExportCompletionDataSettingsUi::defineUiOrdering(QString uiConfigName, c
|
|||||||
if (m_fracturesEnabled)
|
if (m_fracturesEnabled)
|
||||||
{
|
{
|
||||||
group->add(&includeFractures);
|
group->add(&includeFractures);
|
||||||
group->add(&transScalingType);
|
|
||||||
if (transScalingType() != RicExportFractureCompletionsImpl::NO_SCALING)
|
|
||||||
{
|
|
||||||
group->add(&transScalingCorrection);
|
|
||||||
group->add(&transScalingPressureTimeStep);
|
|
||||||
|
|
||||||
}
|
|
||||||
group->add(&m_includeFracturesSummaryHeader);
|
group->add(&m_includeFracturesSummaryHeader);
|
||||||
|
|
||||||
|
group->add(&transScalingType);
|
||||||
|
group->add(&transScalingWBHPTimeStep);
|
||||||
|
group->add(&transScalingWBHP);
|
||||||
|
group->add(&transScalingCorrection);
|
||||||
|
|
||||||
|
transScalingWBHPTimeStep.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING ||
|
||||||
|
transScalingType() != RicExportFractureCompletionsImpl::MATRIX_TO_WELL_DP_OVER_INITIAL_DP);
|
||||||
|
transScalingWBHP.uiCapability()->setUiReadOnly(transScalingWBHPTimeStep.uiCapability()->isUiReadOnly() ||
|
||||||
|
transScalingWBHPTimeStep() != -1);
|
||||||
|
transScalingCorrection.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||||
|
|
||||||
|
|
||||||
// Set visibility
|
// Set visibility
|
||||||
includeFractures.uiCapability()->setUiHidden(compdatExport == WPIMULT_AND_DEFAULT_CONNECTION_FACTORS && !includeMsw);
|
includeFractures.uiCapability()->setUiHidden(compdatExport == WPIMULT_AND_DEFAULT_CONNECTION_FACTORS && !includeMsw);
|
||||||
m_includeFracturesSummaryHeader.uiCapability()->setUiHidden(compdatExport == WPIMULT_AND_DEFAULT_CONNECTION_FACTORS);
|
m_includeFracturesSummaryHeader.uiCapability()->setUiHidden(compdatExport == WPIMULT_AND_DEFAULT_CONNECTION_FACTORS);
|
||||||
|
@ -67,8 +67,9 @@ public:
|
|||||||
caf::PdmField<CompdatExportType> compdatExport;
|
caf::PdmField<CompdatExportType> compdatExport;
|
||||||
|
|
||||||
caf::PdmField<TransScalingType> transScalingType;
|
caf::PdmField<TransScalingType> transScalingType;
|
||||||
|
caf::PdmField<int> transScalingWBHPTimeStep;
|
||||||
|
caf::PdmField<double> transScalingWBHP;
|
||||||
caf::PdmField<TransScalingCorrection> transScalingCorrection;
|
caf::PdmField<TransScalingCorrection> transScalingCorrection;
|
||||||
caf::PdmField<int> transScalingPressureTimeStep;
|
|
||||||
|
|
||||||
caf::PdmField<bool> includeMsw;
|
caf::PdmField<bool> includeMsw;
|
||||||
caf::PdmField<bool> useLateralNTG;
|
caf::PdmField<bool> useLateralNTG;
|
||||||
|
@ -20,22 +20,31 @@
|
|||||||
|
|
||||||
#include "RicWellPathFractureReportItem.h"
|
#include "RicWellPathFractureReportItem.h"
|
||||||
|
|
||||||
|
#include "RiaQDateTimeTools.h"
|
||||||
#include "RiaLogging.h"
|
#include "RiaLogging.h"
|
||||||
|
#include "RiaSummaryTools.h"
|
||||||
|
|
||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
|
#include "RimEclipseResultCase.h"
|
||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimFracture.h"
|
#include "RimFracture.h"
|
||||||
#include "RimFractureContainmentTools.h"
|
#include "RimFractureContainmentTools.h"
|
||||||
#include "RimFractureTemplate.h"
|
#include "RimFractureTemplate.h"
|
||||||
|
#include "RimObservedEclipseUserData.h"
|
||||||
|
#include "RimProject.h"
|
||||||
#include "RimSimWellFracture.h"
|
#include "RimSimWellFracture.h"
|
||||||
#include "RimSimWellFractureCollection.h"
|
#include "RimSimWellFractureCollection.h"
|
||||||
#include "RimSimWellInView.h"
|
#include "RimSimWellInView.h"
|
||||||
|
#include "RimSummaryCase.h"
|
||||||
|
#include "RimSummaryCaseMainCollection.h"
|
||||||
#include "RimStimPlanFractureTemplate.h"
|
#include "RimStimPlanFractureTemplate.h"
|
||||||
#include "RimWellPath.h"
|
#include "RimWellPath.h"
|
||||||
#include "RimWellPathCompletions.h"
|
#include "RimWellPathCompletions.h"
|
||||||
#include "RimWellPathFracture.h"
|
#include "RimWellPathFracture.h"
|
||||||
#include "RimWellPathFractureCollection.h"
|
#include "RimWellPathFractureCollection.h"
|
||||||
|
|
||||||
|
#include "RifEclipseSummaryAddress.h"
|
||||||
|
#include "RifSummaryReaderInterface.h"
|
||||||
#include "RigCaseCellResultsData.h"
|
#include "RigCaseCellResultsData.h"
|
||||||
#include "RigEclipseCaseData.h"
|
#include "RigEclipseCaseData.h"
|
||||||
#include "RigEclipseToStimPlanCalculator.h"
|
#include "RigEclipseToStimPlanCalculator.h"
|
||||||
@ -64,7 +73,8 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
|||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection,
|
||||||
int pressureScalingTimeStep)
|
int pressureScalingTimeStep,
|
||||||
|
double pressureScalingWBHP)
|
||||||
{
|
{
|
||||||
std::vector<const RimFracture*> fracturesAlongWellPath;
|
std::vector<const RimFracture*> fracturesAlongWellPath;
|
||||||
|
|
||||||
@ -80,19 +90,21 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
|||||||
wellPath->wellPathGeometry(),
|
wellPath->wellPathGeometry(),
|
||||||
fracturesAlongWellPath,
|
fracturesAlongWellPath,
|
||||||
fractureDataForReport,
|
fractureDataForReport,
|
||||||
outputStreamForIntermediateResultsText, pressureDropScaling, transCorrection, pressureScalingTimeStep);
|
outputStreamForIntermediateResultsText, pressureDropScaling,
|
||||||
|
transCorrection, pressureScalingTimeStep, pressureScalingWBHP);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<RigCompletionData>
|
std::vector<RigCompletionData>
|
||||||
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
||||||
const RimSimWellInView* well,
|
const RimSimWellInView* well,
|
||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection,
|
||||||
int pressureScalingTimeStep)
|
int pressureScalingTimeStep,
|
||||||
|
double pressureScalingWBHP)
|
||||||
{
|
{
|
||||||
std::vector<RigCompletionData> completionData;
|
std::vector<RigCompletionData> completionData;
|
||||||
|
|
||||||
@ -117,7 +129,8 @@ std::vector<RigCompletionData>
|
|||||||
outputStreamForIntermediateResultsText,
|
outputStreamForIntermediateResultsText,
|
||||||
pressureDropScaling,
|
pressureDropScaling,
|
||||||
transCorrection,
|
transCorrection,
|
||||||
pressureScalingTimeStep);
|
pressureScalingTimeStep,
|
||||||
|
pressureScalingWBHP);
|
||||||
|
|
||||||
completionData.insert(completionData.end(), branchCompletions.begin(), branchCompletions.end());
|
completionData.insert(completionData.end(), branchCompletions.begin(), branchCompletions.end());
|
||||||
}
|
}
|
||||||
@ -134,10 +147,11 @@ std::vector<RigCompletionData>
|
|||||||
const RigWellPath* wellPathGeometry,
|
const RigWellPath* wellPathGeometry,
|
||||||
const std::vector<const RimFracture*>& fractures,
|
const std::vector<const RimFracture*>& fractures,
|
||||||
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection,
|
||||||
int pressureScalingTimeStep)
|
int pressureScalingTimeStep,
|
||||||
|
double pressureScalingWBHP)
|
||||||
{
|
{
|
||||||
std::vector<RigCompletionData> fractureCompletions;
|
std::vector<RigCompletionData> fractureCompletions;
|
||||||
|
|
||||||
@ -196,7 +210,8 @@ std::vector<RigCompletionData>
|
|||||||
outputStreamForIntermediateResultsText,
|
outputStreamForIntermediateResultsText,
|
||||||
pressureDropScaling,
|
pressureDropScaling,
|
||||||
transCorrection,
|
transCorrection,
|
||||||
pressureScalingTimeStep);
|
pressureScalingTimeStep,
|
||||||
|
pressureScalingWBHP);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -211,7 +226,8 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
|||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection,
|
||||||
int pressureScalingTimeStep)
|
int pressureScalingTimeStep,
|
||||||
|
double pressureScalingWBHP)
|
||||||
{
|
{
|
||||||
std::vector<RigCompletionData> fractureCompletions;
|
std::vector<RigCompletionData> fractureCompletions;
|
||||||
|
|
||||||
@ -243,10 +259,13 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: extract well pressure
|
double originalWellPressure = pressureScalingWBHP;
|
||||||
double originalWellPressure = 200;
|
double currentWellPressure = pressureScalingWBHP;
|
||||||
double currentWellPressure = 200;
|
if (pressureDropScaling == MATRIX_TO_WELL_DP_OVER_INITIAL_DP && pressureScalingTimeStep != -1)
|
||||||
|
{
|
||||||
|
// Find well pressures (WBHP) from summary case.
|
||||||
|
getWellPressuresFromSummaryData(caseToApply, wellPathName, pressureScalingTimeStep, &originalWellPressure, ¤tWellPressure);
|
||||||
|
}
|
||||||
// To handle several fractures in the same eclipse cell we need to keep track of the transmissibility
|
// To handle several fractures in the same eclipse cell we need to keep track of the transmissibility
|
||||||
// to the well from each fracture intersecting the cell and sum these transmissibilities at the end.
|
// to the well from each fracture intersecting the cell and sum these transmissibilities at the end.
|
||||||
// std::map <eclipseCellIndex ,map< fracture, trans> >
|
// std::map <eclipseCellIndex ,map< fracture, trans> >
|
||||||
@ -396,6 +415,49 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
|||||||
return fractureCompletions;
|
return fractureCompletions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RicExportFractureCompletionsImpl::getWellPressuresFromSummaryData(const RimEclipseCase* caseToApply, const QString &wellPathName, int currentTimeStep, double* originalWellPressure, double* currentWellPressure)
|
||||||
|
{
|
||||||
|
const RimEclipseResultCase* resultCase = dynamic_cast<const RimEclipseResultCase*>(caseToApply);
|
||||||
|
if (resultCase)
|
||||||
|
{
|
||||||
|
std::vector<QDateTime> caseTimeSteps = resultCase->timeStepDates();
|
||||||
|
QDateTime originalDate = caseTimeSteps.front();
|
||||||
|
QDateTime currentDate = caseTimeSteps[currentTimeStep];
|
||||||
|
|
||||||
|
RifEclipseSummaryAddress wbhpPressureAddress = RifEclipseSummaryAddress::wellAddress("WBHP", wellPathName.toStdString());
|
||||||
|
RimSummaryCaseMainCollection* mainCollection = RiaSummaryTools::summaryCaseMainCollection();
|
||||||
|
if (mainCollection)
|
||||||
|
{
|
||||||
|
RimSummaryCase* summaryCase = mainCollection->findSummaryCaseFromEclipseResultCase(resultCase);
|
||||||
|
|
||||||
|
if (summaryCase)
|
||||||
|
{
|
||||||
|
std::vector<double> values;
|
||||||
|
if (summaryCase->summaryReader()->values(wbhpPressureAddress, &values))
|
||||||
|
{
|
||||||
|
std::vector<time_t> summaryTimeSteps = summaryCase->summaryReader()->timeSteps(wbhpPressureAddress);
|
||||||
|
CVF_ASSERT(values.size() == summaryTimeSteps.size());
|
||||||
|
for (size_t i = 0; i < summaryTimeSteps.size(); ++i)
|
||||||
|
{
|
||||||
|
QDateTime summaryDate = RiaQDateTimeTools::fromTime_t(summaryTimeSteps[i]);
|
||||||
|
if (summaryDate == originalDate)
|
||||||
|
{
|
||||||
|
*originalWellPressure = values[i];
|
||||||
|
}
|
||||||
|
if (summaryDate == currentDate)
|
||||||
|
{
|
||||||
|
*currentWellPressure = values[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -63,14 +63,16 @@ public:
|
|||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
||||||
PressureDepletionTransCorrection transCorrection = NO_CORRECTION,
|
PressureDepletionTransCorrection transCorrection = NO_CORRECTION,
|
||||||
int pressureScalingTimeStep = 0);
|
int pressureScalingTimeStep = 0,
|
||||||
|
double pressureScalingWBHP = 200.0);
|
||||||
|
|
||||||
static std::vector<RigCompletionData> generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
static std::vector<RigCompletionData> generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
||||||
const RimSimWellInView* well,
|
const RimSimWellInView* well,
|
||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection,
|
||||||
int pressureScalingTimeStep);
|
int pressureScalingTimeStep,
|
||||||
|
double pressureScalingWBHP = 200.0);
|
||||||
|
|
||||||
static std::vector<RigCompletionData> generateCompdatValues(RimEclipseCase* caseToApply,
|
static std::vector<RigCompletionData> generateCompdatValues(RimEclipseCase* caseToApply,
|
||||||
const QString& wellPathName,
|
const QString& wellPathName,
|
||||||
@ -78,9 +80,10 @@ public:
|
|||||||
const std::vector<const RimFracture*>& fractures,
|
const std::vector<const RimFracture*>& fractures,
|
||||||
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection = NO_CORRECTION,
|
||||||
int pressureScalingTimeStep);
|
int pressureScalingTimeStep = 0,
|
||||||
|
double pressureScalingWBHP = 200.0);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::vector<RigCompletionData> generateCompdatValuesConst(const RimEclipseCase* caseToApply,
|
static std::vector<RigCompletionData> generateCompdatValuesConst(const RimEclipseCase* caseToApply,
|
||||||
@ -91,7 +94,10 @@ private:
|
|||||||
QTextStream* outputStreamForIntermediateResultsText,
|
QTextStream* outputStreamForIntermediateResultsText,
|
||||||
PressureDepletionTransScaling pressureDropScaling,
|
PressureDepletionTransScaling pressureDropScaling,
|
||||||
PressureDepletionTransCorrection transCorrection,
|
PressureDepletionTransCorrection transCorrection,
|
||||||
int pressureScalingTimeStep);
|
int pressureScalingTimeStep,
|
||||||
|
double pressureScalingWBHP);
|
||||||
|
|
||||||
|
static void getWellPressuresFromSummaryData(const RimEclipseCase* caseToApply, const QString &wellPathName, int currentTimeStep, double* originalWellPressure, double* currentWellPressure);
|
||||||
|
|
||||||
static bool checkForStimPlanConductivity(const RimFractureTemplate* fracTemplate, const RimFracture* fracture);
|
static bool checkForStimPlanConductivity(const RimFractureTemplate* fracTemplate, const RimFracture* fracture);
|
||||||
|
|
||||||
|
@ -228,7 +228,8 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
|
|||||||
fractureTransmissibilityExportInformationStream.get(),
|
fractureTransmissibilityExportInformationStream.get(),
|
||||||
exportSettings.transScalingType(),
|
exportSettings.transScalingType(),
|
||||||
exportSettings.transScalingCorrection(),
|
exportSettings.transScalingCorrection(),
|
||||||
exportSettings.transScalingPressureTimeStep());
|
exportSettings.transScalingWBHPTimeStep(),
|
||||||
|
exportSettings.transScalingWBHP());
|
||||||
|
|
||||||
appendCompletionData(&completionsPerEclipseCellAllCompletionTypes, fractureCompletionData);
|
appendCompletionData(&completionsPerEclipseCellAllCompletionTypes, fractureCompletionData);
|
||||||
appendCompletionData(&completionsPerEclipseCellFracture, fractureCompletionData);
|
appendCompletionData(&completionsPerEclipseCellFracture, fractureCompletionData);
|
||||||
@ -269,7 +270,8 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
|
|||||||
std::vector<RigCompletionData> fractureCompletionData =
|
std::vector<RigCompletionData> fractureCompletionData =
|
||||||
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(
|
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(
|
||||||
exportSettings.caseToApply(), simWell, fractureTransmissibilityExportInformationStream.get(),
|
exportSettings.caseToApply(), simWell, fractureTransmissibilityExportInformationStream.get(),
|
||||||
exportSettings.transScalingType(), exportSettings.transScalingCorrection(), exportSettings.transScalingPressureTimeStep());
|
exportSettings.transScalingType(), exportSettings.transScalingCorrection(),
|
||||||
|
exportSettings.transScalingWBHPTimeStep(), exportSettings.transScalingWBHP());
|
||||||
appendCompletionData(&completionsPerEclipseCell, fractureCompletionData);
|
appendCompletionData(&completionsPerEclipseCell, fractureCompletionData);
|
||||||
|
|
||||||
for (auto& data : completionsPerEclipseCell)
|
for (auto& data : completionsPerEclipseCell)
|
||||||
@ -1808,10 +1810,7 @@ RicMswExportInfo
|
|||||||
wellPath->wellPathGeometry(),
|
wellPath->wellPathGeometry(),
|
||||||
{ fracture },
|
{ fracture },
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr);
|
||||||
RicExportFractureCompletionsImpl::NO_SCALING,
|
|
||||||
RicExportFractureCompletionsImpl::NO_CORRECTION,
|
|
||||||
0);
|
|
||||||
|
|
||||||
assignFractureIntersections(caseToApply, fracture, completionData, &location, &foundSubGridIntersections);
|
assignFractureIntersections(caseToApply, fracture, completionData, &location, &foundSubGridIntersections);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user