mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1593 Use well path unit type on fractures
This commit is contained in:
parent
05d210df93
commit
d63fdf0c80
@ -243,7 +243,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
double radialTrans = RigFractureTransmissibilityEquations::fractureCellToWellRadialTrans(wellCell.getConductivtyValue(),
|
||||
wellCell.cellSizeX(),
|
||||
wellCell.cellSizeZ(),
|
||||
fracture->wellRadius(),
|
||||
fracture->wellRadius(caseToApply->eclipseCaseData()->unitsType()),
|
||||
fracTemplate->skinFactor(),
|
||||
cDarcyInCorrectUnit);
|
||||
|
||||
@ -273,7 +273,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
||||
radialTrans = RigFractureTransmissibilityEquations::fractureCellToWellRadialTrans(fractureWellCell.getConductivtyValue(),
|
||||
fractureWellCell.cellSizeX(),
|
||||
fractureWellCell.cellSizeZ(),
|
||||
fracture->wellRadius(),
|
||||
fracture->wellRadius(caseToApply->eclipseCaseData()->unitsType()),
|
||||
fracTemplate->skinFactor(),
|
||||
cDarcyInCorrectUnit);
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ void RicNewSimWellFractureAtPosFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
RimEclipseResultCase* eclipseCase = nullptr;
|
||||
simWell->firstAncestorOrThisOfType(eclipseCase);
|
||||
fracture->fractureUnit = eclipseCase->eclipseCaseData()->unitsType();
|
||||
fracture->setFractureUnit(eclipseCase->eclipseCaseData()->unitsType());
|
||||
|
||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||
{
|
||||
|
@ -71,7 +71,7 @@ void RicNewSimWellFractureFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
RimEclipseResultCase* eclipseCase = nullptr;
|
||||
objHandle->firstAncestorOrThisOfType(eclipseCase);
|
||||
fracture->fractureUnit = eclipseCase->eclipseCaseData()->unitsType();
|
||||
fracture->setFractureUnit(eclipseCase->eclipseCaseData()->unitsType());
|
||||
|
||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||
{
|
||||
|
@ -60,7 +60,7 @@ void RicNewWellPathFractureFeature::addFracture(RimWellPath* wellPath, double me
|
||||
fractureCollection->fractures.push_back(fracture);
|
||||
|
||||
fracture->setMeasuredDepth(measuredDepth);
|
||||
fracture->fractureUnit = wellPath->unitSystem();
|
||||
fracture->setFractureUnit(wellPath->unitSystem());
|
||||
|
||||
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
||||
cvf::Vec3d positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(measuredDepth);
|
||||
|
@ -95,7 +95,8 @@ RimFracture::RimFracture(void)
|
||||
CAF_PDM_InitField(&dip, "Dip", 0.0, "Dip", "", "", "");
|
||||
CAF_PDM_InitField(&tilt, "Tilt", 0.0, "Tilt", "", "", "");
|
||||
CAF_PDM_InitField(&showPolygonFractureOutline, "showPolygonFractureOutline", true, "Show Polygon Outline", "", "", "");
|
||||
CAF_PDM_InitField(&fractureUnit, "fractureUnit", caf::AppEnum<RiaEclipseUnitTools::UnitSystem>(RiaEclipseUnitTools::UNITS_METRIC), "Fracture Unit System", "", "", "");
|
||||
CAF_PDM_InitField(&m_fractureUnit, "fractureUnit", caf::AppEnum<RiaEclipseUnitTools::UnitSystem>(RiaEclipseUnitTools::UNITS_METRIC), "Fracture Unit System", "", "", "");
|
||||
m_fractureUnit.uiCapability()->setUiReadOnly(true);
|
||||
|
||||
CAF_PDM_InitField(&stimPlanTimeIndexToPlot, "timeIndexToPlot", 0, "StimPlan Time Step", "", "", "");
|
||||
|
||||
@ -129,23 +130,6 @@ std::vector<size_t> RimFracture::getPotentiallyFracturedCells(const RigMainGrid*
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
|
||||
if (changedField == &fractureUnit)
|
||||
{
|
||||
if (fractureUnit == RiaEclipseUnitTools::UNITS_METRIC)
|
||||
{
|
||||
wellDiameter = RiaEclipseUnitTools::inchToMeter(wellDiameter);
|
||||
perforationLength = RiaEclipseUnitTools::feetToMeter(perforationLength);
|
||||
}
|
||||
else if (fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
|
||||
{
|
||||
wellDiameter = RiaEclipseUnitTools::meterToInch(wellDiameter);
|
||||
perforationLength = RiaEclipseUnitTools::meterToFeet(perforationLength);
|
||||
}
|
||||
this->updateConnectedEditors();
|
||||
}
|
||||
|
||||
|
||||
if (changedField == &m_fractureTemplate)
|
||||
{
|
||||
setFractureTemplate(m_fractureTemplate);
|
||||
@ -156,7 +140,6 @@ void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
||||
changedField == &stimPlanTimeIndexToPlot ||
|
||||
changedField == this->objectToggleField() ||
|
||||
changedField == &showPolygonFractureOutline ||
|
||||
changedField == &fractureUnit ||
|
||||
changedField == &dip ||
|
||||
changedField == &tilt)
|
||||
{
|
||||
@ -209,15 +192,29 @@ cvf::BoundingBox RimFracture::boundingBoxInDomainCoords()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimFracture::wellRadius() const
|
||||
double RimFracture::wellRadius(RiaEclipseUnitTools::UnitSystem unitSystem) const
|
||||
{
|
||||
if (fractureUnit == RiaEclipseUnitTools::UNITS_METRIC)
|
||||
if (m_fractureUnit == RiaEclipseUnitTools::UNITS_METRIC)
|
||||
{
|
||||
return wellDiameter / 2;
|
||||
if (unitSystem == RiaEclipseUnitTools::UNITS_FIELD)
|
||||
{
|
||||
return RiaEclipseUnitTools::meterToFeet(wellDiameter / 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return wellDiameter / 2;
|
||||
}
|
||||
}
|
||||
else if (fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
|
||||
else if (m_fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
|
||||
{
|
||||
return RiaEclipseUnitTools::inchToFeet(wellDiameter / 2);
|
||||
if (unitSystem == RiaEclipseUnitTools::UNITS_METRIC)
|
||||
{
|
||||
return RiaEclipseUnitTools::inchToMeter(wellDiameter / 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return RiaEclipseUnitTools::inchToFeet(wellDiameter / 2);
|
||||
}
|
||||
}
|
||||
return cvf::UNDEFINED_DOUBLE;
|
||||
}
|
||||
@ -347,12 +344,12 @@ QList<caf::PdmOptionItemInfo> RimFracture::calculateValueOptions(const caf::PdmF
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
if (fractureUnit == RiaEclipseUnitTools::UNITS_METRIC)
|
||||
if (m_fractureUnit() == RiaEclipseUnitTools::UNITS_METRIC)
|
||||
{
|
||||
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
|
||||
perforationLength.uiCapability()->setUiName("Perforation Length [m]");
|
||||
}
|
||||
else if (fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
|
||||
else if (m_fractureUnit() == RiaEclipseUnitTools::UNITS_FIELD)
|
||||
{
|
||||
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
|
||||
perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
|
||||
@ -438,6 +435,22 @@ void RimFracture::setAnchorPosition(const cvf::Vec3d& pos)
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiaEclipseUnitTools::UnitSystem RimFracture::fractureUnit() const
|
||||
{
|
||||
return m_fractureUnit();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFracture::setFractureUnit(RiaEclipseUnitTools::UnitSystem unitSystem)
|
||||
{
|
||||
m_fractureUnit = unitSystem;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -500,8 +513,8 @@ void RimFracture::setFractureTemplate(RimFractureTemplate* fractureTemplate)
|
||||
}
|
||||
|
||||
this->updateAzimuthFromFractureTemplate();
|
||||
this->wellDiameter = fractureTemplate->wellDiameterInFractureUnit(fractureUnit);
|
||||
this->perforationLength = fractureTemplate->perforationLengthInFractureUnit(fractureUnit);
|
||||
this->wellDiameter = fractureTemplate->wellDiameterInFractureUnit(m_fractureUnit());
|
||||
this->perforationLength = fractureTemplate->perforationLengthInFractureUnit(m_fractureUnit());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -66,11 +66,12 @@ public:
|
||||
caf::PdmField<int> stimPlanTimeIndexToPlot;
|
||||
caf::PdmField<bool> showPolygonFractureOutline;
|
||||
|
||||
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > fractureUnit;
|
||||
|
||||
double wellRadius() const;
|
||||
double wellRadius(RiaEclipseUnitTools::UnitSystem unitSystem) const;
|
||||
cvf::Vec3d anchorPosition() const ;
|
||||
void setAnchorPosition(const cvf::Vec3d& pos);
|
||||
RiaEclipseUnitTools::UnitSystem fractureUnit() const;
|
||||
void setFractureUnit(RiaEclipseUnitTools::UnitSystem unitSystem);
|
||||
|
||||
bool isEclipseCellWithinContainment(const RigMainGrid* mainGrid,
|
||||
size_t globalCellIndex);
|
||||
@ -109,6 +110,7 @@ private:
|
||||
protected:
|
||||
caf::PdmPtrField<RimFractureTemplate*> m_fractureTemplate;
|
||||
caf::PdmProxyValueField<cvf::Vec3d> m_uiAnchorPosition;
|
||||
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > m_fractureUnit;
|
||||
|
||||
private:
|
||||
caf::PdmField<cvf::Vec3d> m_anchorPosition;
|
||||
|
@ -186,7 +186,6 @@ void RimSimWellFracture::updateFracturePositionFromLocation()
|
||||
void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
||||
fractureUnit.uiCapability()->setUiReadOnly(true);
|
||||
|
||||
uiOrdering.add(nameField());
|
||||
uiOrdering.add(&showPolygonFractureOutline);
|
||||
@ -199,7 +198,7 @@ void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi
|
||||
locationGroup->add(&tilt);
|
||||
|
||||
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
|
||||
propertyGroup->add(&fractureUnit);
|
||||
propertyGroup->add(&m_fractureUnit);
|
||||
propertyGroup->add(&m_fractureTemplate);
|
||||
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
||||
propertyGroup->add(&perforationLength);
|
||||
|
@ -169,6 +169,7 @@ void RimWellPathFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
|
||||
locationGroup->add(&tilt);
|
||||
|
||||
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
|
||||
propertyGroup->add(&m_fractureUnit);
|
||||
propertyGroup->add(&m_fractureTemplate);
|
||||
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
||||
propertyGroup->add(&perforationLength);
|
||||
|
@ -14,11 +14,11 @@
|
||||
#include <cmath>
|
||||
|
||||
|
||||
RigWellPathStimplanIntersector::RigWellPathStimplanIntersector(const RigWellPath* wellpathGeom, const RimFracture * rimFracture)
|
||||
RigWellPathStimplanIntersector::RigWellPathStimplanIntersector(const RigWellPath* wellpathGeom, const RimFracture* rimFracture)
|
||||
{
|
||||
std::vector<cvf::Vec3d> wellPathPoints = wellpathGeom->m_wellPathPoints;
|
||||
cvf::Mat4f fractureXf = rimFracture->transformMatrix();
|
||||
double wellRadius = rimFracture->wellRadius();
|
||||
double wellRadius = rimFracture->wellRadius(rimFracture->fractureUnit());
|
||||
std::vector<cvf::Vec3f> fracturePolygonf ;
|
||||
std::vector<std::vector<cvf::Vec3d> > stpCellPolygons;
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user