#1744 Load and update data for fractures when loading project file

This commit is contained in:
Magne Sjaastad 2017-08-14 22:16:03 +02:00
parent f756d1d2cb
commit 7dfcfde1d1
7 changed files with 50 additions and 4 deletions

View File

@ -76,6 +76,7 @@
#include "RimWellLogPlotCollection.h" #include "RimWellLogPlotCollection.h"
#include "RimWellPath.h" #include "RimWellPath.h"
#include "RimWellPathCollection.h" #include "RimWellPathCollection.h"
#include "RimWellPathFracture.h"
#include "RiuMainPlotWindow.h" #include "RiuMainPlotWindow.h"
#include "RiuMainWindow.h" #include "RiuMainWindow.h"
@ -483,6 +484,17 @@ bool RiaApplication::loadProject(const QString& projectFileName, ProjectLoadActi
oilField->summaryCaseCollection()->loadAllSummaryCaseData(); oilField->summaryCaseCollection()->loadAllSummaryCaseData();
oilField->fractureDefinitionCollection()->loadAndUpdateData(); oilField->fractureDefinitionCollection()->loadAndUpdateData();
{
std::vector<RimWellPathFracture*> wellPathFractures;
oilField->wellPathCollection->descendantsIncludingThisOfType(wellPathFractures);
for (auto fracture : wellPathFractures)
{
fracture->loadDataAndUpdate();
}
}
} }
// If load action is specified to recalculate statistics, do it now. // If load action is specified to recalculate statistics, do it now.

View File

@ -97,6 +97,8 @@ public:
virtual double wellAzimuthAtFracturePosition() const = 0; virtual double wellAzimuthAtFracturePosition() const = 0;
virtual double fractureMD() const = 0; virtual double fractureMD() const = 0;
virtual void loadDataAndUpdate() = 0;
protected: protected:
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override; virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;

View File

@ -97,7 +97,6 @@ void RimSimWellFracture::updateAzimuthBasedOnWellAzimuthAngle()
else azimuth = simWellAzimuth - 90; else azimuth = simWellAzimuth - 90;
} }
} }
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -120,6 +119,17 @@ double RimSimWellFracture::wellDipAtFracturePosition()
double simWellDip = m_branchCenterLines[m_branchIndex].simWellDipAngle(fracturePosition()); double simWellDip = m_branchCenterLines[m_branchIndex].simWellDipAngle(fracturePosition());
return simWellDip; return simWellDip;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSimWellFracture::loadDataAndUpdate()
{
setBranchGeometry();
updateFracturePositionFromLocation();
updateAzimuthBasedOnWellAzimuthAngle();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -48,9 +48,10 @@ public:
double wellDipAtFracturePosition(); double wellDipAtFracturePosition();
double fractureMD() const override { return m_location; } double fractureMD() const override { return m_location; }
int branchIndex() const { return m_branchIndex(); } int branchIndex() const { return m_branchIndex(); }
virtual void loadDataAndUpdate() override;
protected: protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override; virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;

View File

@ -118,6 +118,15 @@ double RimWellPathFracture::wellAzimuthAtFracturePosition() const
return wellPathAzimuth; return wellPathAzimuth;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellPathFracture::loadDataAndUpdate()
{
updatePositionFromMeasuredDepth();
updateAzimuthBasedOnWellAzimuthAngle();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -45,6 +45,8 @@ public:
double wellAzimuthAtFracturePosition() const override; double wellAzimuthAtFracturePosition() const override;
virtual void loadDataAndUpdate() override;
protected: protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override; virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override;

View File

@ -53,6 +53,7 @@
#include "RimOilField.h" #include "RimOilField.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimReservoirCellResultsStorage.h" #include "RimReservoirCellResultsStorage.h"
#include "RimSimWellFracture.h"
#include "RimStimPlanColors.h" #include "RimStimPlanColors.h"
#include "RimTernaryLegendConfig.h" #include "RimTernaryLegendConfig.h"
#include "RimViewController.h" #include "RimViewController.h"
@ -89,7 +90,6 @@
CAF_PDM_SOURCE_INIT(RimEclipseView, "ReservoirView"); CAF_PDM_SOURCE_INIT(RimEclipseView, "ReservoirView");
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -746,9 +746,19 @@ void RimEclipseView::loadDataAndUpdate()
m_simWellsPartManager->clearGeometryCache(); m_simWellsPartManager->clearGeometryCache();
syncronizeWellsWithResults(); syncronizeWellsWithResults();
{
// Update simulation well fractures after well cell results are imported
std::vector<RimSimWellFracture*> simFractures;
this->descendantsIncludingThisOfType(simFractures);
for (auto fracture : simFractures)
{
fracture->loadDataAndUpdate();
}
}
this->scheduleCreateDisplayModelAndRedraw(); this->scheduleCreateDisplayModelAndRedraw();
} }