#1586 Compute diameter and roughness for main bore and ICDs

This commit is contained in:
Bjørnar Grip Fjær 2017-06-09 12:27:21 +02:00
parent 712cac9e9e
commit 2922a00fd6
3 changed files with 13 additions and 5 deletions

View File

@ -244,6 +244,8 @@ void RicExportFishbonesWellSegmentsFeature::generateWelsegsTable(RifEclipseDataT
depth += location.trueVerticalDepth - previousTVD; depth += location.trueVerticalDepth - previousTVD;
length += location.fishbonesSubs->measuredDepth(location.subIndex) - previousMD; length += location.fishbonesSubs->measuredDepth(location.subIndex) - previousMD;
} }
double diameter = computeEffectiveDiameter(wellPath->fishbonesCollection()->linerDiameter(), wellPath->fishbonesCollection()->mainBoreDiameter());
formatter.comment(QString("Segment for sub %1").arg(location.subIndex)); formatter.comment(QString("Segment for sub %1").arg(location.subIndex));
formatter.add(location.segmentNumber).add(location.segmentNumber); formatter.add(location.segmentNumber).add(location.segmentNumber);
@ -251,8 +253,8 @@ void RicExportFishbonesWellSegmentsFeature::generateWelsegsTable(RifEclipseDataT
formatter.add(location.segmentNumber - 1); // All main stem segments are connected to the segment below them formatter.add(location.segmentNumber - 1); // All main stem segments are connected to the segment below them
formatter.add(length); formatter.add(length);
formatter.add(depth); formatter.add(depth);
formatter.add(-1.0); // FIXME : Diam of main stem? formatter.add(diameter);
formatter.add(-1.0); // FIXME : Rough of main stem? formatter.add(wellPath->fishbonesCollection()->roughnessFactor());
formatter.rowCompleted(); formatter.rowCompleted();
previousMD = location.measuredDepth; previousMD = location.measuredDepth;
@ -266,14 +268,15 @@ void RicExportFishbonesWellSegmentsFeature::generateWelsegsTable(RifEclipseDataT
formatter.comment("Rough: MSW - Open Hole Roughness Factor"); formatter.comment("Rough: MSW - Open Hole Roughness Factor");
for (const WellSegmentLocation& location : locations) for (const WellSegmentLocation& location : locations)
{ {
double diameter = computeEffectiveDiameter(wellPath->fishbonesCollection()->linerDiameter(), wellPath->fishbonesCollection()->mainBoreDiameter());
formatter.comment("ICD"); formatter.comment("ICD");
formatter.add(location.icdSegmentNumber).add(location.icdSegmentNumber); formatter.add(location.icdSegmentNumber).add(location.icdSegmentNumber);
formatter.add(location.icdBranchNumber); formatter.add(location.icdBranchNumber);
formatter.add(location.segmentNumber); formatter.add(location.segmentNumber);
formatter.add(0.1); // ICDs have 0.1 length formatter.add(0.1); // ICDs have 0.1 length
formatter.add(0); // Depth change formatter.add(0); // Depth change
formatter.add(-1.0); // Diam? formatter.add(diameter);
formatter.add(-1.0); // Rough? formatter.add(wellPath->fishbonesCollection()->roughnessFactor());
formatter.rowCompleted(); formatter.rowCompleted();
for (const WellSegmentLateral& lateral : location.laterals) for (const WellSegmentLateral& lateral : location.laterals)
@ -416,7 +419,7 @@ double RicExportFishbonesWellSegmentsFeature::computeEffectiveDiameter(double in
double effectiveArea = outerArea - innerArea; double effectiveArea = outerArea - innerArea;
double effectiveRadius = cvf::Math::sqrt(effectiveArea / cvf::PI_D * 2); double effectiveRadius = cvf::Math::sqrt(effectiveArea / cvf::PI_D);
return effectiveRadius * 2; return effectiveRadius * 2;
} }

View File

@ -54,6 +54,7 @@ RimFishbonesCollection::RimFishbonesCollection()
CAF_PDM_InitField(&m_startMD, "StartMD", HUGE_VAL, "Start MD", "", "", ""); CAF_PDM_InitField(&m_startMD, "StartMD", HUGE_VAL, "Start MD", "", "", "");
CAF_PDM_InitField(&m_mainBoreDiameter, "MainBoreDiameter", 0.0, "Main Bore Diameter", "", "", ""); CAF_PDM_InitField(&m_mainBoreDiameter, "MainBoreDiameter", 0.0, "Main Bore Diameter", "", "", "");
CAF_PDM_InitField(&m_linerDiameter, "LinerDiameter", 0.0, "Liner Diameter", "", "", ""); CAF_PDM_InitField(&m_linerDiameter, "LinerDiameter", 0.0, "Liner Diameter", "", "", "");
CAF_PDM_InitField(&m_roughnessFactor, "RoughnessFactor", 0.0, "Roughness Factor", "", "", "");
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -48,6 +48,9 @@ public:
void recalculateStartMD(); void recalculateStartMD();
double startMD() const { return m_startMD(); } double startMD() const { return m_startMD(); }
double mainBoreDiameter() const { return m_mainBoreDiameter(); }
double linerDiameter() const { return m_linerDiameter(); }
double roughnessFactor() const { return m_roughnessFactor(); }
protected: protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
@ -61,4 +64,5 @@ private:
caf::PdmField<double> m_startMD; caf::PdmField<double> m_startMD;
caf::PdmField<double> m_mainBoreDiameter; caf::PdmField<double> m_mainBoreDiameter;
caf::PdmField<double> m_linerDiameter; caf::PdmField<double> m_linerDiameter;
caf::PdmField<double> m_roughnessFactor;
}; };