From 5a466db9afbafb0cc86e8f9aaf1bd0772ba99b00 Mon Sep 17 00:00:00 2001 From: astridkbjorke Date: Tue, 20 Jun 2017 13:48:46 +0200 Subject: [PATCH] #1630 Update metadata for completions --- .../RicFishbonesTransmissibilityCalculationFeatureImp.cpp | 8 ++------ .../RicWellPathExportCompletionDataFeature.cpp | 7 ++++++- ApplicationCode/ReservoirDataModel/RigCompletionData.h | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ApplicationCode/Commands/CompletionCommands/RicFishbonesTransmissibilityCalculationFeatureImp.cpp b/ApplicationCode/Commands/CompletionCommands/RicFishbonesTransmissibilityCalculationFeatureImp.cpp index b45f2a0ea0..d13a54b518 100644 --- a/ApplicationCode/Commands/CompletionCommands/RicFishbonesTransmissibilityCalculationFeatureImp.cpp +++ b/ApplicationCode/Commands/CompletionCommands/RicFishbonesTransmissibilityCalculationFeatureImp.cpp @@ -62,7 +62,7 @@ void RicFishbonesTransmissibilityCalculationFeatureImp::findFishboneLateralsWell if (intersection.mainBoreCell && settings.removeLateralsInMainBoreCells()) continue; double diameter = location.fishbonesSubs->holeDiameter(unitSystem); - QString completionMetaData = (location.fishbonesSubs->name() + QString(" Sub: %1 Lateral: %2").arg(location.subIndex).arg(lateral.lateralIndex)); + QString completionMetaData = (location.fishbonesSubs->name() + QString(": Sub: %1 Lateral: %2").arg(location.subIndex).arg(lateral.lateralIndex)); WellBorePartForTransCalc wellBorePart = WellBorePartForTransCalc(intersection.lengthsInCell, diameter / 2, location.fishbonesSubs->skinFactor(), @@ -120,13 +120,9 @@ std::vector RicFishbonesTransmissibilityCalculationFeatureImp } } - //TODO: Find main bore direction and use this as direction in which to split cell - QString directionToSplitCellVolume = "DX"; - for (WellBorePartForTransCalc wellBorePart : wellBoreParts) { RigCompletionData completion(wellPath->completions()->wellNameForExport(), IJKCellIndex(i, j, k)); - completion.addMetadata(wellBorePart.metaData, ""); double transmissibility = 0.0; if (wellBorePart.isMainBore) @@ -163,7 +159,7 @@ std::vector RicFishbonesTransmissibilityCalculationFeatureImp wellBorePart.wellRadius *2, direction, wellBorePart.isMainBore); - + completion.addMetadata(wellBorePart.metaData, QString::number(transmissibility)); completionData.push_back(completion); } } diff --git a/ApplicationCode/Commands/CompletionCommands/RicWellPathExportCompletionDataFeature.cpp b/ApplicationCode/Commands/CompletionCommands/RicWellPathExportCompletionDataFeature.cpp index 4ce15aa907..efc27f16de 100644 --- a/ApplicationCode/Commands/CompletionCommands/RicWellPathExportCompletionDataFeature.cpp +++ b/ApplicationCode/Commands/CompletionCommands/RicWellPathExportCompletionDataFeature.cpp @@ -306,7 +306,12 @@ RigCompletionData RicWellPathExportCompletionDataFeature::combineEclipseCellComp RiaLogging::error(QString("Transmissibility calculation has failed for cell [%1, %2, %3]").arg(cellIndexIJK.i).arg(cellIndexIJK.j).arg(cellIndexIJK.k)); return resultCompletion; //Returning empty completion, should not be exported } + totalTrans = totalTrans + completion.transmissibility(); + + resultCompletion.m_metadata.reserve(resultCompletion.m_metadata.size() + completion.m_metadata.size()); + resultCompletion.m_metadata.insert(resultCompletion.m_metadata.end(), completion.m_metadata.begin(), completion.m_metadata.end()); + } @@ -519,7 +524,6 @@ std::vector RicWellPathExportCompletionDataFeature::generateP size_t i, j, k; settings.caseToApply->eclipseCaseData()->mainGrid()->ijkFromCellIndex(cell.cellIndex, &i, &j, &k); RigCompletionData completion(wellPath->completions()->wellNameForExport(), IJKCellIndex(i, j, k)); - completion.addMetadata("Perforation", QString("StartMD: %1 - EndMD: %2").arg(interval->startMD()).arg(interval->endMD())); CellDirection direction = calculateDirectionInCell(settings.caseToApply, cell.cellIndex, cell.internalCellLengths); double transmissibility = RicWellPathExportCompletionDataFeature::calculateTransmissibility(settings.caseToApply, @@ -535,6 +539,7 @@ std::vector RicWellPathExportCompletionDataFeature::generateP interval->skinFactor(), interval->diameter(unitSystem), direction); + completion.addMetadata("Perforation", QString("StartMD: %1 - EndMD: %2").arg(interval->startMD()).arg(interval->endMD() + QString(" : ") + QString::number(transmissibility))); completionData.push_back(completion); } } diff --git a/ApplicationCode/ReservoirDataModel/RigCompletionData.h b/ApplicationCode/ReservoirDataModel/RigCompletionData.h index c98a1d31cf..080e4f6dcc 100644 --- a/ApplicationCode/ReservoirDataModel/RigCompletionData.h +++ b/ApplicationCode/ReservoirDataModel/RigCompletionData.h @@ -147,9 +147,9 @@ public: bool isMainBore() const { return m_isMainBore; } bool readyForExport() const { return m_readyForExport; } + std::vector m_metadata; //TODO: Is this OK? private: - std::vector m_metadata; QString m_wellName; IJKCellIndex m_cellIndex; WellConnectionState m_connectionState;