mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Merge remote-tracking branch 'origin/dev' into pre-proto
This commit is contained in:
@@ -63,9 +63,8 @@
|
||||
#include "RiuSelectionManager.h"
|
||||
#include "RiuViewer.h"
|
||||
|
||||
#include "RivReservoirPipesPartMgr.h"
|
||||
#include "RivReservoirSimWellsPartMgr.h"
|
||||
#include "RivReservoirViewPartMgr.h"
|
||||
#include "RivReservoirWellSpheresPartMgr.h"
|
||||
#include "RivSingleCellPartGenerator.h"
|
||||
#include "RivTernarySaturationOverlayItem.h"
|
||||
#include "RivWellPathCollectionPartMgr.h"
|
||||
@@ -145,10 +144,9 @@ RimEclipseView::RimEclipseView()
|
||||
this->faultResultSettings()->setReservoirView(this);
|
||||
|
||||
m_reservoirGridPartManager = new RivReservoirViewPartMgr(this);
|
||||
m_pipesPartManager = new RivReservoirPipesPartMgr(this);
|
||||
m_wellSpheresPartManager = new RivReservoirWellSpheresPartMgr(this);
|
||||
m_simWellsPartManager = new RivReservoirSimWellsPartMgr(this);
|
||||
|
||||
m_reservoir = NULL;
|
||||
m_eclipseCase = NULL;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -166,7 +164,7 @@ RimEclipseView::~RimEclipseView()
|
||||
|
||||
m_reservoirGridPartManager->clearGeometryCache();
|
||||
|
||||
m_reservoir = NULL;
|
||||
m_eclipseCase = NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -239,7 +237,7 @@ void RimEclipseView::updateScaleTransform()
|
||||
scale(2, 2) = scaleZ();
|
||||
|
||||
this->scaleTransform()->setLocalTransform(scale);
|
||||
m_pipesPartManager->setScaleTransform(this->scaleTransform());
|
||||
m_simWellsPartManager->setScaleTransform(this->scaleTransform());
|
||||
|
||||
// Regenerate fracture geometry
|
||||
std::vector<RimFracture*> fractures;
|
||||
@@ -267,7 +265,7 @@ void RimEclipseView::createDisplayModel()
|
||||
RiuMainWindow::instance()->setResultInfo(QString("RimReservoirView::createDisplayModel() ") + QString::number(callCount++));
|
||||
#endif
|
||||
|
||||
if (!(m_reservoir && m_reservoir->reservoirData())) return;
|
||||
if (!(m_eclipseCase && m_eclipseCase->eclipseCaseData())) return;
|
||||
|
||||
// Define a vector containing time step indices to produce geometry for.
|
||||
// First entry in this vector is used to define the geometry only result mode with no results.
|
||||
@@ -490,6 +488,8 @@ void RimEclipseView::createDisplayModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::updateCurrentTimeStep()
|
||||
{
|
||||
m_propertyFilterCollection()->updateFromCurrentTimeStep();
|
||||
|
||||
updateLegends(); // To make sure the scalar mappers are set up correctly
|
||||
|
||||
std::vector<RivCellSetEnum> geometriesToRecolor;
|
||||
@@ -630,20 +630,21 @@ void RimEclipseView::updateCurrentTimeStep()
|
||||
crossSectionCollection->applySingleColorEffect();
|
||||
}
|
||||
|
||||
// Simulation Well pipes
|
||||
// Simulation Wells
|
||||
if (m_viewer)
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame(m_currentTimeStep);
|
||||
if (frameScene)
|
||||
{
|
||||
// Simulation Well pipes
|
||||
cvf::ref<cvf::ModelBasicList> simWellModelBasicList = new cvf::ModelBasicList;
|
||||
simWellModelBasicList->setName("SimWellPipeMod");
|
||||
|
||||
cvf::ref<cvf::ModelBasicList> wellPipeModelBasicList = new cvf::ModelBasicList;
|
||||
wellPipeModelBasicList->setName("SimWellPipeMod");
|
||||
m_simWellsPartManager->appendDynamicGeometryPartsToModel(simWellModelBasicList.p(), m_currentTimeStep);
|
||||
|
||||
m_pipesPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep);
|
||||
m_wellSpheresPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep);
|
||||
simWellModelBasicList->updateBoundingBoxesRecursive();
|
||||
|
||||
this->removeModelByName(frameScene, simWellModelBasicList->name());
|
||||
frameScene->addModel(simWellModelBasicList.p());
|
||||
cvf::ref<caf::DisplayCoordTransform> transForm = this->displayCoordTransform();
|
||||
|
||||
std::vector<RimFracture*> fractures;
|
||||
@@ -661,15 +662,12 @@ void RimEclipseView::updateCurrentTimeStep()
|
||||
}
|
||||
}
|
||||
|
||||
f->fracturePartManager()->appendGeometryPartsToModel(wellPipeModelBasicList.p(), transForm.p());
|
||||
f->fracturePartManager()->appendGeometryPartsToModel(simWellModelBasicList.p(), transForm.p());
|
||||
}
|
||||
|
||||
wellPipeModelBasicList->updateBoundingBoxesRecursive();
|
||||
simWellModelBasicList->updateBoundingBoxesRecursive();
|
||||
|
||||
this->removeModelByName(frameScene, wellPipeModelBasicList->name());
|
||||
frameScene->addModel(wellPipeModelBasicList.p());
|
||||
|
||||
m_pipesPartManager->updatePipeResultColor(m_currentTimeStep);
|
||||
m_simWellsPartManager->updatePipeResultColor(m_currentTimeStep);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -687,13 +685,13 @@ void RimEclipseView::loadDataAndUpdate()
|
||||
{
|
||||
updateScaleTransform();
|
||||
|
||||
if (m_reservoir)
|
||||
if (m_eclipseCase)
|
||||
{
|
||||
if (!m_reservoir->openReserviorCase())
|
||||
if (!m_eclipseCase->openReserviorCase())
|
||||
{
|
||||
QMessageBox::warning(RiuMainWindow::instance(),
|
||||
"Error when opening project file",
|
||||
"Could not open the Eclipse Grid file: \n"+ m_reservoir->gridFileName());
|
||||
"Could not open the Eclipse Grid file: \n"+ m_eclipseCase->gridFileName());
|
||||
this->setEclipseCase( NULL);
|
||||
return;
|
||||
}
|
||||
@@ -716,8 +714,7 @@ void RimEclipseView::loadDataAndUpdate()
|
||||
this->faultCollection()->syncronizeFaults();
|
||||
|
||||
m_reservoirGridPartManager->clearGeometryCache();
|
||||
m_pipesPartManager->clearGeometryCache();
|
||||
m_wellSpheresPartManager->clearGeometryCache();
|
||||
m_simWellsPartManager->clearGeometryCache();
|
||||
|
||||
syncronizeWellsWithResults();
|
||||
|
||||
@@ -851,11 +848,11 @@ void RimEclipseView::updateDisplayModelVisibility()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimReservoirCellResultsStorage* RimEclipseView::currentGridCellResults()
|
||||
{
|
||||
if (m_reservoir)
|
||||
if (m_eclipseCase)
|
||||
{
|
||||
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(cellResult->porosityModel());
|
||||
|
||||
return m_reservoir->results(porosityModel);
|
||||
return m_eclipseCase->results(porosityModel);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -866,13 +863,13 @@ RimReservoirCellResultsStorage* RimEclipseView::currentGridCellResults()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigActiveCellInfo* RimEclipseView::currentActiveCellInfo()
|
||||
{
|
||||
if (m_reservoir &&
|
||||
m_reservoir->reservoirData()
|
||||
if (m_eclipseCase &&
|
||||
m_eclipseCase->eclipseCaseData()
|
||||
)
|
||||
{
|
||||
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(cellResult->porosityModel());
|
||||
|
||||
return m_reservoir->reservoirData()->activeCellInfo(porosityModel);
|
||||
return m_eclipseCase->eclipseCaseData()->activeCellInfo(porosityModel);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -909,10 +906,9 @@ void RimEclipseView::scheduleReservoirGridGeometryRegen()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::schedulePipeGeometryRegen()
|
||||
void RimEclipseView::scheduleSimWellGeometryRegen()
|
||||
{
|
||||
m_pipesPartManager->scheduleGeometryRegen();
|
||||
m_wellSpheresPartManager->clearGeometryCache();
|
||||
m_simWellsPartManager->scheduleGeometryRegen();
|
||||
}
|
||||
|
||||
|
||||
@@ -925,9 +921,9 @@ void RimEclipseView::indicesToVisibleGrids(std::vector<size_t>* gridIndices)
|
||||
|
||||
// Create vector of grid indices to render
|
||||
std::vector<RigGridBase*> grids;
|
||||
if (this->m_reservoir && this->m_reservoir->reservoirData() )
|
||||
if (this->m_eclipseCase && this->m_eclipseCase->eclipseCaseData() )
|
||||
{
|
||||
this->m_reservoir->reservoirData()->allGrids(&grids);
|
||||
this->m_eclipseCase->eclipseCaseData()->allGrids(&grids);
|
||||
}
|
||||
|
||||
size_t i;
|
||||
@@ -950,12 +946,12 @@ void RimEclipseView::updateLegends()
|
||||
m_viewer->removeAllColorLegends();
|
||||
}
|
||||
|
||||
if (!m_reservoir || !m_viewer || !m_reservoir->reservoirData() )
|
||||
if (!m_eclipseCase || !m_viewer || !m_eclipseCase->eclipseCaseData() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RigEclipseCaseData* eclipseCase = m_reservoir->reservoirData();
|
||||
RigEclipseCaseData* eclipseCase = m_eclipseCase->eclipseCaseData();
|
||||
CVF_ASSERT(eclipseCase);
|
||||
|
||||
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(cellResult()->porosityModel());
|
||||
@@ -1098,7 +1094,7 @@ void RimEclipseView::updateMinMaxValuesAndAddLegendToView(QString legendLabel, R
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::setEclipseCase(RimEclipseCase* reservoir)
|
||||
{
|
||||
m_reservoir = reservoir;
|
||||
m_eclipseCase = reservoir;
|
||||
cellResult()->setEclipseCase(reservoir);
|
||||
faultResultSettings()->customFaultResult()->setEclipseCase(reservoir);
|
||||
|
||||
@@ -1110,7 +1106,7 @@ void RimEclipseView::setEclipseCase(RimEclipseCase* reservoir)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimEclipseView::eclipseCase() const
|
||||
{
|
||||
return m_reservoir;
|
||||
return m_eclipseCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1128,9 +1124,9 @@ RimEclipseCase* RimEclipseView::eclipseCase() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::syncronizeWellsWithResults()
|
||||
{
|
||||
if (!(m_reservoir && m_reservoir->reservoirData()) ) return;
|
||||
if (!(m_eclipseCase && m_eclipseCase->eclipseCaseData()) ) return;
|
||||
|
||||
cvf::Collection<RigSingleWellResultsData> wellResults = m_reservoir->reservoirData()->wellResults();
|
||||
cvf::Collection<RigSingleWellResultsData> wellResults = m_eclipseCase->eclipseCaseData()->wellResults();
|
||||
|
||||
|
||||
std::vector<caf::PdmPointer<RimEclipseWell> > newWells;
|
||||
@@ -1311,8 +1307,7 @@ void RimEclipseView::calculateVisibleWellCellsIncFence(cvf::UByteArray* visibleC
|
||||
void RimEclipseView::updateDisplayModelForWellResults()
|
||||
{
|
||||
m_reservoirGridPartManager->clearGeometryCache();
|
||||
m_pipesPartManager->clearGeometryCache();
|
||||
m_wellSpheresPartManager->clearGeometryCache();
|
||||
m_simWellsPartManager->clearGeometryCache();
|
||||
|
||||
syncronizeWellsWithResults();
|
||||
|
||||
@@ -1504,9 +1499,9 @@ RimCase* RimEclipseView::ownerCase()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigMainGrid* RimEclipseView::mainGrid() const
|
||||
{
|
||||
if (eclipseCase() && eclipseCase()->reservoirData())
|
||||
if (eclipseCase() && eclipseCase()->eclipseCaseData())
|
||||
{
|
||||
return eclipseCase()->reservoirData()->mainGrid();
|
||||
return eclipseCase()->eclipseCaseData()->mainGrid();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@@ -1522,7 +1517,7 @@ void RimEclipseView::findGridIndexAndCellIndex(RimEclipseWell* eclipseWell, size
|
||||
size_t wellIndex = wellCollection->wells().index(eclipseWell);
|
||||
if (wellIndex != cvf::UNDEFINED_SIZE_T)
|
||||
{
|
||||
m_pipesPartManager->findGridIndexAndCellIndex(wellIndex, branchIndex, triangleIndex, gridIndex, cellIndex);
|
||||
m_simWellsPartManager->findGridIndexAndCellIndex(wellIndex, branchIndex, triangleIndex, gridIndex, cellIndex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1572,7 +1567,7 @@ void RimEclipseView::setOverridePropertyFilterCollection(RimEclipsePropertyFilte
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::calculateCurrentTotalCellVisibility(cvf::UByteArray* totalVisibility)
|
||||
{
|
||||
size_t gridCount = this->eclipseCase()->reservoirData()->gridCount();
|
||||
size_t gridCount = this->eclipseCase()->eclipseCaseData()->gridCount();
|
||||
size_t cellCount = this->mainGrid()->globalCellArray().size();
|
||||
|
||||
totalVisibility->resize(cellCount);
|
||||
@@ -1580,7 +1575,7 @@ void RimEclipseView::calculateCurrentTotalCellVisibility(cvf::UByteArray* totalV
|
||||
|
||||
for (size_t gridIdx = 0; gridIdx < gridCount; ++gridIdx)
|
||||
{
|
||||
RigGridBase * grid = this->eclipseCase()->reservoirData()->grid(gridIdx);
|
||||
RigGridBase * grid = this->eclipseCase()->eclipseCaseData()->grid(gridIdx);
|
||||
int gridCellCount = static_cast<int>(grid->cellCount());
|
||||
|
||||
for (size_t gpIdx = 0; gpIdx < m_visibleGridParts.size(); ++gpIdx)
|
||||
@@ -1620,9 +1615,9 @@ void RimEclipseView::createPartCollectionFromSelection(cvf::Collection<cvf::Part
|
||||
if (eclipseSelItem && eclipseSelItem->m_view == this)
|
||||
{
|
||||
CVF_ASSERT(eclipseSelItem->m_view->eclipseCase());
|
||||
CVF_ASSERT(eclipseSelItem->m_view->eclipseCase()->reservoirData());
|
||||
CVF_ASSERT(eclipseSelItem->m_view->eclipseCase()->eclipseCaseData());
|
||||
|
||||
RivSingleCellPartGenerator partGen(eclipseSelItem->m_view->eclipseCase()->reservoirData(), eclipseSelItem->m_gridIndex, eclipseSelItem->m_cellIndex);
|
||||
RivSingleCellPartGenerator partGen(eclipseSelItem->m_view->eclipseCase()->eclipseCaseData(), eclipseSelItem->m_gridIndex, eclipseSelItem->m_cellIndex);
|
||||
|
||||
cvf::ref<cvf::Part> part = partGen.createPart(eclipseSelItem->m_color);
|
||||
part->setTransform(this->scaleTransform());
|
||||
|
||||
Reference in New Issue
Block a user