#2188 Missing fault faces

Make sure all visible geometry is marked as watertight to avoid open grid sections in some cases, especially when loading file and regeneration of geometry
This commit is contained in:
Magne Sjaastad 2017-12-05 18:20:29 +01:00
parent a285ae8f61
commit 3e844746eb
2 changed files with 18 additions and 8 deletions

View File

@ -190,6 +190,20 @@ void RimEclipseView::clampCurrentTimestep()
if (m_currentTimeStep < 0 ) m_currentTimeStep = 0; if (m_currentTimeStep < 0 ) m_currentTimeStep = 0;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseView::setVisibleGridParts(const std::vector<RivCellSetEnum>& cellSets)
{
m_visibleGridParts = cellSets;
// Always make sure visible grid parts are marked as watertight
for (RivCellSetEnum cellSetType : m_visibleGridParts)
{
m_reservoirGridPartManager->forceWatertightGeometryOnForType(cellSetType);
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -375,7 +389,7 @@ void RimEclipseView::createDisplayModel()
// NOTE: This assignment must be done here, as m_visibleGridParts is used in code triggered by // NOTE: This assignment must be done here, as m_visibleGridParts is used in code triggered by
// m_reservoirGridPartManager->appendStaticGeometryPartsToModel() // m_reservoirGridPartManager->appendStaticGeometryPartsToModel()
m_visibleGridParts = geometryTypesToAdd; setVisibleGridParts(geometryTypesToAdd);
size_t frameIdx; size_t frameIdx;
for (frameIdx = 0; frameIdx < frameModels.size(); ++frameIdx) for (frameIdx = 0; frameIdx < frameModels.size(); ++frameIdx)
@ -394,11 +408,6 @@ void RimEclipseView::createDisplayModel()
if (faultCollection()->showFaultsOutsideFilters() || !this->eclipsePropertyFilterCollection()->hasActiveFilters() ) if (faultCollection()->showFaultsOutsideFilters() || !this->eclipsePropertyFilterCollection()->hasActiveFilters() )
{ {
for (RivCellSetEnum cellSetType : m_visibleGridParts)
{
m_reservoirGridPartManager->forceWatertightGeometryOnForType(cellSetType);
}
std::set<RivCellSetEnum> faultGeometryTypesToAppend = allVisibleFaultGeometryTypes(); std::set<RivCellSetEnum> faultGeometryTypesToAppend = allVisibleFaultGeometryTypes();
RivCellSetEnum faultLabelType = m_reservoirGridPartManager->geometryTypeForFaultLabels(faultGeometryTypesToAppend, faultCollection()->showFaultsOutsideFilters()); RivCellSetEnum faultLabelType = m_reservoirGridPartManager->geometryTypeForFaultLabels(faultGeometryTypesToAppend, faultCollection()->showFaultsOutsideFilters());
@ -536,7 +545,7 @@ void RimEclipseView::updateCurrentTimeStep()
geometriesToRecolor.push_back( PROPERTY_FILTERED_WELL_CELLS); geometriesToRecolor.push_back( PROPERTY_FILTERED_WELL_CELLS);
m_reservoirGridPartManager->appendDynamicGeometryPartsToModel(frameParts.p(), PROPERTY_FILTERED_WELL_CELLS, m_currentTimeStep, gridIndices); m_reservoirGridPartManager->appendDynamicGeometryPartsToModel(frameParts.p(), PROPERTY_FILTERED_WELL_CELLS, m_currentTimeStep, gridIndices);
m_visibleGridParts = geometriesToRecolor; setVisibleGridParts(geometriesToRecolor);
std::set<RivCellSetEnum> faultGeometryTypesToAppend = allVisibleFaultGeometryTypes(); std::set<RivCellSetEnum> faultGeometryTypesToAppend = allVisibleFaultGeometryTypes();
for (RivCellSetEnum geometryType : faultGeometryTypesToAppend) for (RivCellSetEnum geometryType : faultGeometryTypesToAppend)

View File

@ -179,8 +179,9 @@ private:
void syncronizeWellsWithResults(); void syncronizeWellsWithResults();
void clampCurrentTimestep() override; void clampCurrentTimestep() override;
void setVisibleGridParts(const std::vector<RivCellSetEnum>& cellSets);
private:
caf::PdmChildField<RimEclipsePropertyFilterCollection*> m_propertyFilterCollection; caf::PdmChildField<RimEclipsePropertyFilterCollection*> m_propertyFilterCollection;
caf::PdmPointer<RimEclipsePropertyFilterCollection> m_overridePropertyFilterCollection; caf::PdmPointer<RimEclipsePropertyFilterCollection> m_overridePropertyFilterCollection;