diff --git a/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.cpp b/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.cpp index ada9f111e6..eff0ae4805 100644 --- a/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.cpp +++ b/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.cpp @@ -47,6 +47,19 @@ namespace RicWellPathExportMswGeometryPath using CompletionType = RicWellPathExportMswTableData::CompletionType; +//-------------------------------------------------------------------------------------------------- +/// Number of well path laterals in the tie-in tree, including the given well path itself. +//-------------------------------------------------------------------------------------------------- +static int lateralCount( const RimWellPath* wellPath ) +{ + int count = 1; + for ( const auto* childWellPath : RicWellPathExportMswTableData::wellPathsWithTieIn( wellPath ) ) + { + count += lateralCount( childWellPath ); + } + return count; +} + //-------------------------------------------------------------------------------------------------- /// Recursively build all WELSEGS/COMPSEGS/valve segments for one lateral (child well path) /// and any of its own child laterals. @@ -58,7 +71,8 @@ std::vector buildLateralBranches( RimEclipseCase* CompletionType completionType, const std::optional& exportDate, int& segmentNumber, - int& branchNumber, + int& lateralBranchNumber, + int& completionBranchNumber, RiaDefines::EclipseUnitSystem unitSystem, RicMswBranchBuilder::FishbonesExportContext& fishbonesContext ) { @@ -71,7 +85,7 @@ std::vector buildLateralBranches( RimEclipseCase* const double tieInTVD = -wellPath->wellPathGeometry()->interpolatedPointAlongWellPath( tieInMD ).z(); const std::string wellNameForExport = wellPath->completionSettings()->wellNameForExport().toStdString(); - const int lateralBranchNum = ++branchNumber; + const int lateralBranchNum = ++lateralBranchNumber; int childOutletSeg = outletSegNum; // Optional ICV valve at the tie-in point — stored on the branch, not as a separate branch @@ -217,7 +231,7 @@ std::vector buildLateralBranches( RimEclipseCase* infoType, wellNameForExport, segmentNumber, - branchNumber, + completionBranchNumber, mswParameters->maxSegmentLength(), {}, exportDate, @@ -226,8 +240,13 @@ std::vector buildLateralBranches( RimEclipseCase* if ( ( completionType & CompletionType::FRACTURES ) == CompletionType::FRACTURES ) { - auto fracBranches = - RicMswBranchBuilder::buildFractureBranches( eclipseCase, wellPath, mainGrid, childCellSegMap, infoType, segmentNumber, branchNumber ); + auto fracBranches = RicMswBranchBuilder::buildFractureBranches( eclipseCase, + wellPath, + mainGrid, + childCellSegMap, + infoType, + segmentNumber, + completionBranchNumber ); result.insert( result.end(), std::make_move_iterator( fracBranches.begin() ), std::make_move_iterator( fracBranches.end() ) ); } @@ -241,7 +260,7 @@ std::vector buildLateralBranches( RimEclipseCase* infoType, wellNameForExport, segmentNumber, - branchNumber, + completionBranchNumber, mswParameters->maxSegmentLength(), {}, unitSystem, @@ -261,7 +280,8 @@ std::vector buildLateralBranches( RimEclipseCase* completionType, exportDate, segmentNumber, - branchNumber, + lateralBranchNumber, + completionBranchNumber, unitSystem, fishbonesContext ); result.insert( result.end(), std::make_move_iterator( grandchildBranches.begin() ), std::make_move_iterator( grandchildBranches.end() ) ); @@ -328,8 +348,15 @@ RigMswWellExportData buildMswWellExportData( RimEclipseCase* } } - int segmentNumber = 2; // Segment 1 is the implicit well heel. - int branchNumber = 1; // Incremented for each new branch. + int segmentNumber = 2; // Segment 1 is the implicit well heel. + + // The well path laterals are given their branch number first, so that the main bore and the + // laterals occupy the lowest branch numbers. The completion branches (valves, fractures and + // fishbones) are numbered after all laterals, but are still listed immediately after the + // lateral they are connected to. + int lateralBranchNumber = 1; // Main bore is branch 1, incremented for each lateral. + int completionBranchNumber = lateralCount( wellPath ); // Incremented for each completion branch. + std::vector cellSegMap; // Collected across the main bore and all tie-in laterals, applied once the branches are assembled. @@ -346,7 +373,7 @@ RigMswWellExportData buildMswWellExportData( RimEclipseCase* infoType, initialMD, initialTVD, - branchNumber, + lateralBranchNumber, segmentNumber, 1, // outlet = heel (segment 1) maxSegmentLength, @@ -390,7 +417,7 @@ RigMswWellExportData buildMswWellExportData( RimEclipseCase* infoType, wellNameForExport, segmentNumber, - branchNumber, + completionBranchNumber, maxSegmentLength, customSegmentIntervals, exportDate, @@ -401,7 +428,7 @@ RigMswWellExportData buildMswWellExportData( RimEclipseCase* if ( includeFractures ) { fractureBranches = - RicMswBranchBuilder::buildFractureBranches( eclipseCase, wellPath, mainGrid, cellSegMap, infoType, segmentNumber, branchNumber ); + RicMswBranchBuilder::buildFractureBranches( eclipseCase, wellPath, mainGrid, cellSegMap, infoType, segmentNumber, completionBranchNumber ); } const bool includeFishbones = ( completionType & CompletionType::FISHBONES ) == CompletionType::FISHBONES; @@ -416,7 +443,7 @@ RigMswWellExportData buildMswWellExportData( RimEclipseCase* infoType, wellNameForExport, segmentNumber, - branchNumber, + completionBranchNumber, maxSegmentLength, customSegmentIntervals, unitSystem, @@ -436,7 +463,8 @@ RigMswWellExportData buildMswWellExportData( RimEclipseCase* completionType, exportDate, segmentNumber, - branchNumber, + lateralBranchNumber, + completionBranchNumber, unitSystem, fishbonesContext ); lateralBranches.insert( lateralBranches.end(), diff --git a/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.h b/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.h index e8fccc5efc..f4b7910853 100644 --- a/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.h +++ b/ApplicationLibCode/Commands/CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.h @@ -40,6 +40,12 @@ class RigMainGrid; namespace RicWellPathExportMswGeometryPath { +//-------------------------------------------------------------------------------------------------- +/// Branch numbers are handed out from two separate counters. The well path laterals are numbered +/// first (lateralBranchNumber), so that the main bore and the laterals occupy the lowest branch +/// numbers. The completion branches follow (completionBranchNumber), but are listed immediately +/// after the lateral they are connected to. +//-------------------------------------------------------------------------------------------------- std::vector buildLateralBranches( RimEclipseCase* eclipseCase, const RimWellPath* wellPath, const RigMainGrid* mainGrid, @@ -47,7 +53,8 @@ std::vector buildLateralBranches( RimEclipseCase* RicWellPathExportMswTableData::CompletionType completionType, const std::optional& exportDate, int& segmentNumber, - int& branchNumber, + int& lateralBranchNumber, + int& completionBranchNumber, RiaDefines::EclipseUnitSystem unitSystem, RicMswBranchBuilder::FishbonesExportContext& fishbonesContext ); diff --git a/ApplicationLibCode/UnitTests/RicWellPathExportMswGeometryPath-Test.cpp b/ApplicationLibCode/UnitTests/RicWellPathExportMswGeometryPath-Test.cpp index 3e25b91dec..f1e9d54a55 100644 --- a/ApplicationLibCode/UnitTests/RicWellPathExportMswGeometryPath-Test.cpp +++ b/ApplicationLibCode/UnitTests/RicWellPathExportMswGeometryPath-Test.cpp @@ -19,12 +19,24 @@ #include "gtest/gtest.h" #include "CompletionExportCommands/MswExport/RicWellPathExportMswGeometryPath.h" +#include "CompletionExportCommands/RicWellPathExportMswTableData.h" #include "CompletionsMsw/RigMswSegment.h" #include "CompletionsMsw/RigMswTableData.h" #include "CompletionsMsw/RigMswTableRows.h" +#include "RiaApplication.h" #include "RiaDefines.h" +#include "RiaTestDataDirectory.h" + +#include "RimEclipseCase.h" +#include "RimProject.h" +#include "RimWellPath.h" + +#include +#include + +#include namespace { @@ -417,3 +429,112 @@ TEST( RicWellPathExportMswGeometryPath, HeaderFieldsPropagated ) EXPECT_EQ( "ABS", result.welsegsHeader().infoType ); EXPECT_EQ( RiaDefines::EclipseUnitSystem::UNITS_FIELD, result.unitSystem() ); } + +//================================================================================================== +// Branch numbering, using the multiple_laterals test project. +// +// Well-A is a main bore with an ICD-valved perforation interval and two well path laterals tied in +// (Y2 and Y3). The main bore and the laterals must be given the lowest branch numbers, and the +// completion branches must follow. +//================================================================================================== + +namespace +{ + +//-------------------------------------------------------------------------------------------------- +/// The single Eclipse case of the multiple_laterals project, and one of its well paths. +//-------------------------------------------------------------------------------------------------- +struct MswExportInput +{ + RimEclipseCase* eclipseCase = nullptr; + RimWellPath* wellPath = nullptr; +}; + +//-------------------------------------------------------------------------------------------------- +/// Load the multiple_laterals project and look up the well path with the given name. +/// Members are left as nullptr if the project, the case or the well path could not be found. +//-------------------------------------------------------------------------------------------------- +MswExportInput loadMultipleLateralsProject( const QString& wellPathName ) +{ + MswExportInput input; + + QDir projectFolder( TEST_MODEL_DIR ); + if ( !projectFolder.cd( "msw-export/project-files" ) ) return input; + + const QString projectFileName = projectFolder.absoluteFilePath( "multiple_laterals.rsp" ); + if ( !QFile::exists( projectFileName ) ) return input; + + if ( !RiaApplication::instance()->loadProject( projectFileName ) ) return input; + + RimProject* project = RimProject::current(); + if ( !project ) return input; + + const auto eclipseCases = project->eclipseCases(); + if ( !eclipseCases.empty() ) input.eclipseCase = eclipseCases.front(); + + for ( auto* wellPath : project->allWellPaths() ) + { + if ( wellPath && wellPath->name() == wellPathName ) input.wellPath = wellPath; + } + + return input; +} + +} // anonymous namespace + +//-------------------------------------------------------------------------------------------------- +/// The main bore and the well path laterals occupy branch 1..N, and every completion branch is +/// numbered above them. +//-------------------------------------------------------------------------------------------------- +TEST( RicWellPathExportMswGeometryPath, MultipleLaterals_LateralsNumberedBeforeCompletionBranches ) +{ + auto input = loadMultipleLateralsProject( "Well-A Y1" ); + ASSERT_TRUE( input.eclipseCase != nullptr ); + ASSERT_TRUE( input.wellPath != nullptr ); + + auto tableData = RicWellPathExportMswTableData::extractSingleWellMswData( input.eclipseCase, input.wellPath ); + ASSERT_TRUE( tableData.has_value() ); + + // Branch 1 is the main bore, branches 2 and 3 are the laterals Y2 and Y3. The three ICD + // completion branches follow as 4, 5 and 6. + std::map descriptionOfFirstSegmentInBranch; + for ( const auto& branch : tableData->mswBranches() ) + { + if ( !branch.segments.empty() ) descriptionOfFirstSegmentInBranch[branch.branchNumber] = branch.segments.front().description; + } + + ASSERT_EQ( 6u, descriptionOfFirstSegmentInBranch.size() ); + EXPECT_EQ( "Segments on main bore", descriptionOfFirstSegmentInBranch[1] ); + EXPECT_EQ( "Segments on lateral Well-A Y2", descriptionOfFirstSegmentInBranch[2] ); + EXPECT_EQ( "Segments on lateral Well-A Y3", descriptionOfFirstSegmentInBranch[3] ); + for ( int branchNumber : { 4, 5, 6 } ) + { + EXPECT_EQ( "1 ICD: 3100 - 3800 #1", descriptionOfFirstSegmentInBranch[branchNumber] ); + } +} + +//-------------------------------------------------------------------------------------------------- +/// The completion branches of a lateral are listed immediately after that lateral, even though +/// their branch numbers are higher than the branch numbers of the laterals listed later. +//-------------------------------------------------------------------------------------------------- +TEST( RicWellPathExportMswGeometryPath, MultipleLaterals_CompletionBranchesListedAfterTheirLateral ) +{ + auto input = loadMultipleLateralsProject( "Well-A Y1" ); + ASSERT_TRUE( input.eclipseCase != nullptr ); + ASSERT_TRUE( input.wellPath != nullptr ); + + auto tableData = RicWellPathExportMswTableData::extractSingleWellMswData( input.eclipseCase, input.wellPath ); + ASSERT_TRUE( tableData.has_value() ); + + // The branch number of each WELSEGS row, in the order the rows are written to the export file. + std::vector branchNumbersInListedOrder; + for ( const auto& row : tableData->welsegsData() ) + { + if ( branchNumbersInListedOrder.empty() || branchNumbersInListedOrder.back() != row.branch ) + branchNumbersInListedOrder.push_back( row.branch ); + } + + // Main bore, its three ICD branches, then lateral Y2 and lateral Y3. + const std::vector expected = { 1, 4, 5, 6, 2, 3 }; + EXPECT_EQ( expected, branchNumbersInListedOrder ); +} diff --git a/TestModels/msw-export/project-files/multiple_laterals.rsp b/TestModels/msw-export/project-files/multiple_laterals.rsp index 83e58e8ce0..b44ede09a5 100644 --- a/TestModels/msw-export/project-files/multiple_laterals.rsp +++ b/TestModels/msw-export/project-files/multiple_laterals.rsp @@ -1,18 +1,16 @@ C:/gitroot/ResInsight/TestModels/msw-export/project-files/multiple_laterals.rsp - 2025.12.0 + 2026.02.1 $PathId_001$ C:/gitroot/ResInsight/TestModels/msw-export/opm-simulation-reference/BASE_MODEL_1.EGRID; - $PathId_002$ $PathId_008$/BASE_MODEL_1.EGRID; - $PathId_002_Name$ BASE_MODEL_1 - Opm Flow Simulation; - $PathId_003$ C:/gitroot/ResInsight/TestModels/msw-export/opm-simulation-reference/BASE_MODEL_1.SMSPEC; - $PathId_004$ C:/gitroot/ResInsight/TestModels/msw-export/opm-simulation-reference/BASE_MODEL_1.RFT; - $PathId_005$ $PathId_008$/BASE_MODEL_1.SMSPEC; - $PathId_006$ $PathId_008$/BASE_MODEL_1.RFT; - $PathId_007$ C:/gitroot/ResInsight/TestModels/msw-export/BASE_MODEL_1.DATA; - $PathId_008$ C:/gitroot/ResInsight/TestModels/msw-export/output; - $PathId_009$ C:/Users/MagneSjaastad; + $PathId_002$ C:/gitroot/ResInsight/TestModels/msw-export/opm-simulation-reference/BASE_MODEL_1.SMSPEC; + $PathId_003$ C:/gitroot/ResInsight/TestModels/msw-export/opm-simulation-reference/BASE_MODEL_1.RFT; + $PathId_004$ $PathId_007$/BASE_MODEL_1.SMSPEC; + $PathId_005$ $PathId_007$/BASE_MODEL_1.RFT; + $PathId_006$ C:/gitroot/ResInsight/TestModels/msw-export/BASE_MODEL_1.DATA; + $PathId_007$ C:/gitroot/ResInsight/TestModels/msw-export/output; + $PathId_008$ C:/Users/MagneSjaastad; @@ -68,8 +66,6 @@ 1 0 0 0 0 0 1 0 0 -1 0 1000 0 0 0 1 0 0 0 - 1 0 0 0 0 0 1 0 0 -1 0 1000 0 0 0 1 - 0 0 0 5 0.689997732639313 0.770000755786896 0.869993150234222 10 @@ -142,8 +138,6 @@ 0.887413859821513 -0.458102404953474 -0.0513695237716532 -1786.96519872632 0.450269092969932 0.837532339905 0.309511427138467 -2542.12101191402 -0.0987642916884356 -0.297794839090772 0.949507160846185 -6132.15182585478 0 0 0 1 1212.32299477896 2244.11325739229 461.586580071941 - 0.887413859821513 -0.458102404953474 -0.0513695237716532 -1786.96519872632 0.450269092969932 0.837532339905 0.309511427138467 -2542.12101191402 -0.0987642916884356 -0.297794839090772 0.949507160846185 -6132.15182585478 0 0 0 1 - 1212.32299477896 2244.11325739229 461.586580071941 True 5 0.689997732639313 0.770000755786896 0.869993150234222 @@ -168,13 +162,13 @@ True .. .. IntersectionResultDefColl 0 IntersectionResultDefinitions 0 Polyline + True CS_POLYLINE CS_VERTICAL 2178.14013712842 2279.31916920047 -2606.253254059 3346.04282521766 3705.68716983182 -2647.25015118923 4474.7336269588 5197.91817541397 -2686.87083859125 - 2178.14013712842 2279.31916920047 2606.253254059 3346.04282521766 3705.68716983182 2647.25015118923 4474.7336269588 5197.91817541397 2686.87083859125 0 90 @@ -232,6 +226,7 @@ -1 False + True @@ -307,6 +302,7 @@ -1 False + True @@ -457,6 +453,7 @@ -1 False + True @@ -548,6 +545,7 @@ -1 False + True @@ -638,6 +636,7 @@ -1 False + True @@ -969,976 +968,7 @@ - UNITS_METRIC - - - All Wells - - - - False 3 - - - $PathId_002_Name$ - CUSTOM_NAME - 1 - $PathId_002$ - - - - TS_ALL - 0 - 12 - 1 - dd.MMM yyyy - 0 1 2 3 4 5 6 7 8 9 10 11 12 - False - - - - - - - - - 0 - 0 - 0 - -1 - -1 - False - - - False - 3 - - - 3D View: Well-1 - False - True - True - False - - - 1 0 0 0 0 0 1 0 0 -1 0 1000 0 0 0 1 - 0 0 0 - 1 0 0 0 0 0 1 0 0 -1 0 1000 0 0 0 1 - 0 0 0 - 5 - 0.689997732639313 0.770000755786896 0.869993150234222 - 10 - 12 - FULL_MESH - SURFACE - False - True - - Medium - RIGHT - 5 - False - .. .. ViewCollection 0 Views 0 CrossSections 0 CrossSections 0 - True - False - - - - - - - - - - - - - - - - - - False - False - - - - - - - - - - - - - - - - - 0 - 0 - 0 - 1174 - 480 - True - - - True - 1 - - - 3D View - False - True - True - False - - - -0.680664039507489 0.719291506084811 0.138982713297706 -898.943881453335 -0.17691384210483 -0.345485725382072 0.92159704102657 -379.255128571302 0.710913467162534 0.602709998947643 0.36241233336557 -7677.41559943489 0 0 0 1 - 5.16684795681658 2322.61551929043 598.023098712781 - -0.680664039507489 0.719291506084811 0.138982713297706 -898.943881453335 -0.17691384210483 -0.345485725382072 0.92159704102657 -379.255128571302 0.710913467162534 0.602709998947643 0.36241233336557 -7677.41559943489 0 0 0 1 - 5.16684795681658 2322.61551929043 598.023098712781 - True - 5 - 0.689997732639313 0.770000755786896 0.869993150234222 - 10 - 12 - FULL_MESH - SURFACE - True - False - True - - Medium - RIGHT - 5 - False - - - - - True - False - True - .. .. IntersectionResultDefColl 0 IntersectionResultDefinitions 0 - Well-1 - CS_WELL_PATH - CS_VERTICAL - .. .. .. .. .. .. WellPathCollection 0 WellPaths 0 - - - - - 0 - 90 - - - -1 - 200 - 1000 - 1000 - - - True - - - - - -300000 - 300000 - INTERSECT_SHOW_BELOW - 0 - 0 - False - INTERSECT_SHOW_BELOW - False - - False - - - - - True - 0 - 0 - False - INTERSECT_SHOW_BELOW - False - - True - - - - - False - - - True - .. .. .. .. - 0 - - - True - DYNAMIC_NATIVE - MATRIX_MODEL - None - .. .. .. .. .. FlowDiagSolutions 0 - -1 - - False - - - - FLOW_TR_INJ_AND_PROD - PHASE_ALL - True - False - False - - - - - True - NODAL - - - -1 - 0 - 0 - False - 0 - - - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - - False - - - - - True - 2 - USER_DEFINED_MAX_MIN - - 1 - 0 - 1 - 0 - 1 - 0 - - - - - - - - - False - - - True - .. .. .. .. - 0 - - - True - DYNAMIC_NATIVE - MATRIX_MODEL - None - .. .. .. .. .. FlowDiagSolutions 0 - -1 - - False - - - - FLOW_TR_INJ_AND_PROD - PHASE_ALL - True - False - False - - - - - True - NODAL - - - -1 - 0 - 0 - False - 0 - - - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - - False - - - - - True - 2 - USER_DEFINED_MAX_MIN - - 1 - 0 - 1 - 0 - 1 - 0 - - - - - - - - - True - - - True - Main Grid - 0 - - - - - True - - - - - - - - True - True - True - True - True - True - True - CURRENT_TIMESTEP - VISIBLE_CELLS - - - - - Well Measurements - False - - True - - - - - - Seismic Sections - True - Seismic Sections - - 5 - - - - - - Polygons - True - - - - - - - True - AND - - - Range Filter 1 - True - .. .. .. .. - INCLUDE - 0 - True - 1 - 6 - 1 - 8 - 7 - 1 - - - - - - .. .. - KEEP_CURRENT_SETTINGS - - - True - DYNAMIC_NATIVE - MATRIX_MODEL - SOIL - .. .. .. FlowDiagSolutions 0 - -1 - - False - - - - FLOW_TR_INJ_AND_PROD - PHASE_ALL - True - False - False - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 0.9073 - -2.981e-08 - INTERPOLATE - None - False - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 0.9073 - -2.981e-08 - INTERPOLATE - SOIL - False - - - - - True - 2 - USER_DEFINED_MAX_MIN - - 1 - 0 - 1 - 0 - 1 - 0 - - - ResultVarLegendDefinitionList 1 - - - - - False - MULTI_AXIS_STATIC_PROPERTY - MULT - True - True - True - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 3 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - - False - - - - False - - - True - DYNAMIC_NATIVE - MATRIX_MODEL - None - - -1 - - False - - - - FLOW_TR_INJ_AND_PROD - PHASE_ALL - True - False - False - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - None - False - - - - - True - 2 - USER_DEFINED_MAX_MIN - - 1 - 0 - 1 - 0 - 1 - 0 - - - ResultVarLegendDefinitionList 0 - - - - - - - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - - False - - - True - True - True - False - AGGREGATED - VECTOR_ANCHOR - True - True - True - True - 0 - RESULT_COLORS - 0 0 0 - 1 - - - - - False - - - True - DYNAMIC_NATIVE - MATRIX_MODEL - None - .. .. .. .. FlowDiagSolutions 0 - -1 - - False - - - - FLOW_TR_INJ_AND_PROD - PHASE_ALL - True - False - False - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - None - False - - - - - True - 2 - USER_DEFINED_MAX_MIN - - 1 - 0 - 1 - 0 - 1 - 0 - - - ResultVarLegendDefinitionList 0 - - - - - - - True - CONDUCTIVITY [md-m] - 0.647058844566345 0.164705887436867 0.164705887436867 - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 11 - LinearDiscrete - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - CONDUCTIVITY [md-m] - False - - - True - COLOR_INTERPOLATION - - - - - False - True - 2 - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - LinearContinuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - - False - - - - - - - False - False - 1 - 0.1 - 0.1 - 0.2 - 0.919996976852417 0.919996976852417 0.919996976852417 - True - 1 1 0 - WELLPIPE_COLOR_INDIDUALLY - 12 - WELLPIPE_INTERPOLATED - K_DIRECTION - 0.5 - True - WELLHEAD_POS_ACTIVE_CELLS_BB - - - INJ-1 - False - True - True - True - False - False - 1 - 1 - 0.501960813999176 0.243137255311012 0.458823531866074 - 0.501960813999176 0.501960813999176 0 - True - False - - - INJ-5 - False - True - True - True - False - False - 1 - 1 - 0.831372559070587 0.109803922474384 0.517647087574005 - 0.501960813999176 0.501960813999176 0 - True - False - - - INJ-6 - False - True - True - True - False - False - 1 - 1 - 0.964705884456635 0.462745100259781 0.556862771511078 - 0.501960813999176 0.501960813999176 0 - True - False - - - PROD-2 - False - True - True - True - False - False - 1 - 1 - 0.756862759590149 0 0.125490203499794 - 0.501960813999176 0.501960813999176 0 - True - False - - - PROD-3 - False - True - True - True - False - False - 1 - 1 - 0.498039215803146 0.0941176488995552 0.0509803928434849 - 0.501960813999176 0.501960813999176 0 - True - False - - - PROD-4 - False - True - True - True - False - False - 1 - 1 - 0.945098042488098 0.227450981736183 0.0745098069310188 - 0.501960813999176 0.501960813999176 0 - True - False - - - Well-1 - True - True - True - True - False - False - 1 - 1 - 0.752941191196442 0.752941191196442 0.752941191196442 - 0.501960813999176 0.501960813999176 0 - True - False - - - True - .. .. .. .. .. SummaryCaseCollection 0 SummaryCases 1 - WOPT - PROPERTY_TYPE_PREDEFINED - PRODUCTION_RATES - True - False - 1 - 0.501960813999176 0.501960813999176 0 - False - - - - - True - True - True - True - 1 - False - FAULT_BACK_FACE_CULLING - False - 0.919996976852417 0.919996976852417 0.919996976852417 - True - True - - - Undefined Grid Faults - True - 0.396078437566757 0.517647087574005 0.376470595598221 - - - Undefined Grid Faults With Inactive - False - 1 0.513725519180298 0.549019634723663 - - - - - - - Fault Reactivation Models - True - Fault Reactivation Models - - - - - - True - - - True - - - - 0 - False - - - True - - - - - - True - - - - Medium - - - - - - - True - 8 - 4 - FIXED - $ROOT$ ColorLegendCollection 0 StandardColorLegends 0 - Log10Continuous - AUTOMATIC_ALLTIMESTEPS - 1 - 0 - INTERPOLATE - - False - - - Streamlines - 0.01 - 100 - 20 - 5000 - True - True - COMBINED - False - ANIMATION - PHASE_COLORS - 10 - 0 - 100 - 100 - - - - - True - - - - False - False - - - True - False - False - - - - - - - - - - UNITS_METRIC + All Wells @@ -1950,6 +980,7 @@ + @@ -1965,8 +996,6 @@ Well-1 - 0 - 0 UNITS_METRIC Well-1 0 @@ -2012,6 +1041,8 @@ False False + False + 2026_08_08-17:10:24 @@ -2058,6 +1089,13 @@ + + + MSW Segments + True + + + @@ -2090,10 +1128,13 @@ ABS False 200 + + + + + - 0.152 - 1e-05 @@ -2139,6 +1180,8 @@ False False + False + 2026_08_08-17:10:24 @@ -2157,8 +1200,6 @@ True -29.9498740653398 799.654971524146 41.5302941929508 - -29.9498740653398 799.654971524146 41.5302941929508 - 2929.59590165926 3 3 False @@ -2173,8 +1214,6 @@ True 1236.9904202153 1260.26083230065 91.6253907017731 - 1236.9904202153 1260.26083230065 91.6253907017731 - 4278.72842337795 3 3 False @@ -2189,8 +1228,6 @@ False 1929.51139254053 2455.31736287457 120.824833681511 - 1929.51139254053 2455.31736287457 120.824833681511 - 4276.79051372505 3 3 False @@ -2219,8 +1256,6 @@ Well-A Y1 - 0 - 0 UNITS_METRIC Well-1 0 @@ -2266,6 +1301,8 @@ False False + False + 2026_08_08-17:10:24 @@ -2312,6 +1349,13 @@ + + + MSW Segments + True + + + @@ -2344,10 +1388,13 @@ ABS False 200 + + + + + - 0.152 - 1e-05 @@ -2393,6 +1440,8 @@ False False + False + 2026_08_08-17:10:24 @@ -2411,8 +1460,6 @@ True -66.680747767422 1771.67924436726 41.5305944053571 - -66.680747767422 1771.67924436726 41.5305944053571 - 2929.59621168536 3 3 False @@ -2427,8 +1474,6 @@ True 1200.25954651322 2232.28510514377 91.6256909141794 - 1200.25954651322 2232.28510514377 91.6256909141794 - 4278.72873331875 3 3 False @@ -2443,8 +1488,6 @@ False 1929.51139254053 2455.31736287457 120.824833681511 - 1929.51139254053 2455.31736287457 120.824833681511 - 4276.79364211089 3 3 False @@ -2473,8 +1516,6 @@ Well-A Y2 - 0 - 0 UNITS_METRIC 0 @@ -2526,9 +1567,9 @@ True AUTOMATIC - 0 + inf AUTOMATIC - 0 + -inf 0.216 0 @@ -2547,6 +1588,13 @@ + + + MSW Segments + True + + + @@ -2579,10 +1627,13 @@ ABS False 200 + + + + + - 0.152 - 1e-05 @@ -2628,6 +1679,8 @@ False False + False + 2026_08_08-17:10:24 @@ -2646,8 +1699,6 @@ True 854.875545746363 2106.71810274452 75.3269616962002 - 854.875545746363 2106.71810274452 75.3269616962002 - 3910.86540565273 3 3 True @@ -2655,41 +1706,37 @@ True 87.6687558785366 0 - 13.9075217513136 + 13.9075217513137 0 0 True 1252.15936901406 1559.79704185415 66.2473750356635 - 1252.15936901406 1559.79704185415 66.2473750356635 - 4658.61568867443 3 3 False 111.560681488621 False - 89.4717148741383 - 6.41851652618612 + 89.4717148741382 + 6.41851652618613 0 111.560681488621 - 89.4717148741383 + 89.4717148741382 True 1982.87108380485 2525.86375438885 115.383899965237 - 1982.87108380485 2525.86375438885 115.383899965237 - 6211.40536462013 3 3 False - -7.51487342818931 + -7.5148734281899 False - 88.2772404338134 + 88.2772404338135 0 0 - -7.51487342818931 - 88.2772404338134 + -7.5148734281899 + 88.2772404338135 False @@ -2708,8 +1755,6 @@ Well-A Y3 - 0 - 0 UNITS_METRIC 0 @@ -2761,9 +1806,9 @@ True AUTOMATIC - 0 + inf AUTOMATIC - 0 + -inf 0.216 0 @@ -2782,6 +1827,13 @@ + + + MSW Segments + True + + + @@ -2814,10 +1866,13 @@ ABS False 200 + + + + + - 0.152 - 1e-05 @@ -2863,6 +1918,8 @@ False False + False + 2026_08_08-17:10:24 @@ -2881,8 +1938,6 @@ True 1558.65413397248 1527.95413689344 72.2661701679885 - 1558.65413397248 1527.95413689344 72.2661701679885 - 4970.71455778928 3 3 True @@ -2890,22 +1945,20 @@ True 88.3750459666982 0 - 14.9166364261176 + 14.9166364261178 0 0 True 1717.82369829835 865.792437234034 51.9170327046186 - 1717.82369829835 865.792437234034 51.9170327046186 - 5721.47475675245 3 3 False 169.97838683083 False 91.9915215026354 - 1.09168552825495 + 1.09168552825498 0 169.97838683083 91.9915215026354 @@ -2913,8 +1966,6 @@ True 1802.74830325687 -57.1179400321034 13.7042092474994 - 1802.74830325687 -57.1179400321034 13.7042092474994 - 6649.12914179237 3 3 False @@ -2948,6 +1999,15 @@ + + + + + + USE_PREFERENCES + ?*Y* + + True @@ -3038,6 +2098,18 @@ + + + 1 + + + + + + + True + + ICD: Valve Template #2 @@ -3066,6 +2138,18 @@ + + + 1 + + + + + + + True + + ICV: Valve Template #3 @@ -3094,6 +2178,18 @@ + + + 1 + + + + + + + True + + UNITS_METRIC @@ -3114,13 +2210,13 @@ FULL_CASE_NAME True False - $PathId_003$ + $PathId_002$ 1 False - $PathId_004$ + $PathId_003$ @@ -3130,13 +2226,13 @@ FULL_CASE_NAME True False - $PathId_005$ + $PathId_004$ 2 False - $PathId_006$ + $PathId_005$ @@ -3238,14 +2334,14 @@ BASE_MODEL_1 - Opm Flow Simulation - $PathId_007$ - $PathId_008$ + $PathId_006$ + $PathId_007$ $ROOT$ OilFields 0 WellPathCollection 0 WellPaths 0 - $ROOT$ OilFields 0 AnalysisModels 0 Reservoirs 1 + False - True + False -1 False False @@ -3761,28 +2857,6 @@ $ROOT$ OilFields 0 AnalysisModels 0 Reservoirs 0 ViewCollection 0 Views 0 - - - - - - - $ROOT$ OilFields 0 AnalysisModels 0 Reservoirs 1 ViewCollection 0 Views 0 - EclipseCase - - - - - - - $ROOT$ OilFields 0 AnalysisModels 0 Reservoirs 1 ViewCollection 0 Views 0 RangeFilters 0 CellFilters 0 - StartIndexK - - - - - $ROOT$ OilFields 0 AnalysisModels 0 Reservoirs 1 ViewCollection 0 Views 0 - @@ -3803,8 +2877,8 @@ - -1-110000010;-1-110000020;-1-110000040;-1-1100000;-1-11000;-1-110100040;-1-110100080;-1-1101000110;-1-1101000;-1-11010;-1-110;-1-130002000;-1-1300020;-1-13000;-1-13010003020;-1-1301000303020;-1-13010003030;-1-130100030;-1-1301000;-1-13010;-1-130||-1-110 - 3 0;1 0;0 0;3 0;2 0;0 0||1 0;0 0 + -1-110000010;-1-110000020;-1-110000040;-1-1100000;-1-11000;-1-110;-1-130002000;-1-1300020;-1-13000;-1-13010003020;-1-1301000303020;-1-13010003030;-1-130100030;-1-1301000;-1-13010;-1-130||-1-110 + 1 0;0 0;0 0;2 0||1 0;0 0 -1-100|-1-100||| |||| True @@ -3866,9 +2940,6 @@ 10 10 - -- Selected Wells - - @@ -3920,7 +2991,7 @@ RESULTS.GRDECL False - $PathId_009$ + $PathId_008$ @@ -3953,7 +3024,7 @@ - $PathId_009$ + $PathId_008$ 1000000 OPERNUM_OPERATER @@ -3962,14 +3033,26 @@ 2147483647 2147483647 2147483647 - -2147483647 - -2147483647 - -2147483647 + 1 + 1 + 1 False 1 1 1 + ACTION ACTIONX ACTIONW BOX UDQ + False + 0 + 0 + 0 + 1 + 0 + 0 + 0.1 + False + False + False False