From 039aee8d532cfd60c02852b5325a1bb77a5a7212 Mon Sep 17 00:00:00 2001 From: jonjenssen <69144954+jonjenssen@users.noreply.github.com> Date: Thu, 23 Nov 2023 19:01:42 +0100 Subject: [PATCH] Fault Reactivation Grid Update (#10866) * Fix gridding error * Add part name to element set filter * Use sea bottom from geomech case model, if selected --- .../CellFilters/RimCellIndexFilter.cpp | 8 +++----- .../Faults/RimFaultReactivationModel.cpp | 18 ++++++++++++++++++ .../RigFaultReactivationModel.h | 2 ++ .../RigFaultReactivationModelGenerator.cpp | 18 +++++++++--------- .../RigFaultReactivationModelGenerator.h | 1 + .../ReservoirDataModel/RigGriddedPart3d.h | 1 + 6 files changed, 34 insertions(+), 14 deletions(-) diff --git a/ApplicationLibCode/ProjectDataModel/CellFilters/RimCellIndexFilter.cpp b/ApplicationLibCode/ProjectDataModel/CellFilters/RimCellIndexFilter.cpp index 4169132718..46868b1a67 100644 --- a/ApplicationLibCode/ProjectDataModel/CellFilters/RimCellIndexFilter.cpp +++ b/ApplicationLibCode/ProjectDataModel/CellFilters/RimCellIndexFilter.cpp @@ -161,13 +161,11 @@ void RimCellIndexFilter::updateCells() auto part = parts->part( m_gridIndex() ); auto setNames = part->elementSetNames(); + m_name = QString::fromStdString( part->name() ); + if ( m_setId() < (int)setNames.size() ) { - m_name = QString::fromStdString( part->elementSetNames()[m_setId] ); - } - else - { - m_name = QString::fromStdString( part->name() ); + m_name = m_name + " : " + QString::fromStdString( part->elementSetNames()[m_setId] ); } auto cells = part->elementSet( m_setId() ); diff --git a/ApplicationLibCode/ProjectDataModel/Faults/RimFaultReactivationModel.cpp b/ApplicationLibCode/ProjectDataModel/Faults/RimFaultReactivationModel.cpp index bbf942aabb..a39fcc00cd 100644 --- a/ApplicationLibCode/ProjectDataModel/Faults/RimFaultReactivationModel.cpp +++ b/ApplicationLibCode/ProjectDataModel/Faults/RimFaultReactivationModel.cpp @@ -423,6 +423,16 @@ void RimFaultReactivationModel::defineUiOrdering( QString uiConfigName, caf::Pdm sizeModelGrp->add( &m_modelMinZ ); sizeModelGrp->add( &m_modelBelowSize ); + if ( m_geomechCase() != nullptr ) + { + m_modelMinZ.setValue( std::abs( m_geomechCase->allCellsBoundingBox().max().z() ) ); + m_modelMinZ.uiCapability()->setUiReadOnly( true ); + } + else + { + m_modelMinZ.uiCapability()->setUiReadOnly( false ); + } + auto faultGrp = modelGrp->addNewGroup( "Fault" ); faultGrp->add( &m_faultExtendUpwards ); faultGrp->add( &m_faultExtendDownwards ); @@ -473,6 +483,14 @@ void RimFaultReactivationModel::fieldChangedByUi( const caf::PdmFieldHandle* cha } else { + if ( changedField == &m_geomechCase ) + { + if ( m_geomechCase() != nullptr ) + { + m_modelMinZ.setValue( std::abs( m_geomechCase()->allCellsBoundingBox().max().z() ) ); + } + } + updateVisualization(); } } diff --git a/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModel.h b/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModel.h index 1fb2b2b923..367be7bc9a 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModel.h +++ b/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModel.h @@ -29,8 +29,10 @@ #include "cvfTextureImage.h" #include "cvfVector3.h" +#include #include #include +#include #include class RigGriddedPart3d; diff --git a/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.cpp b/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.cpp index c4583eed8e..39ce4a0ec1 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.cpp +++ b/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.cpp @@ -396,13 +396,13 @@ void RigFaultReactivationModelGenerator::generateGeometry( size_t cvf::Vec3d bottom_point = m_bottomReservoirFront; - if ( front_bottom < back_bottom ) + if ( front_bottom > back_bottom ) { - bottom_point = extrapolatePoint( zPositionsBack.begin()->second, ( ++zPositionsBack.begin() )->second, m_bufferBelowFault ); + bottom_point = extrapolatePoint( ( ++zPositionsBack.begin() )->second, zPositionsBack.begin()->second, m_bufferBelowFault ); } - else if ( back_bottom < front_bottom ) + else if ( front_bottom < back_bottom ) { - bottom_point = extrapolatePoint( zPositionsFront.begin()->second, ( ++zPositionsFront.begin() )->second, m_bufferBelowFault ); + bottom_point = extrapolatePoint( ( ++zPositionsFront.begin() )->second, zPositionsFront.begin()->second, m_bufferBelowFault ); } m_bottomFault = bottom_point; @@ -415,13 +415,13 @@ void RigFaultReactivationModelGenerator::generateGeometry( size_t m_topReservoirBack = zPositionsBack.rbegin()->second; cvf::Vec3d top_point = m_topReservoirFront; - if ( front_top < back_top ) + if ( front_top > back_top ) { - top_point = extrapolatePoint( zPositionsFront.rbegin()->second, ( ++zPositionsFront.rbegin() )->second, m_bufferAboveFault ); + top_point = extrapolatePoint( ( ++zPositionsFront.rbegin() )->second, zPositionsFront.rbegin()->second, m_bufferAboveFault ); } - else if ( back_top < front_top ) + else if ( front_top < back_top ) { - top_point = extrapolatePoint( zPositionsBack.rbegin()->second, ( ++zPositionsBack.rbegin() )->second, m_bufferAboveFault ); + top_point = extrapolatePoint( ( ++zPositionsBack.rbegin() )->second, zPositionsBack.rbegin()->second, m_bufferAboveFault ); } m_topFault = top_point; @@ -489,7 +489,7 @@ std::map RigFaultReactivationModelGenerator::elementLayers( //-------------------------------------------------------------------------------------------------- cvf::Vec3d RigFaultReactivationModelGenerator::extrapolatePoint( cvf::Vec3d startPoint, cvf::Vec3d endPoint, double buffer ) { - cvf::Vec3d direction = startPoint - endPoint; + cvf::Vec3d direction = endPoint - startPoint; direction.normalize(); return endPoint + ( buffer * direction ); diff --git a/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.h b/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.h index 873ede25f4..510eec3520 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.h +++ b/ApplicationLibCode/ReservoirDataModel/RigFaultReactivationModelGenerator.h @@ -24,6 +24,7 @@ #include "cvfVector3.h" #include +#include #include #include diff --git a/ApplicationLibCode/ReservoirDataModel/RigGriddedPart3d.h b/ApplicationLibCode/ReservoirDataModel/RigGriddedPart3d.h index e5e2096e16..cb76490477 100644 --- a/ApplicationLibCode/ReservoirDataModel/RigGriddedPart3d.h +++ b/ApplicationLibCode/ReservoirDataModel/RigGriddedPart3d.h @@ -24,6 +24,7 @@ #include "cvfObject.h" #include "cvfVector3.h" +#include #include #include