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(),
|
double radialTrans = RigFractureTransmissibilityEquations::fractureCellToWellRadialTrans(wellCell.getConductivtyValue(),
|
||||||
wellCell.cellSizeX(),
|
wellCell.cellSizeX(),
|
||||||
wellCell.cellSizeZ(),
|
wellCell.cellSizeZ(),
|
||||||
fracture->wellRadius(),
|
fracture->wellRadius(caseToApply->eclipseCaseData()->unitsType()),
|
||||||
fracTemplate->skinFactor(),
|
fracTemplate->skinFactor(),
|
||||||
cDarcyInCorrectUnit);
|
cDarcyInCorrectUnit);
|
||||||
|
|
||||||
@ -273,7 +273,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
|
|||||||
radialTrans = RigFractureTransmissibilityEquations::fractureCellToWellRadialTrans(fractureWellCell.getConductivtyValue(),
|
radialTrans = RigFractureTransmissibilityEquations::fractureCellToWellRadialTrans(fractureWellCell.getConductivtyValue(),
|
||||||
fractureWellCell.cellSizeX(),
|
fractureWellCell.cellSizeX(),
|
||||||
fractureWellCell.cellSizeZ(),
|
fractureWellCell.cellSizeZ(),
|
||||||
fracture->wellRadius(),
|
fracture->wellRadius(caseToApply->eclipseCaseData()->unitsType()),
|
||||||
fracTemplate->skinFactor(),
|
fracTemplate->skinFactor(),
|
||||||
cDarcyInCorrectUnit);
|
cDarcyInCorrectUnit);
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ void RicNewSimWellFractureAtPosFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
RimEclipseResultCase* eclipseCase = nullptr;
|
RimEclipseResultCase* eclipseCase = nullptr;
|
||||||
simWell->firstAncestorOrThisOfType(eclipseCase);
|
simWell->firstAncestorOrThisOfType(eclipseCase);
|
||||||
fracture->fractureUnit = eclipseCase->eclipseCaseData()->unitsType();
|
fracture->setFractureUnit(eclipseCase->eclipseCaseData()->unitsType());
|
||||||
|
|
||||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
|
@ -71,7 +71,7 @@ void RicNewSimWellFractureFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
RimEclipseResultCase* eclipseCase = nullptr;
|
RimEclipseResultCase* eclipseCase = nullptr;
|
||||||
objHandle->firstAncestorOrThisOfType(eclipseCase);
|
objHandle->firstAncestorOrThisOfType(eclipseCase);
|
||||||
fracture->fractureUnit = eclipseCase->eclipseCaseData()->unitsType();
|
fracture->setFractureUnit(eclipseCase->eclipseCaseData()->unitsType());
|
||||||
|
|
||||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
|
@ -60,7 +60,7 @@ void RicNewWellPathFractureFeature::addFracture(RimWellPath* wellPath, double me
|
|||||||
fractureCollection->fractures.push_back(fracture);
|
fractureCollection->fractures.push_back(fracture);
|
||||||
|
|
||||||
fracture->setMeasuredDepth(measuredDepth);
|
fracture->setMeasuredDepth(measuredDepth);
|
||||||
fracture->fractureUnit = wellPath->unitSystem();
|
fracture->setFractureUnit(wellPath->unitSystem());
|
||||||
|
|
||||||
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
||||||
cvf::Vec3d positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(measuredDepth);
|
cvf::Vec3d positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(measuredDepth);
|
||||||
|
@ -95,7 +95,8 @@ RimFracture::RimFracture(void)
|
|||||||
CAF_PDM_InitField(&dip, "Dip", 0.0, "Dip", "", "", "");
|
CAF_PDM_InitField(&dip, "Dip", 0.0, "Dip", "", "", "");
|
||||||
CAF_PDM_InitField(&tilt, "Tilt", 0.0, "Tilt", "", "", "");
|
CAF_PDM_InitField(&tilt, "Tilt", 0.0, "Tilt", "", "", "");
|
||||||
CAF_PDM_InitField(&showPolygonFractureOutline, "showPolygonFractureOutline", true, "Show Polygon Outline", "", "", "");
|
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", "", "", "");
|
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)
|
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)
|
if (changedField == &m_fractureTemplate)
|
||||||
{
|
{
|
||||||
setFractureTemplate(m_fractureTemplate);
|
setFractureTemplate(m_fractureTemplate);
|
||||||
@ -156,7 +140,6 @@ void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
|||||||
changedField == &stimPlanTimeIndexToPlot ||
|
changedField == &stimPlanTimeIndexToPlot ||
|
||||||
changedField == this->objectToggleField() ||
|
changedField == this->objectToggleField() ||
|
||||||
changedField == &showPolygonFractureOutline ||
|
changedField == &showPolygonFractureOutline ||
|
||||||
changedField == &fractureUnit ||
|
|
||||||
changedField == &dip ||
|
changedField == &dip ||
|
||||||
changedField == &tilt)
|
changedField == &tilt)
|
||||||
{
|
{
|
||||||
@ -209,16 +192,30 @@ 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)
|
||||||
|
{
|
||||||
|
if (unitSystem == RiaEclipseUnitTools::UNITS_FIELD)
|
||||||
|
{
|
||||||
|
return RiaEclipseUnitTools::meterToFeet(wellDiameter / 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return wellDiameter / 2;
|
return wellDiameter / 2;
|
||||||
}
|
}
|
||||||
else if (fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
|
}
|
||||||
|
else if (m_fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
|
||||||
|
{
|
||||||
|
if (unitSystem == RiaEclipseUnitTools::UNITS_METRIC)
|
||||||
|
{
|
||||||
|
return RiaEclipseUnitTools::inchToMeter(wellDiameter / 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return RiaEclipseUnitTools::inchToFeet(wellDiameter / 2);
|
return RiaEclipseUnitTools::inchToFeet(wellDiameter / 2);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return cvf::UNDEFINED_DOUBLE;
|
return cvf::UNDEFINED_DOUBLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,12 +344,12 @@ QList<caf::PdmOptionItemInfo> RimFracture::calculateValueOptions(const caf::PdmF
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
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]");
|
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
|
||||||
perforationLength.uiCapability()->setUiName("Perforation Length [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]");
|
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
|
||||||
perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
|
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->updateAzimuthFromFractureTemplate();
|
||||||
this->wellDiameter = fractureTemplate->wellDiameterInFractureUnit(fractureUnit);
|
this->wellDiameter = fractureTemplate->wellDiameterInFractureUnit(m_fractureUnit());
|
||||||
this->perforationLength = fractureTemplate->perforationLengthInFractureUnit(fractureUnit);
|
this->perforationLength = fractureTemplate->perforationLengthInFractureUnit(m_fractureUnit());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -66,11 +66,12 @@ public:
|
|||||||
caf::PdmField<int> stimPlanTimeIndexToPlot;
|
caf::PdmField<int> stimPlanTimeIndexToPlot;
|
||||||
caf::PdmField<bool> showPolygonFractureOutline;
|
caf::PdmField<bool> showPolygonFractureOutline;
|
||||||
|
|
||||||
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > fractureUnit;
|
|
||||||
|
|
||||||
double wellRadius() const;
|
double wellRadius(RiaEclipseUnitTools::UnitSystem unitSystem) const;
|
||||||
cvf::Vec3d anchorPosition() const ;
|
cvf::Vec3d anchorPosition() const ;
|
||||||
void setAnchorPosition(const cvf::Vec3d& pos);
|
void setAnchorPosition(const cvf::Vec3d& pos);
|
||||||
|
RiaEclipseUnitTools::UnitSystem fractureUnit() const;
|
||||||
|
void setFractureUnit(RiaEclipseUnitTools::UnitSystem unitSystem);
|
||||||
|
|
||||||
bool isEclipseCellWithinContainment(const RigMainGrid* mainGrid,
|
bool isEclipseCellWithinContainment(const RigMainGrid* mainGrid,
|
||||||
size_t globalCellIndex);
|
size_t globalCellIndex);
|
||||||
@ -109,6 +110,7 @@ private:
|
|||||||
protected:
|
protected:
|
||||||
caf::PdmPtrField<RimFractureTemplate*> m_fractureTemplate;
|
caf::PdmPtrField<RimFractureTemplate*> m_fractureTemplate;
|
||||||
caf::PdmProxyValueField<cvf::Vec3d> m_uiAnchorPosition;
|
caf::PdmProxyValueField<cvf::Vec3d> m_uiAnchorPosition;
|
||||||
|
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > m_fractureUnit;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<cvf::Vec3d> m_anchorPosition;
|
caf::PdmField<cvf::Vec3d> m_anchorPosition;
|
||||||
|
@ -186,7 +186,6 @@ void RimSimWellFracture::updateFracturePositionFromLocation()
|
|||||||
void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
||||||
fractureUnit.uiCapability()->setUiReadOnly(true);
|
|
||||||
|
|
||||||
uiOrdering.add(nameField());
|
uiOrdering.add(nameField());
|
||||||
uiOrdering.add(&showPolygonFractureOutline);
|
uiOrdering.add(&showPolygonFractureOutline);
|
||||||
@ -199,7 +198,7 @@ void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi
|
|||||||
locationGroup->add(&tilt);
|
locationGroup->add(&tilt);
|
||||||
|
|
||||||
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
|
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
|
||||||
propertyGroup->add(&fractureUnit);
|
propertyGroup->add(&m_fractureUnit);
|
||||||
propertyGroup->add(&m_fractureTemplate);
|
propertyGroup->add(&m_fractureTemplate);
|
||||||
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
||||||
propertyGroup->add(&perforationLength);
|
propertyGroup->add(&perforationLength);
|
||||||
|
@ -169,6 +169,7 @@ void RimWellPathFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
|
|||||||
locationGroup->add(&tilt);
|
locationGroup->add(&tilt);
|
||||||
|
|
||||||
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
|
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
|
||||||
|
propertyGroup->add(&m_fractureUnit);
|
||||||
propertyGroup->add(&m_fractureTemplate);
|
propertyGroup->add(&m_fractureTemplate);
|
||||||
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
||||||
propertyGroup->add(&perforationLength);
|
propertyGroup->add(&perforationLength);
|
||||||
|
@ -14,11 +14,11 @@
|
|||||||
#include <cmath>
|
#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;
|
std::vector<cvf::Vec3d> wellPathPoints = wellpathGeom->m_wellPathPoints;
|
||||||
cvf::Mat4f fractureXf = rimFracture->transformMatrix();
|
cvf::Mat4f fractureXf = rimFracture->transformMatrix();
|
||||||
double wellRadius = rimFracture->wellRadius();
|
double wellRadius = rimFracture->wellRadius(rimFracture->fractureUnit());
|
||||||
std::vector<cvf::Vec3f> fracturePolygonf ;
|
std::vector<cvf::Vec3f> fracturePolygonf ;
|
||||||
std::vector<std::vector<cvf::Vec3d> > stpCellPolygons;
|
std::vector<std::vector<cvf::Vec3d> > stpCellPolygons;
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user