Improve filtering by 3D view for Producer/Injector Connectivity Table (#10027)

- Calculate by visible cells: Calculate flow diag by use of visible cells in 3D view (already existing functionality).
- Filter producers: select producer wells based on visibility in 3D view. Synch connected injectors - even if they are not visible in 3D view.
- Filter injectors: select injector wells based on visibility in 3D view. Synch connected producers - even if they are not visible in 3D view.
This commit is contained in:
Jørgen Herje
2023-03-31 10:04:17 +02:00
committed by GitHub
parent 2509977e5a
commit c40b400346
13 changed files with 240 additions and 46 deletions

View File

@@ -47,6 +47,13 @@ class RimWellConnectivityTable : public RimPlotWindow
CAF_PDM_HEADER_INIT;
public:
enum class ViewFilterType
{
CALCULATE_BY_VISIBLE_CELLS,
FILTER_BY_VISIBLE_PRODUCERS,
FILTER_BY_VISIBLE_INJECTORS,
};
enum class TimeStepSelection
{
SINGLE_TIME_STEP,
@@ -132,20 +139,25 @@ private:
void setSelectedProducersAndInjectorsForSingleTimeStep();
void setSelectedProducersAndInjectorsForTimeStepRange();
void syncSelectedInjectorsFromProducerSelection();
void syncSelectedProducersFromInjectorSelection();
void syncSelectedInjectorsFromProducerSelection();
void syncSelectedProducersFromInjectorSelection();
void setProducerSelectionFromViewFilterAndSynchInjectors();
void setInjectorSelectionFromViewFilterAndSynchProducers();
void setWellSelectionFromViewFilter();
std::vector<QString> getViewFilteredWellNamesFromFilterType( ViewFilterType filterType ) const;
void onCellFiltersChanged( const SignalEmitter* emitter );
void connectViewCellFiltersChangedToSlot( RimEclipseView* view );
void disconnectViewCellFiltersChangedFromSlots( RimEclipseView* view );
void onCellVisibilityChanged( const SignalEmitter* emitter );
void connectViewCellVisibilityChangedToSlot( RimEclipseView* view );
void disconnectViewCellVisibilityChangedFromSlots( RimEclipseView* view );
private:
// Matrix plot for visualizing table data
QPointer<RiuMatrixPlotWidget> m_matrixPlotWidget;
caf::PdmPtrField<RimEclipseResultCase*> m_case;
caf::PdmPtrField<RimEclipseView*> m_cellFilterView;
caf::PdmPtrField<RimFlowDiagSolution*> m_flowDiagSolution;
caf::PdmPtrField<RimEclipseResultCase*> m_case;
caf::PdmPtrField<RimEclipseView*> m_cellFilterView;
caf::PdmField<caf::AppEnum<ViewFilterType>> m_viewFilterType;
caf::PdmPtrField<RimFlowDiagSolution*> m_flowDiagSolution;
caf::PdmField<caf::AppEnum<TimeStepSelection>> m_timeStepSelection;
caf::PdmField<caf::AppEnum<TimeSampleValueType>> m_timeSampleValueType;