mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2868 Completion Type : Simplify update code paths
This commit is contained in:
parent
9bb8f36052
commit
a986f3a4d2
@ -21,10 +21,11 @@
|
|||||||
#include "RiaApplication.h"
|
#include "RiaApplication.h"
|
||||||
|
|
||||||
#include "RigEclipseCaseData.h"
|
#include "RigEclipseCaseData.h"
|
||||||
|
#include "RigCaseCellResultsData.h"
|
||||||
|
|
||||||
#include "Rim3dView.h"
|
|
||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
#include "RimEclipseCaseCollection.h"
|
#include "RimEclipseCaseCollection.h"
|
||||||
|
#include "RimEclipseView.h"
|
||||||
#include "RimOilField.h"
|
#include "RimOilField.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
|
|
||||||
@ -56,24 +57,24 @@ void RiaCompletionTypeCalculationScheduler::scheduleRecalculateCompletionTypeAnd
|
|||||||
std::vector<RimEclipseCase*> eclipseCases =
|
std::vector<RimEclipseCase*> eclipseCases =
|
||||||
RiaApplication::instance()->project()->activeOilField()->analysisModels->cases().childObjects();
|
RiaApplication::instance()->project()->activeOilField()->analysisModels->cases().childObjects();
|
||||||
|
|
||||||
scheduleRecalculateCompletionTypeAndRedrawEclipseCases(eclipseCases);
|
scheduleRecalculateCompletionTypeAndRedrawAllViews(eclipseCases);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiaCompletionTypeCalculationScheduler::scheduleRecalculateCompletionTypeAndRedrawEclipseCase(RimEclipseCase* eclipseCase)
|
void RiaCompletionTypeCalculationScheduler::scheduleRecalculateCompletionTypeAndRedrawAllViews(RimEclipseCase* eclipseCase)
|
||||||
{
|
{
|
||||||
std::vector<RimEclipseCase*> eclipseCases;
|
std::vector<RimEclipseCase*> eclipseCases;
|
||||||
eclipseCases.push_back(eclipseCase);
|
eclipseCases.push_back(eclipseCase);
|
||||||
|
|
||||||
scheduleRecalculateCompletionTypeAndRedrawEclipseCases(eclipseCases);
|
scheduleRecalculateCompletionTypeAndRedrawAllViews(eclipseCases);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiaCompletionTypeCalculationScheduler::scheduleRecalculateCompletionTypeAndRedrawEclipseCases(
|
void RiaCompletionTypeCalculationScheduler::scheduleRecalculateCompletionTypeAndRedrawAllViews(
|
||||||
const std::vector<RimEclipseCase*>& eclipseCases)
|
const std::vector<RimEclipseCase*>& eclipseCases)
|
||||||
{
|
{
|
||||||
for (RimEclipseCase* eclipseCase : eclipseCases)
|
for (RimEclipseCase* eclipseCase : eclipseCases)
|
||||||
@ -82,6 +83,9 @@ void RiaCompletionTypeCalculationScheduler::scheduleRecalculateCompletionTypeAnd
|
|||||||
|
|
||||||
if (eclipseCase->eclipseCaseData())
|
if (eclipseCase->eclipseCaseData())
|
||||||
{
|
{
|
||||||
|
eclipseCase->eclipseCaseData()->results(RiaDefines::MATRIX_MODEL)->clearScalarResult(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName());
|
||||||
|
|
||||||
|
// Delete virtual perforation transmissibilities, as these are the basis for the computation of completion type
|
||||||
eclipseCase->eclipseCaseData()->setVirtualPerforationTransmissibilities(nullptr);
|
eclipseCase->eclipseCaseData()->setVirtualPerforationTransmissibilities(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,8 +107,14 @@ void RiaCompletionTypeCalculationScheduler::slotRecalculateCompletionType()
|
|||||||
|
|
||||||
for (RimEclipseCase* eclipseCase : uniqueCases)
|
for (RimEclipseCase* eclipseCase : uniqueCases)
|
||||||
{
|
{
|
||||||
eclipseCase->recalculateCompletionTypeAndRedrawAllViews();
|
for (const auto& w : eclipseCase->views())
|
||||||
eclipseCase->deleteVirtualConnectionFactorDataAndRedrawRequiredViews();
|
{
|
||||||
|
RimEclipseView* eclView = dynamic_cast<RimEclipseView*>(w);
|
||||||
|
if (eclView)
|
||||||
|
{
|
||||||
|
eclView->calculateCompletionTypeAndRedrawIfRequired();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_eclipseCasesToRecalculate.clear();
|
m_eclipseCasesToRecalculate.clear();
|
||||||
|
@ -33,7 +33,7 @@ class RiaCompletionTypeCalculationScheduler : public QObject
|
|||||||
public:
|
public:
|
||||||
static RiaCompletionTypeCalculationScheduler* instance();
|
static RiaCompletionTypeCalculationScheduler* instance();
|
||||||
void scheduleRecalculateCompletionTypeAndRedrawAllViews();
|
void scheduleRecalculateCompletionTypeAndRedrawAllViews();
|
||||||
void scheduleRecalculateCompletionTypeAndRedrawEclipseCase(RimEclipseCase* eclipseCase);
|
void scheduleRecalculateCompletionTypeAndRedrawAllViews(RimEclipseCase* eclipseCase);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void slotRecalculateCompletionType();
|
void slotRecalculateCompletionType();
|
||||||
@ -45,7 +45,7 @@ private:
|
|||||||
RiaCompletionTypeCalculationScheduler(const RiaCompletionTypeCalculationScheduler& o) = delete;
|
RiaCompletionTypeCalculationScheduler(const RiaCompletionTypeCalculationScheduler& o) = delete;
|
||||||
void operator=(const RiaCompletionTypeCalculationScheduler& o) = delete;
|
void operator=(const RiaCompletionTypeCalculationScheduler& o) = delete;
|
||||||
|
|
||||||
void scheduleRecalculateCompletionTypeAndRedrawEclipseCases(const std::vector<RimEclipseCase*>& eclipseCases);
|
void scheduleRecalculateCompletionTypeAndRedrawAllViews(const std::vector<RimEclipseCase*>& eclipseCases);
|
||||||
|
|
||||||
void startTimer();
|
void startTimer();
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "RimFracture.h"
|
#include "RimFracture.h"
|
||||||
|
|
||||||
#include "RiaApplication.h"
|
#include "RiaApplication.h"
|
||||||
|
#include "RiaCompletionTypeCalculationScheduler.h"
|
||||||
#include "RiaEclipseUnitTools.h"
|
#include "RiaEclipseUnitTools.h"
|
||||||
#include "RiaLogging.h"
|
#include "RiaLogging.h"
|
||||||
|
|
||||||
@ -226,7 +227,7 @@ void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
|||||||
changedField == &m_tilt ||
|
changedField == &m_tilt ||
|
||||||
changedField == &m_perforationLength)
|
changedField == &m_perforationLength)
|
||||||
{
|
{
|
||||||
Rim3dView* rimView = nullptr;
|
RimEclipseView* rimView = nullptr;
|
||||||
this->firstAncestorOrThisOfType(rimView);
|
this->firstAncestorOrThisOfType(rimView);
|
||||||
if (rimView)
|
if (rimView)
|
||||||
{
|
{
|
||||||
@ -234,8 +235,7 @@ void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
|||||||
rimView->firstAncestorOrThisOfType(eclipseCase);
|
rimView->firstAncestorOrThisOfType(eclipseCase);
|
||||||
if (eclipseCase)
|
if (eclipseCase)
|
||||||
{
|
{
|
||||||
eclipseCase->recalculateCompletionTypeAndRedrawAllViews();
|
RiaCompletionTypeCalculationScheduler::instance()->scheduleRecalculateCompletionTypeAndRedrawAllViews(eclipseCase);
|
||||||
eclipseCase->deleteVirtualConnectionFactorDataAndRedrawRequiredViews();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -297,45 +297,6 @@ RimEclipseView* RimEclipseCase::createCopyAndAddView(const RimEclipseView* sourc
|
|||||||
return rimEclipseView;
|
return rimEclipseView;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimEclipseCase::recalculateCompletionTypeAndRedrawAllViews()
|
|
||||||
{
|
|
||||||
results(RiaDefines::MATRIX_MODEL)->clearScalarResult(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName());
|
|
||||||
|
|
||||||
for (Rim3dView* view : views())
|
|
||||||
{
|
|
||||||
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(view);
|
|
||||||
if (eclipseView)
|
|
||||||
{
|
|
||||||
eclipseView->calculateCompletionTypeAndRedrawIfRequired();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimEclipseCase::deleteVirtualConnectionFactorDataAndRedrawRequiredViews()
|
|
||||||
{
|
|
||||||
RigEclipseCaseData* rigEclipseCase = eclipseCaseData();
|
|
||||||
|
|
||||||
if (rigEclipseCase)
|
|
||||||
{
|
|
||||||
rigEclipseCase->setVirtualPerforationTransmissibilities(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Rim3dView* view : views())
|
|
||||||
{
|
|
||||||
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(view);
|
|
||||||
if (eclipseView && eclipseView->isVirtualConnectionFactorGeometryVisible())
|
|
||||||
{
|
|
||||||
eclipseView->scheduleCreateDisplayModelAndRedraw();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -87,9 +87,6 @@ public:
|
|||||||
RimEclipseView* createAndAddReservoirView();
|
RimEclipseView* createAndAddReservoirView();
|
||||||
RimEclipseView* createCopyAndAddView(const RimEclipseView* sourceView);
|
RimEclipseView* createCopyAndAddView(const RimEclipseView* sourceView);
|
||||||
|
|
||||||
void recalculateCompletionTypeAndRedrawAllViews();
|
|
||||||
|
|
||||||
void deleteVirtualConnectionFactorDataAndRedrawRequiredViews();
|
|
||||||
const RigVirtualPerforationTransmissibilities* computeAndGetVirtualPerforationTransmissibilities();
|
const RigVirtualPerforationTransmissibilities* computeAndGetVirtualPerforationTransmissibilities();
|
||||||
|
|
||||||
virtual QString locationOnDisc() const { return QString(); }
|
virtual QString locationOnDisc() const { return QString(); }
|
||||||
|
@ -1016,7 +1016,7 @@ void RimProject::reloadCompletionTypeResultsForEclipseCase(RimEclipseCase* eclip
|
|||||||
views[viewIdx]->scheduleCreateDisplayModelAndRedraw();
|
views[viewIdx]->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
RiaCompletionTypeCalculationScheduler::instance()->scheduleRecalculateCompletionTypeAndRedrawEclipseCase(eclipseCase);
|
RiaCompletionTypeCalculationScheduler::instance()->scheduleRecalculateCompletionTypeAndRedrawAllViews(eclipseCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user