mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1586 Compute effective diameter of fishbones in WELSEGS
This commit is contained in:
parent
e1f4dbfcf8
commit
712cac9e9e
@ -295,13 +295,14 @@ void RicExportFishbonesWellSegmentsFeature::generateWelsegsTable(RifEclipseDataT
|
|||||||
depth += intersection.depth;
|
depth += intersection.depth;
|
||||||
length += intersection.length;
|
length += intersection.length;
|
||||||
}
|
}
|
||||||
|
double diameter = computeEffectiveDiameter(location.fishbonesSubs->tubingDiameter(), location.fishbonesSubs->holeDiameter());
|
||||||
formatter.add(intersection.segmentNumber);
|
formatter.add(intersection.segmentNumber);
|
||||||
formatter.add(intersection.segmentNumber);
|
formatter.add(intersection.segmentNumber);
|
||||||
formatter.add(lateral.branchNumber);
|
formatter.add(lateral.branchNumber);
|
||||||
formatter.add(intersection.attachedSegmentNumber);
|
formatter.add(intersection.attachedSegmentNumber);
|
||||||
formatter.add(length);
|
formatter.add(length);
|
||||||
formatter.add(depth);
|
formatter.add(depth);
|
||||||
formatter.add(location.fishbonesSubs->tubingDiameter());
|
formatter.add(diameter);
|
||||||
formatter.add(location.fishbonesSubs->openHoleRoughnessFactor());
|
formatter.add(location.fishbonesSubs->openHoleRoughnessFactor());
|
||||||
formatter.rowCompleted();
|
formatter.rowCompleted();
|
||||||
}
|
}
|
||||||
@ -401,3 +402,21 @@ void RicExportFishbonesWellSegmentsFeature::generateWsegvalvTable(RifEclipseData
|
|||||||
}
|
}
|
||||||
formatter.tableCompleted();
|
formatter.tableCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
double RicExportFishbonesWellSegmentsFeature::computeEffectiveDiameter(double innerDiameter, double outerDiameter)
|
||||||
|
{
|
||||||
|
double innerRadius = innerDiameter / 2;
|
||||||
|
double innerArea = cvf::PI_D * innerRadius * innerRadius;
|
||||||
|
|
||||||
|
double outerRadius = outerDiameter / 2;
|
||||||
|
double outerArea = cvf::PI_D * outerRadius * outerRadius;
|
||||||
|
|
||||||
|
double effectiveArea = outerArea - innerArea;
|
||||||
|
|
||||||
|
double effectiveRadius = cvf::Math::sqrt(effectiveArea / cvf::PI_D * 2);
|
||||||
|
|
||||||
|
return effectiveRadius * 2;
|
||||||
|
}
|
||||||
|
@ -50,4 +50,6 @@ private:
|
|||||||
static void generateWelsegsTable(RifEclipseDataTableFormatter& formatter, const RimWellPath* wellPath, const RicExportWellSegmentsSettingsUi& settings, const std::vector<WellSegmentLocation>& locations);
|
static void generateWelsegsTable(RifEclipseDataTableFormatter& formatter, const RimWellPath* wellPath, const RicExportWellSegmentsSettingsUi& settings, const std::vector<WellSegmentLocation>& locations);
|
||||||
static void generateCompsegsTable(RifEclipseDataTableFormatter& formatter, const RimWellPath* wellPath, const RicExportWellSegmentsSettingsUi& settings, const std::vector<WellSegmentLocation>& locations);
|
static void generateCompsegsTable(RifEclipseDataTableFormatter& formatter, const RimWellPath* wellPath, const RicExportWellSegmentsSettingsUi& settings, const std::vector<WellSegmentLocation>& locations);
|
||||||
static void generateWsegvalvTable(RifEclipseDataTableFormatter& formatter, const RimWellPath* wellPath, const RicExportWellSegmentsSettingsUi& settings, const std::vector<WellSegmentLocation>& locations);
|
static void generateWsegvalvTable(RifEclipseDataTableFormatter& formatter, const RimWellPath* wellPath, const RicExportWellSegmentsSettingsUi& settings, const std::vector<WellSegmentLocation>& locations);
|
||||||
|
|
||||||
|
static double computeEffectiveDiameter(double innerDiameter, double outerDiameter);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user