mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3375 FIx prototype UI to set constant WBHP separately from current time step.
This commit is contained in:
parent
96973c2dfc
commit
06817522d0
@ -56,8 +56,9 @@ RicfExportWellPathCompletions::RicfExportWellPathCompletions()
|
||||
RICF_InitField(&m_excludeMainBoreForFishbones, "excludeMainBoreForFishbones", false, "Exclude Main Bore for Fishbones", "", "", "");
|
||||
|
||||
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_transScalingTimeStep, "transScalingTimeStep", -1, "Transmissibility Scaling Pressure Time Step", "", "", "");
|
||||
RICF_InitField(&m_transScalingSummaryWBHP, "transScalingWBHPFromSummary", true, "Transmissibility Scaling WBHP from summary", "", "", "");
|
||||
RICF_InitField(&m_transScalingWBHP, "transScalingWBHP", 200.0, "Transmissibility Scaling Constant WBHP Value", "", "", "");
|
||||
RICF_InitField(&m_transScalingCorrection, "transScalingCorrection", RicExportCompletionDataSettingsUi::TransScalingCorrection(), "Transmissibility Scaling Correction", "", "", "");
|
||||
}
|
||||
|
||||
@ -83,7 +84,8 @@ void RicfExportWellPathCompletions::execute()
|
||||
|
||||
exportSettings->transScalingType = m_transScalingType;
|
||||
exportSettings->transScalingCorrection = m_transScalingCorrection;
|
||||
exportSettings->transScalingWBHPTimeStep = m_transScalingTimeStep;
|
||||
exportSettings->transScalingTimeStep = m_transScalingTimeStep;
|
||||
exportSettings->transScalingSummaryWBHP = m_transScalingSummaryWBHP;
|
||||
exportSettings->transScalingWBHP = m_transScalingWBHP;
|
||||
|
||||
exportSettings->useLateralNTG = m_useLateralNTG;
|
||||
|
@ -50,6 +50,7 @@ private:
|
||||
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingType> m_transScalingType;
|
||||
caf::PdmField<int> m_transScalingTimeStep;
|
||||
caf::PdmField<bool> m_transScalingSummaryWBHP;
|
||||
caf::PdmField<double> m_transScalingWBHP;
|
||||
caf::PdmField<RicExportCompletionDataSettingsUi::TransScalingCorrection> m_transScalingCorrection;
|
||||
|
||||
|
@ -94,9 +94,10 @@ RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi()
|
||||
CAF_PDM_InitField(&includeFractures, "IncludeFractures", true, "Fractures", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&transScalingType, "TransScalingType", " Pressure Diff. Depletion Transmissibility Scaling (BETA)", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingWBHPTimeStep, "TransScalingTimeStep", -1, " PDD WBHP from Summary Case Time Step (BETA)", "", "", "");
|
||||
CAF_PDM_InitField(&transScalingWBHP, "TransScalingWBHP", 200.0, " PDD Constant WBHP (BETA)", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&transScalingCorrection, "TransScalingCorrection", " PDD Transmissibility Scaling Correction (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_InitField(&m_includeFracturesSummaryHeader,
|
||||
"IncludeFracturesSummaryHeader",
|
||||
@ -226,7 +227,7 @@ QList<caf::PdmOptionItemInfo>
|
||||
RicExportCompletionDataSettingsUi::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
if (fieldNeedingOptions == &timeStep || fieldNeedingOptions == &transScalingWBHPTimeStep)
|
||||
if (fieldNeedingOptions == &timeStep || fieldNeedingOptions == &transScalingTimeStep)
|
||||
{
|
||||
QStringList timeStepNames;
|
||||
|
||||
@ -234,7 +235,6 @@ QList<caf::PdmOptionItemInfo>
|
||||
{
|
||||
timeStepNames = caseToApply->timeStepStrings();
|
||||
}
|
||||
options.push_back(caf::PdmOptionItemInfo("Use Constant WBHP", -1));
|
||||
for (int i = 0; i < timeStepNames.size(); i++)
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(timeStepNames[i], i));
|
||||
@ -285,14 +285,15 @@ void RicExportCompletionDataSettingsUi::defineUiOrdering(QString uiConfigName, c
|
||||
group->add(&m_includeFracturesSummaryHeader);
|
||||
|
||||
group->add(&transScalingType);
|
||||
group->add(&transScalingWBHPTimeStep);
|
||||
group->add(&transScalingWBHP);
|
||||
group->add(&transScalingCorrection);
|
||||
group->add(&transScalingTimeStep);
|
||||
group->add(&transScalingWBHP);
|
||||
group->add(&transScalingSummaryWBHP);
|
||||
|
||||
transScalingWBHPTimeStep.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
transScalingWBHP.uiCapability()->setUiReadOnly(transScalingWBHPTimeStep.uiCapability()->isUiReadOnly() ||
|
||||
transScalingWBHPTimeStep() != -1);
|
||||
transScalingCorrection.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
transScalingTimeStep.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
transScalingWBHP.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
transScalingSummaryWBHP.uiCapability()->setUiReadOnly(transScalingType() == RicExportFractureCompletionsImpl::NO_SCALING);
|
||||
|
||||
|
||||
// Set visibility
|
||||
|
@ -67,7 +67,8 @@ public:
|
||||
caf::PdmField<CompdatExportType> compdatExport;
|
||||
|
||||
caf::PdmField<TransScalingType> transScalingType;
|
||||
caf::PdmField<int> transScalingWBHPTimeStep;
|
||||
caf::PdmField<int> transScalingTimeStep;
|
||||
caf::PdmField<bool> transScalingSummaryWBHP;
|
||||
caf::PdmField<double> transScalingWBHP;
|
||||
caf::PdmField<TransScalingCorrection> transScalingCorrection;
|
||||
|
||||
|
@ -71,10 +71,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
RimEclipseCase* caseToApply,
|
||||
std::vector<RicWellPathFractureReportItem>* fractureDataForReport,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling,
|
||||
PressureDepletionTransCorrection transCorrection,
|
||||
int pressureScalingTimeStep,
|
||||
double pressureScalingWBHP)
|
||||
PressureDepletionParameters pdParams)
|
||||
{
|
||||
std::vector<const RimFracture*> fracturesAlongWellPath;
|
||||
|
||||
@ -90,21 +87,18 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
wellPath->wellPathGeometry(),
|
||||
fracturesAlongWellPath,
|
||||
fractureDataForReport,
|
||||
outputStreamForIntermediateResultsText, pressureDropScaling,
|
||||
transCorrection, pressureScalingTimeStep, pressureScalingWBHP);
|
||||
outputStreamForIntermediateResultsText,
|
||||
pdParams);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RigCompletionData>
|
||||
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
||||
const RimSimWellInView* well,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling,
|
||||
PressureDepletionTransCorrection transCorrection,
|
||||
int pressureScalingTimeStep,
|
||||
double pressureScalingWBHP)
|
||||
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
||||
const RimSimWellInView* well,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionParameters pdParams)
|
||||
{
|
||||
std::vector<RigCompletionData> completionData;
|
||||
|
||||
@ -121,16 +115,8 @@ std::vector<RigCompletionData>
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<RigCompletionData> branchCompletions = generateCompdatValues(eclipseCase,
|
||||
well->name(),
|
||||
branches[branchIndex],
|
||||
fractures,
|
||||
nullptr,
|
||||
outputStreamForIntermediateResultsText,
|
||||
pressureDropScaling,
|
||||
transCorrection,
|
||||
pressureScalingTimeStep,
|
||||
pressureScalingWBHP);
|
||||
std::vector<RigCompletionData> branchCompletions = generateCompdatValues(
|
||||
eclipseCase, well->name(), branches[branchIndex], fractures, nullptr, outputStreamForIntermediateResultsText, pdParams);
|
||||
|
||||
completionData.insert(completionData.end(), branchCompletions.begin(), branchCompletions.end());
|
||||
}
|
||||
@ -147,11 +133,8 @@ std::vector<RigCompletionData>
|
||||
const RigWellPath* wellPathGeometry,
|
||||
const std::vector<const RimFracture*>& fractures,
|
||||
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling,
|
||||
PressureDepletionTransCorrection transCorrection,
|
||||
int pressureScalingTimeStep,
|
||||
double pressureScalingWBHP)
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionParameters pdParams)
|
||||
{
|
||||
std::vector<RigCompletionData> fractureCompletions;
|
||||
|
||||
@ -196,7 +179,7 @@ std::vector<RigCompletionData>
|
||||
caseToApply->loadStaticResultsByName(resultNames);
|
||||
}
|
||||
|
||||
if (pressureDropScaling != NO_SCALING)
|
||||
if (pdParams.pressureDropScaling != NO_SCALING)
|
||||
{
|
||||
RigCaseCellResultsData* results = caseToApply->results(RiaDefines::MATRIX_MODEL);
|
||||
results->findOrLoadScalarResult(RiaDefines::DYNAMIC_NATIVE, "PRESSURE");
|
||||
@ -208,10 +191,7 @@ std::vector<RigCompletionData>
|
||||
fractures,
|
||||
fractureDataReportItems,
|
||||
outputStreamForIntermediateResultsText,
|
||||
pressureDropScaling,
|
||||
transCorrection,
|
||||
pressureScalingTimeStep,
|
||||
pressureScalingWBHP);
|
||||
pdParams);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -224,10 +204,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
const std::vector<const RimFracture*>& fractures,
|
||||
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling,
|
||||
PressureDepletionTransCorrection transCorrection,
|
||||
int pressureScalingTimeStep,
|
||||
double pressureScalingWBHP)
|
||||
PressureDepletionParameters pdParams)
|
||||
{
|
||||
std::vector<RigCompletionData> fractureCompletions;
|
||||
|
||||
@ -239,32 +216,33 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
double cDarcyInCorrectUnit = RiaEclipseUnitTools::darcysConstant(caseToApply->eclipseCaseData()->unitsType());
|
||||
const RigMainGrid* mainGrid = caseToApply->eclipseCaseData()->mainGrid();
|
||||
|
||||
const RigCaseCellResultsData* results = caseToApply->results(RiaDefines::MATRIX_MODEL);
|
||||
size_t pressureResultIndex = results->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, "PRESSURE");
|
||||
const RigActiveCellInfo* actCellInfo = caseToApply->eclipseCaseData()->activeCellInfo(RiaDefines::MATRIX_MODEL);
|
||||
|
||||
const std::vector<std::vector<double>>* pressureResultVector = nullptr;
|
||||
const std::vector<double>* originalMatrixPressures = nullptr;
|
||||
const std::vector<double>* currentMatrixPressures = nullptr;
|
||||
if (pressureDropScaling != NO_SCALING)
|
||||
const RigCaseCellResultsData* results = caseToApply->results(RiaDefines::MATRIX_MODEL);
|
||||
size_t pressureResultIndex = results->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, "PRESSURE");
|
||||
const RigActiveCellInfo* actCellInfo = caseToApply->eclipseCaseData()->activeCellInfo(RiaDefines::MATRIX_MODEL);
|
||||
|
||||
const std::vector<std::vector<double>>* pressureResultVector = nullptr;
|
||||
const std::vector<double>* originalMatrixPressures = nullptr;
|
||||
const std::vector<double>* currentMatrixPressures = nullptr;
|
||||
if (pdParams.pressureDropScaling != NO_SCALING)
|
||||
{
|
||||
pressureResultVector = &results->cellScalarResults(pressureResultIndex);
|
||||
CVF_ASSERT(!pressureResultVector->empty());
|
||||
|
||||
originalMatrixPressures = &(pressureResultVector->front());
|
||||
currentMatrixPressures = originalMatrixPressures;
|
||||
if (pressureScalingTimeStep < pressureResultVector->size())
|
||||
currentMatrixPressures = originalMatrixPressures;
|
||||
if (pdParams.pressureScalingTimeStep < pressureResultVector->size())
|
||||
{
|
||||
currentMatrixPressures = &pressureResultVector->at(pressureScalingTimeStep);
|
||||
currentMatrixPressures = &pressureResultVector->at(pdParams.pressureScalingTimeStep);
|
||||
}
|
||||
}
|
||||
|
||||
double originalWellPressure = pressureScalingWBHP;
|
||||
double currentWellPressure = pressureScalingWBHP;
|
||||
if (pressureDropScaling == MATRIX_TO_WELL_DP_OVER_INITIAL_DP && pressureScalingTimeStep != -1)
|
||||
double originalWellPressure = pdParams.pressureScalingWBHP;
|
||||
double currentWellPressure = pdParams.pressureScalingWBHP;
|
||||
if (pdParams.pressureDropScaling != NO_SCALING && pdParams.wbhpFromSummaryCase)
|
||||
{
|
||||
// Find well pressures (WBHP) from summary case.
|
||||
getWellPressuresFromSummaryData(caseToApply, wellPathName, pressureScalingTimeStep, &originalWellPressure, ¤tWellPressure);
|
||||
getWellPressuresFromSummaryData(
|
||||
caseToApply, wellPathName, pdParams.pressureScalingTimeStep, &originalWellPressure, ¤tWellPressure);
|
||||
}
|
||||
// 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.
|
||||
@ -316,7 +294,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
// Insert total transmissibility from eclipse-cell to well for this fracture into the map
|
||||
std::map<size_t, double> matrixToWellTrans = calculateMatrixToWellTransmissibilities(transCondenser);
|
||||
|
||||
if (pressureDropScaling == MATRIX_TO_FRACTURE_DP_OVER_MAX_DP || pressureDropScaling == MATRIX_TO_FRACTURE_DP_OVER_AVG_DP)
|
||||
if (pdParams.pressureDropScaling == MATRIX_TO_FRACTURE_DP_OVER_MAX_DP || pdParams.pressureDropScaling == MATRIX_TO_FRACTURE_DP_OVER_AVG_DP)
|
||||
{
|
||||
RigTransmissibilityCondenser scaledCondenser = transCondenser;
|
||||
// 1. Scale matrix to fracture transmissibilities by matrix to fracture pressure
|
||||
@ -324,18 +302,17 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
scaledCondenser.scaleMatrixToFracTransByMatrixFracDP(actCellInfo,
|
||||
currentWellPressure,
|
||||
*currentMatrixPressures,
|
||||
pressureDropScaling ==
|
||||
MATRIX_TO_FRACTURE_DP_OVER_AVG_DP);
|
||||
pdParams.pressureDropScaling == MATRIX_TO_FRACTURE_DP_OVER_AVG_DP);
|
||||
// 2: Calculate new external transmissibilities
|
||||
scaledCondenser.calculateCondensedTransmissibilities();
|
||||
|
||||
if (transCorrection == NO_CORRECTION)
|
||||
if (pdParams.transCorrection == NO_CORRECTION)
|
||||
{
|
||||
// Calculate effective matrix to well transmissibilities.
|
||||
std::map<size_t, double> effectiveMatrixToWellTransBeforeCorrection = calculateMatrixToWellTransmissibilities(scaledCondenser);
|
||||
matrixToWellTrans = effectiveMatrixToWellTransBeforeCorrection;
|
||||
}
|
||||
else if (transCorrection == HOGSTOL_CORRECTION)
|
||||
else if (pdParams.transCorrection == HOGSTOL_CORRECTION)
|
||||
{
|
||||
// Høgstøl correction.
|
||||
// 1. Calculate new effective fracture to well transmissiblities
|
||||
@ -346,10 +323,10 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
matrixToWellTrans = effectiveMatrixToWellTrans;
|
||||
}
|
||||
}
|
||||
else if (pressureDropScaling == MATRIX_TO_WELL_DP_OVER_INITIAL_DP)
|
||||
else if (pdParams.pressureDropScaling == MATRIX_TO_WELL_DP_OVER_INITIAL_DP)
|
||||
{
|
||||
RigTransmissibilityCondenser scaledCondenser = transCondenser;
|
||||
// From Høgstøl "Hydraulic Fracturing SoW 2.8 outside contractFracture Transmissibility Calculations for Differential Depletion":
|
||||
// From Høgstøl "Hydraulic Fracturing SoW 2.8 outside contract fracture Transmissibility Calculations for Differential Depletion":
|
||||
// 1. Scale matrix to fracture transmissibilities by matrix to well pressure
|
||||
std::map<size_t, double> originalLumpedMatrixToFractureTrans =
|
||||
scaledCondenser.scaleMatrixToFracTransByMatrixWellDP(
|
||||
@ -357,13 +334,13 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
// 2: Calculate new external transmissibilities
|
||||
scaledCondenser.calculateCondensedTransmissibilities();
|
||||
|
||||
if (transCorrection == NO_CORRECTION)
|
||||
if (pdParams.transCorrection == NO_CORRECTION)
|
||||
{
|
||||
// Calculate effective matrix to well transmissibilities.
|
||||
std::map<size_t, double> effectiveMatrixToWellTransBeforeCorrection = calculateMatrixToWellTransmissibilities(scaledCondenser);
|
||||
matrixToWellTrans = effectiveMatrixToWellTransBeforeCorrection;
|
||||
}
|
||||
else if (transCorrection == HOGSTOL_CORRECTION)
|
||||
else if (pdParams.transCorrection == HOGSTOL_CORRECTION)
|
||||
{
|
||||
// Høgstøl correction.
|
||||
// 1. Calculate new effective fracture to well transmissiblities
|
||||
@ -418,14 +395,18 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicExportFractureCompletionsImpl::getWellPressuresFromSummaryData(const RimEclipseCase* caseToApply, const QString &wellPathName, int currentTimeStep, double* originalWellPressure, double* currentWellPressure)
|
||||
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];
|
||||
QDateTime originalDate = caseTimeSteps.front();
|
||||
QDateTime currentDate = caseTimeSteps[currentTimeStep];
|
||||
|
||||
RifEclipseSummaryAddress wbhpPressureAddress = RifEclipseSummaryAddress::wellAddress("WBHP", wellPathName.toStdString());
|
||||
RimSummaryCaseMainCollection* mainCollection = RiaSummaryTools::summaryCaseMainCollection();
|
||||
|
@ -37,6 +37,7 @@ class RimWellPath;
|
||||
|
||||
class QTextStream;
|
||||
class QString;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -57,22 +58,40 @@ public:
|
||||
HOGSTOL_CORRECTION
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
struct PressureDepletionParameters
|
||||
{
|
||||
PressureDepletionParameters(PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
||||
PressureDepletionTransCorrection transCorrection = NO_CORRECTION,
|
||||
int pressureScalingTimeStep = 0,
|
||||
bool wbhpFromSummaryCase = false,
|
||||
double pressureScalingWBHP = 200.0)
|
||||
: pressureDropScaling(pressureDropScaling)
|
||||
, transCorrection(transCorrection)
|
||||
, pressureScalingTimeStep(pressureScalingTimeStep)
|
||||
, wbhpFromSummaryCase(wbhpFromSummaryCase)
|
||||
, pressureScalingWBHP(pressureScalingWBHP)
|
||||
{}
|
||||
|
||||
PressureDepletionTransScaling pressureDropScaling;
|
||||
PressureDepletionTransCorrection transCorrection;
|
||||
int pressureScalingTimeStep;
|
||||
bool wbhpFromSummaryCase;
|
||||
double pressureScalingWBHP;
|
||||
};
|
||||
|
||||
static std::vector<RigCompletionData> generateCompdatValuesForWellPath(RimWellPath* wellPath,
|
||||
RimEclipseCase* caseToApply,
|
||||
std::vector<RicWellPathFractureReportItem>* fractureDataForReport,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
||||
PressureDepletionTransCorrection transCorrection = NO_CORRECTION,
|
||||
int pressureScalingTimeStep = 0,
|
||||
double pressureScalingWBHP = 200.0);
|
||||
PressureDepletionParameters pdParams = PressureDepletionParameters());
|
||||
|
||||
static std::vector<RigCompletionData> generateCompdatValuesForSimWell(RimEclipseCase* eclipseCase,
|
||||
const RimSimWellInView* well,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling,
|
||||
PressureDepletionTransCorrection transCorrection,
|
||||
int pressureScalingTimeStep,
|
||||
double pressureScalingWBHP = 200.0);
|
||||
PressureDepletionParameters pdParams = PressureDepletionParameters());
|
||||
|
||||
static std::vector<RigCompletionData> generateCompdatValues(RimEclipseCase* caseToApply,
|
||||
const QString& wellPathName,
|
||||
@ -80,10 +99,7 @@ public:
|
||||
const std::vector<const RimFracture*>& fractures,
|
||||
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling = NO_SCALING,
|
||||
PressureDepletionTransCorrection transCorrection = NO_CORRECTION,
|
||||
int pressureScalingTimeStep = 0,
|
||||
double pressureScalingWBHP = 200.0);
|
||||
PressureDepletionParameters pdParams = PressureDepletionParameters());
|
||||
|
||||
private:
|
||||
static std::vector<RigCompletionData> generateCompdatValuesConst(const RimEclipseCase* caseToApply,
|
||||
@ -92,10 +108,7 @@ private:
|
||||
const std::vector<const RimFracture*>& fractures,
|
||||
std::vector<RicWellPathFractureReportItem>* fractureDataReportItems,
|
||||
QTextStream* outputStreamForIntermediateResultsText,
|
||||
PressureDepletionTransScaling pressureDropScaling,
|
||||
PressureDepletionTransCorrection transCorrection,
|
||||
int pressureScalingTimeStep,
|
||||
double pressureScalingWBHP);
|
||||
PressureDepletionParameters pdParams);
|
||||
|
||||
static void getWellPressuresFromSummaryData(const RimEclipseCase* caseToApply, const QString &wellPathName, int currentTimeStep, double* originalWellPressure, double* currentWellPressure);
|
||||
|
||||
|
@ -226,10 +226,12 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
|
||||
exportSettings.caseToApply(),
|
||||
reportItems,
|
||||
fractureTransmissibilityExportInformationStream.get(),
|
||||
exportSettings.transScalingType(),
|
||||
exportSettings.transScalingCorrection(),
|
||||
exportSettings.transScalingWBHPTimeStep(),
|
||||
exportSettings.transScalingWBHP());
|
||||
RicExportFractureCompletionsImpl::PressureDepletionParameters(
|
||||
exportSettings.transScalingType(),
|
||||
exportSettings.transScalingCorrection(),
|
||||
exportSettings.transScalingTimeStep(),
|
||||
exportSettings.transScalingSummaryWBHP(),
|
||||
exportSettings.transScalingWBHP()));
|
||||
|
||||
appendCompletionData(&completionsPerEclipseCellAllCompletionTypes, fractureCompletionData);
|
||||
appendCompletionData(&completionsPerEclipseCellFracture, fractureCompletionData);
|
||||
@ -269,9 +271,16 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
|
||||
|
||||
std::vector<RigCompletionData> fractureCompletionData =
|
||||
RicExportFractureCompletionsImpl::generateCompdatValuesForSimWell(
|
||||
exportSettings.caseToApply(), simWell, fractureTransmissibilityExportInformationStream.get(),
|
||||
exportSettings.transScalingType(), exportSettings.transScalingCorrection(),
|
||||
exportSettings.transScalingWBHPTimeStep(), exportSettings.transScalingWBHP());
|
||||
exportSettings.caseToApply(),
|
||||
simWell,
|
||||
fractureTransmissibilityExportInformationStream.get(),
|
||||
RicExportFractureCompletionsImpl::PressureDepletionParameters(
|
||||
exportSettings.transScalingType(),
|
||||
exportSettings.transScalingCorrection(),
|
||||
exportSettings.transScalingTimeStep(),
|
||||
exportSettings.transScalingSummaryWBHP(),
|
||||
exportSettings.transScalingWBHP()));
|
||||
|
||||
appendCompletionData(&completionsPerEclipseCell, fractureCompletionData);
|
||||
|
||||
for (auto& data : completionsPerEclipseCell)
|
||||
|
Loading…
Reference in New Issue
Block a user