RFT plot: Fix stepping on well

* Rft: Store segment and connection count per well
* Update the segment branch index combo box when well changes
* Bump version number
This commit is contained in:
Magne Sjaastad authored and GitHub committed 2022-12-05 18:36:21 +01:00
1 parent d3a5355141
commit 1eb44e519e
4 files changed
+28 -16

No files matched your search

@@ -39,9 +39,7 @@
///
//--------------------------------------------------------------------------------------------------
RifReaderOpmRft::RifReaderOpmRft( const QString& fileName, const QString& dataDeckFileName )
: m_segmentResultItemCount( 0 )
, m_connectionResultItemCount( 0 )
, m_fileName( fileName )
: m_fileName( fileName )
, m_dataDeckFileName( dataDeckFileName )
, m_detectedErrorWhenOpeningRftFile( false )
{
@@ -51,9 +49,7 @@ RifReaderOpmRft::RifReaderOpmRft( const QString& fileName, const QString& dataDe
///
//--------------------------------------------------------------------------------------------------
RifReaderOpmRft::RifReaderOpmRft( const QString& fileName )
: m_segmentResultItemCount( 0 )
, m_connectionResultItemCount( 0 )
, m_fileName( fileName )
: m_fileName( fileName )
, m_detectedErrorWhenOpeningRftFile( false )
{
}
@@ -128,7 +124,7 @@ void RifReaderOpmRft::values( const RifEclipseRftAddress& rftAddress, std::vecto
auto key = std::make_pair( wellName, RftDate{ y, m, d } );
auto segment = m_rftWellDateSegments[key];
if ( data.size() == m_connectionResultItemCount )
if ( m_connectionResultItemCount.count( wellName ) && data.size() == m_connectionResultItemCount[wellName] )
{
// Connection results with size equal to length of result CONSEGNO. CONSEGNO defines the segment
// numbers the connection is connected to.
@@ -534,21 +530,30 @@ void RifReaderOpmRft::buildSegmentData()
for ( const auto& [name, arrayType, size] : results )
{
if ( ( name.find( "SEG" ) == 0 ) && m_segmentResultItemCount == 0 )
if ( ( name.find( "SEG" ) == 0 ) && m_segmentResultItemCount.count( wellName ) == 0 )
{
m_segmentResultItemCount = size;
m_segmentResultItemCount[wellName] = size;
}
if ( name.find( "CON" ) == 0 && m_connectionResultItemCount == 0 )
if ( name.find( "CON" ) == 0 && m_connectionResultItemCount.count( wellName ) == 0 )
{
m_connectionResultItemCount = size;
m_connectionResultItemCount[wellName] = size;
}
}
for ( const auto& rftResultMetaData : results )
{
const auto& [name, arrayType, size] = rftResultMetaData;
if ( size == static_cast<int64_t>( m_segmentResultItemCount ) ||
size == static_cast<int64_t>( m_connectionResultItemCount ) )
bool isResultItemCountValid = false;
if ( m_segmentResultItemCount.count( wellName ) &&
size == static_cast<int64_t>( m_segmentResultItemCount[wellName] ) )
isResultItemCountValid = true;
if ( m_connectionResultItemCount.count( wellName ) &&
size == static_cast<int64_t>( m_connectionResultItemCount[wellName] ) )
isResultItemCountValid = true;
if ( isResultItemCountValid )
{
segment.addResultNameAndSize( rftResultMetaData );
}