mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Fix missing fault faces in GetGridSurface() endpoint
Adjust name of python files
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
#include <vector>
|
||||
|
||||
/*
|
||||
* Class for handling welding of vertices in a polygon to prevent duplicated vertex 3D points within a tolerance margin
|
||||
* Class for handling welding of vertices internally in a polygon to prevent duplicated vertex 3D points within a tolerance margin
|
||||
*/
|
||||
class PolygonVertexWelder
|
||||
{
|
||||
|
||||
@@ -73,7 +73,7 @@ RivGridPartMgr::RivGridPartMgr( RivCellSetEnum cellSetType, RimEclipseCase* ecli
|
||||
: m_surfaceGenerator( grid, RiaRegressionTestRunner::instance()->useOpenMPForGeometryCreation() )
|
||||
, m_gridIdx( gridIdx )
|
||||
, m_grid( grid )
|
||||
, m_surfaceFaceFilter( grid )
|
||||
, m_surfaceFaceFilter( grid, false )
|
||||
, m_opacityLevel( 1.0f )
|
||||
, m_defaultColor( cvf::Color3::WHITE )
|
||||
, m_eclipseCase( eclipseCase )
|
||||
|
||||
@@ -572,7 +572,7 @@ bool RigGridCellFaceVisibilityFilter::isFaceVisible( size_t
|
||||
const RigFault* fault = m_grid->mainGrid()->findFaultFromCellIndexAndCellFace( nativeResvCellIndex, face );
|
||||
if ( fault )
|
||||
{
|
||||
return false;
|
||||
return m_includeFaultFaces;
|
||||
}
|
||||
|
||||
// If the neighbour cell is invisible, we need to draw the face
|
||||
|
||||
@@ -128,13 +128,15 @@ private:
|
||||
class RigGridCellFaceVisibilityFilter : public cvf::CellFaceVisibilityFilter
|
||||
{
|
||||
public:
|
||||
explicit RigGridCellFaceVisibilityFilter( const RigGridBase* grid )
|
||||
explicit RigGridCellFaceVisibilityFilter( const RigGridBase* const grid, bool includeFaultFaces )
|
||||
: m_grid( grid )
|
||||
, m_includeFaultFaces( includeFaultFaces )
|
||||
{
|
||||
}
|
||||
|
||||
bool isFaceVisible( size_t i, size_t j, size_t k, cvf::StructGridInterface::FaceType face, const cvf::UByteArray* cellVisibility ) const override;
|
||||
|
||||
private:
|
||||
const RigGridBase* m_grid;
|
||||
const RigGridBase* const m_grid;
|
||||
const bool m_includeFaultFaces;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
import time
|
||||
|
||||
from rips.instance import *
|
||||
from rips.generated.GridGeometryExtraction_pb2_grpc import *
|
||||
from rips.generated.GridGeometryExtraction_pb2 import *
|
||||
|
||||
# from ..instance import *
|
||||
# from ..generated.GridGeometryExtraction_pb2_grpc import *
|
||||
# from ..generated.GridGeometryExtraction_pb2 import *
|
||||
|
||||
rips_instance = Instance.find()
|
||||
grid_geometry_extraction_stub = GridGeometryExtractionStub(rips_instance.channel)
|
||||
|
||||
# grid_file_name = "MOCKED_TEST_GRID"
|
||||
grid_file_name = (
|
||||
"D:\\Git\\resinsight-tutorials\\model-data\\norne\\NORNE_ATW2013_RFTPLT_V2.EGRID"
|
||||
)
|
||||
|
||||
# Test polylines
|
||||
mocked_model_fence_poly_line_utm_xy = [
|
||||
11.2631,
|
||||
11.9276,
|
||||
14.1083,
|
||||
18.2929,
|
||||
18.3523,
|
||||
10.9173,
|
||||
]
|
||||
norne_case_fence_poly_line_utm_xy = [
|
||||
456221,
|
||||
7.32113e06,
|
||||
457150,
|
||||
7.32106e06,
|
||||
456885,
|
||||
7.32176e06,
|
||||
457648,
|
||||
7.3226e06,
|
||||
458805,
|
||||
7.32278e06,
|
||||
]
|
||||
norne_case_single_segment_poly_line_utm_xy = [457150, 7.32106e06, 456885, 7.32176e06]
|
||||
norne_case_single_segment_poly_line_gap_utm_xy = [460877, 7.3236e06, 459279, 7.32477e06]
|
||||
|
||||
|
||||
fence_poly_line_utm_xy = norne_case_fence_poly_line_utm_xy
|
||||
|
||||
num_calls = 20
|
||||
sleep_time_s = 0.5
|
||||
|
||||
for i in range(num_calls):
|
||||
print(f"Call {i+1}/{num_calls}")
|
||||
cut_along_polyline_request = GridGeometryExtraction__pb2.CutAlongPolylineRequest(
|
||||
gridFilename=grid_file_name,
|
||||
fencePolylineUtmXY=fence_poly_line_utm_xy,
|
||||
)
|
||||
cut_along_polyline_response: (
|
||||
GridGeometryExtraction__pb2.CutAlongPolylineResponse
|
||||
) = grid_geometry_extraction_stub.CutAlongPolyline(cut_along_polyline_request)
|
||||
|
||||
time.sleep(sleep_time_s)
|
||||
|
||||
print("Done!")
|
||||
@@ -0,0 +1,37 @@
|
||||
import time
|
||||
|
||||
from rips.instance import *
|
||||
from rips.generated.GridGeometryExtraction_pb2_grpc import *
|
||||
from rips.generated.GridGeometryExtraction_pb2 import *
|
||||
|
||||
rips_instance = Instance.find()
|
||||
grid_geometry_extraction_stub = GridGeometryExtractionStub(rips_instance.channel)
|
||||
|
||||
# grid_file_name = "MOCKED_TEST_GRID"
|
||||
grid_file_name = (
|
||||
"D:\\Git\\resinsight-tutorials\\model-data\\norne\\NORNE_ATW2013_RFTPLT_V2.EGRID"
|
||||
)
|
||||
|
||||
# ijk_index_filter = GridGeometryExtraction__pb2.IJKIndexFilter(
|
||||
# iMin=0, iMax=1, jMin=1, jMax=3, kMin=3, kMax=3
|
||||
# )
|
||||
ijk_index_filter = None
|
||||
|
||||
num_calls = 30
|
||||
sleep_time_s = 0.5
|
||||
|
||||
for i in range(num_calls):
|
||||
print(f"Call {i+1}/{num_calls}")
|
||||
get_grid_surface_request = GridGeometryExtraction__pb2.GetGridSurfaceRequest(
|
||||
gridFilename=grid_file_name,
|
||||
ijkIndexFilter=ijk_index_filter,
|
||||
cellIndexFilter=None,
|
||||
propertyFilter=None,
|
||||
)
|
||||
get_grid_surface_response: GridGeometryExtraction__pb2.GetGridSurfaceResponse = (
|
||||
grid_geometry_extraction_stub.GetGridSurface(get_grid_surface_request)
|
||||
)
|
||||
|
||||
time.sleep(sleep_time_s)
|
||||
|
||||
print("Done!")
|
||||
@@ -56,7 +56,6 @@
|
||||
#include "qstring.h"
|
||||
|
||||
RiaGrpcGridGeometryExtractionService::RiaGrpcGridGeometryExtractionService()
|
||||
: m_faceVisibilityFilter( nullptr )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -92,7 +91,7 @@ grpc::Status RiaGrpcGridGeometryExtractionService::GetGridSurface( grpc::ServerC
|
||||
|
||||
// Initialize grid geometry generator
|
||||
const bool useOpenMP = false;
|
||||
auto gridGeometryGenerator = cvf::StructGridGeometryGenerator( m_eclipseView->mainGrid(), useOpenMP ); // cvf::ref?
|
||||
auto gridGeometryGenerator = cvf::StructGridGeometryGenerator( m_eclipseView->mainGrid(), useOpenMP );
|
||||
status = initializeGridGeometryGeneratorWithEclipseViewCellVisibility( gridGeometryGenerator );
|
||||
if ( status.error_code() != grpc::StatusCode::OK )
|
||||
{
|
||||
@@ -390,10 +389,12 @@ grpc::Status RiaGrpcGridGeometryExtractionService::initializeGridGeometryGenerat
|
||||
m_eclipseView->calculateCurrentTotalCellVisibility( cellVisibilities, firstTimeStep );
|
||||
|
||||
// Face visibility filter
|
||||
m_faceVisibilityFilter = RigGridCellFaceVisibilityFilter( mainGrid );
|
||||
const bool includeFaultFaces = true;
|
||||
m_faceVisibilityFilter = std::make_unique<RigGridCellFaceVisibilityFilter>(
|
||||
RigGridCellFaceVisibilityFilter( mainGrid, includeFaultFaces ) );
|
||||
|
||||
generator.setCellVisibility( cellVisibilities ); // Ownership transferred
|
||||
generator.addFaceVisibilityFilter( &m_faceVisibilityFilter );
|
||||
generator.addFaceVisibilityFilter( m_faceVisibilityFilter.get() );
|
||||
|
||||
return grpc::Status::OK;
|
||||
}
|
||||
@@ -408,6 +409,7 @@ grpc::Status RiaGrpcGridGeometryExtractionService::loadGridGeometryFromAbsoluteF
|
||||
|
||||
std::shared_ptr<RifReaderSettings> readerSettings;
|
||||
readerSettings = RifReaderSettings::createGridOnlyReaderSettings();
|
||||
readerSettings->importFaults = true;
|
||||
|
||||
// TODO: Set true or false?
|
||||
bool createPlot = true;
|
||||
|
||||
@@ -75,5 +75,5 @@ private:
|
||||
RimEclipseCase* m_eclipseCase = nullptr;
|
||||
RimEclipseView* m_eclipseView = nullptr;
|
||||
|
||||
RigGridCellFaceVisibilityFilter m_faceVisibilityFilter;
|
||||
std::unique_ptr<RigGridCellFaceVisibilityFilter> m_faceVisibilityFilter = nullptr;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user