From 67272708d57b212b56dc64aab9cee13a9d0c0183 Mon Sep 17 00:00:00 2001 From: Kristian Bendiksen Date: Fri, 28 Nov 2025 17:55:02 +0100 Subject: [PATCH] Simulation Input: handle missing SPECGRID. --- .../SimulationFile/RigSimulationInputTool.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ApplicationLibCode/ReservoirDataModel/SimulationFile/RigSimulationInputTool.cpp b/ApplicationLibCode/ReservoirDataModel/SimulationFile/RigSimulationInputTool.cpp index eee2c8fb96..58bfb547e0 100644 --- a/ApplicationLibCode/ReservoirDataModel/SimulationFile/RigSimulationInputTool.cpp +++ b/ApplicationLibCode/ReservoirDataModel/SimulationFile/RigSimulationInputTool.cpp @@ -159,6 +159,8 @@ std::expected RigSimulationInputTool::updateCornerPointGridInDeck RigResdataGridConverter::convertGridToCornerPointArrays( gridAdapter, coordArray, zcornArray, actnumArray ); + auto keywords = deckFile.keywords( false ); + // Sector dimensions (after refinement) std::vector dimens = { static_cast( gridAdapter.cellCountI() ), static_cast( gridAdapter.cellCountJ() ), @@ -171,6 +173,12 @@ std::expected RigSimulationInputTool::updateCornerPointGridInDeck // SPECGRID has the same dimensions plus NUMRES and COORD_TYPE // Format: NX NY NZ (use defaults for NUMRES (1) and COORD_TYPE: 'F'=Cartesian) + if ( std::find( keywords.begin(), keywords.end(), "SPECGRID" ) == keywords.end() ) + { + Opm::DeckKeyword newKw( Opm::ParserKeyword( "SPECGRID" ) ); + deckFile.addKeyword( "GRID", newKw ); + } + std::vector specgrid = { static_cast( gridAdapter.cellCountI() ), static_cast( gridAdapter.cellCountJ() ), static_cast( gridAdapter.cellCountK() ) }; @@ -191,7 +199,6 @@ std::expected RigSimulationInputTool::updateCornerPointGridInDeck std::vector coords = convertToDoubleVector( coordArray ); std::vector zcorn = convertToDoubleVector( zcornArray ); - auto keywords = deckFile.keywords( false ); if ( std::find( keywords.begin(), keywords.end(), "ACTNUM" ) == keywords.end() ) { Opm::DeckKeyword newKw( Opm::ParserKeyword( "ACTNUM" ) );