#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 "RimWellPath.h"
#include "RimWellPathCollection.h"
#include "RimWellPathFracture.h"
#include "RiuMainPlotWindow.h"
#include "RiuMainWindow.h"
@ -483,6 +484,17 @@ bool RiaApplication::loadProject(const QString& projectFileName, ProjectLoadActi
oilField->summaryCaseCollection()->loadAllSummaryCaseData();
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.

View File

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

View File

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

View File

@ -48,9 +48,10 @@ public:
double wellDipAtFracturePosition();
double fractureMD() const override { return m_location; }
int branchIndex() const { return m_branchIndex(); }
virtual void loadDataAndUpdate() override;
protected:
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) 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;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellPathFracture::loadDataAndUpdate()
{
updatePositionFromMeasuredDepth();
updateAzimuthBasedOnWellAzimuthAngle();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

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

View File

@ -53,6 +53,7 @@
#include "RimOilField.h"
#include "RimProject.h"
#include "RimReservoirCellResultsStorage.h"
#include "RimSimWellFracture.h"
#include "RimStimPlanColors.h"
#include "RimTernaryLegendConfig.h"
#include "RimViewController.h"
@ -89,7 +90,6 @@
CAF_PDM_SOURCE_INIT(RimEclipseView, "ReservoirView");
//--------------------------------------------------------------------------------------------------
///
@ -746,9 +746,19 @@ void RimEclipseView::loadDataAndUpdate()
m_simWellsPartManager->clearGeometryCache();
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();
}