From 018e911736a4417e4c847b620c196159a7c9a986 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 18 Jan 2024 08:58:05 +0100 Subject: [PATCH] Read date information directly from restart file --- .../FileInterface/RifReaderOpmCommon.cpp | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/ApplicationLibCode/FileInterface/RifReaderOpmCommon.cpp b/ApplicationLibCode/FileInterface/RifReaderOpmCommon.cpp index ba9847e0d2..d2902e6c72 100644 --- a/ApplicationLibCode/FileInterface/RifReaderOpmCommon.cpp +++ b/ApplicationLibCode/FileInterface/RifReaderOpmCommon.cpp @@ -441,22 +441,29 @@ std::vector RifReaderOpmCommon::readTimeSteps( { namespace VI = Opm::RestartIO::Helpers::VectorItems; - for ( auto seqNumber : restartFile->listOfReportStepNumbers() ) + for ( auto seqNum : restartFile->listOfReportStepNumbers() ) { - auto fileView = std::make_shared( restartFile, seqNumber ); + const std::string inteheadString = "INTEHEAD"; + const std::string doubheadString = "DOUBHEAD"; - auto intehead = fileView->intehead(); + if ( restartFile->hasArray( inteheadString, seqNum ) ) + { + auto intehead = restartFile->getRestartData( inteheadString, seqNum ); + auto year = intehead[VI::intehead::YEAR]; + auto month = intehead[VI::intehead::MONTH]; + auto day = intehead[VI::intehead::DAY]; - auto year = intehead[VI::intehead::YEAR]; - auto month = intehead[VI::intehead::MONTH]; - auto day = intehead[VI::intehead::DAY]; + double daySinceSimStart = 0.0; - auto doubhead = fileView->doubhead(); + if ( restartFile->hasArray( doubheadString, seqNum ) ) + { + auto doubhead = restartFile->getRestartData( doubheadString, seqNum ); + daySinceSimStart = doubhead[VI::doubhead::TsInit]; + } - auto daySinceSimStart = doubhead[VI::doubhead::TsInit]; - - reportTimeData.emplace_back( - TimeDataFile{ .sequenceNumber = seqNumber, .year = year, .month = month, .day = day, .simulationTimeFromStart = daySinceSimStart } ); + reportTimeData.emplace_back( + TimeDataFile{ .sequenceNumber = seqNum, .year = year, .month = month, .day = day, .simulationTimeFromStart = daySinceSimStart } ); + } } } catch ( std::exception& e )