#3750 Completion export header : Report only referenced fracture templates

This commit is contained in:
Magne Sjaastad
2018-11-23 11:32:50 +01:00
parent 200e6d229b
commit 8d9080d695
2 changed files with 39 additions and 21 deletions

View File

@@ -25,11 +25,11 @@
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RicWellPathFractureReportItem::RicWellPathFractureReportItem(const QString& wellPathName, RicWellPathFractureReportItem::RicWellPathFractureReportItem(const QString& wellPathNameForExport,
const QString& fractureName, const QString& fractureName,
const QString& fractureTemplateName, const QString& fractureTemplateName,
double measuredDepth) double measuredDepth)
: m_wellPathNameForExport(wellPathName) : m_wellPathNameForExport(wellPathNameForExport)
, m_wellPathFracture(fractureName) , m_wellPathFracture(fractureName)
, m_wellPathFractureTemplate(fractureTemplateName) , m_wellPathFractureTemplate(fractureTemplateName)
, m_mesuredDepth(measuredDepth) , m_mesuredDepth(measuredDepth)

View File

@@ -80,24 +80,39 @@ QString RicWellPathFractureTextReportFeatureImpl::wellPathFractureReport(
textStream << lineStart << "\n"; textStream << lineStart << "\n";
auto proj = RiaApplication::instance()->project();
auto fractureTemplates = proj->activeOilField()->fractureDefinitionCollection()->fractureTemplates();
std::vector<RimStimPlanFractureTemplate*> stimPlanTemplates; std::vector<RimStimPlanFractureTemplate*> stimPlanTemplates;
std::vector<RimEllipseFractureTemplate*> ellipseTemplates; std::vector<RimEllipseFractureTemplate*> ellipseTemplates;
for (const auto fracTemplate : fractureTemplates)
{ {
auto stimPlanTemplate = dynamic_cast<RimStimPlanFractureTemplate*>(fracTemplate); auto proj = RiaApplication::instance()->project();
if (stimPlanTemplate) auto fractureTemplates = proj->activeOilField()->fractureDefinitionCollection()->fractureTemplates();
std::set<QString> usedFractureTemplateNames;
for (const auto& item : wellPathFractureReportItems)
{ {
stimPlanTemplates.push_back(stimPlanTemplate); usedFractureTemplateNames.insert(item.fractureTemplateName());
} }
auto ellipseTemplate = dynamic_cast<RimEllipseFractureTemplate*>(fracTemplate); for (const auto fracTemplate : fractureTemplates)
if (ellipseTemplate)
{ {
ellipseTemplates.push_back(ellipseTemplate); if (usedFractureTemplateNames.find(fracTemplate->name()) == usedFractureTemplateNames.end())
{
continue;
}
auto stimPlanTemplate = dynamic_cast<RimStimPlanFractureTemplate*>(fracTemplate);
if (stimPlanTemplate)
{
stimPlanTemplates.push_back(stimPlanTemplate);
}
auto ellipseTemplate = dynamic_cast<RimEllipseFractureTemplate*>(fracTemplate);
if (ellipseTemplate)
{
ellipseTemplates.push_back(ellipseTemplate);
}
} }
} }
@@ -136,7 +151,11 @@ QString RicWellPathFractureTextReportFeatureImpl::wellPathFractureReport(
} }
{ {
QString tableText = createFractureText(fractureTemplates); std::vector<RimFractureTemplate*> fracTemplates;
fracTemplates.insert(fracTemplates.end(), ellipseTemplates.begin(), ellipseTemplates.end());
fracTemplates.insert(fracTemplates.end(), stimPlanTemplates.begin(), stimPlanTemplates.end());
QString tableText = createFractureText(fracTemplates);
textStream << tableText; textStream << tableText;
textStream << lineStart << "\n"; textStream << lineStart << "\n";
} }
@@ -623,7 +642,7 @@ QString RicWellPathFractureTextReportFeatureImpl::createFractureCompletionSummar
RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // KfWf RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // KfWf
RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // Kf RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // Kf
floatNumberColumn(meanText), // wf floatNumberColumn(meanText), // wf
RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), //xf RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // xf
RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // H RifEclipseOutputTableColumn(meanText, RifEclipseOutputTableDoubleFormatting(RIF_FLOAT, 1), RIGHT), // H
floatNumberColumn(meanText), // Km floatNumberColumn(meanText), // Km
}; };
@@ -698,7 +717,8 @@ QString RicWellPathFractureTextReportFeatureImpl::createFractureCompletionSummar
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RicWellPathFractureTextReportFeatureImpl::createFracturePressureDepletionSummaryText(const std::vector<RicWellPathFractureReportItem>& wellPathFractureReportItems) const QString RicWellPathFractureTextReportFeatureImpl::createFracturePressureDepletionSummaryText(
const std::vector<RicWellPathFractureReportItem>& wellPathFractureReportItems) const
{ {
QString tableText; QString tableText;
@@ -706,13 +726,11 @@ QString RicWellPathFractureTextReportFeatureImpl::createFracturePressureDepletio
RifEclipseDataTableFormatter formatter(stream); RifEclipseDataTableFormatter formatter(stream);
configureFormatter(&formatter); configureFormatter(&formatter);
std::vector<RifEclipseOutputTableColumn> header = { std::vector<RifEclipseOutputTableColumn> header = {RifEclipseOutputTableColumn("Well"),
RifEclipseOutputTableColumn("Well"), RifEclipseOutputTableColumn("Fracture"),
RifEclipseOutputTableColumn("Fracture"), RifEclipseOutputTableColumn("Actual WBHP"),
RifEclipseOutputTableColumn("Actual WBHP"), RifEclipseOutputTableColumn("Min Pressure Drop"),
RifEclipseOutputTableColumn("Min Pressure Drop"), RifEclipseOutputTableColumn("Max Pressure Drop")};
RifEclipseOutputTableColumn("Max Pressure Drop")
};
bool createdTable = false; bool createdTable = false;