Simplify RifSummaryReaderInterface timeSteps.

This commit is contained in:
Kristian Bendiksen 2023-02-13 12:40:08 +01:00 committed by Magne Sjaastad
parent 5c5e460025
commit 69a668df50
32 changed files with 62 additions and 82 deletions

View File

@ -117,15 +117,13 @@ void RiaSummaryCurveDefinition::resultValues( const RiaSummaryCurveDefinition&
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RiaSummaryCurveDefinition::timeSteps( const RiaSummaryCurveDefinition& curveDefinition )
std::vector<time_t> RiaSummaryCurveDefinition::timeSteps( const RiaSummaryCurveDefinition& curveDefinition )
{
static std::vector<time_t> dummy;
if ( !curveDefinition.summaryAddress().isValid() ) return dummy;
if ( !curveDefinition.summaryCase() ) return dummy;
if ( !curveDefinition.summaryAddress().isValid() ) return {};
if ( !curveDefinition.summaryCase() ) return {};
RifSummaryReaderInterface* reader = curveDefinition.summaryCase()->summaryReader();
if ( !reader ) return dummy;
if ( !reader ) return {};
return reader->timeSteps( curveDefinition.summaryAddress() );
}

View File

@ -52,7 +52,7 @@ public:
// TODO: Consider moving to a separate tools class
static void resultValues( const RiaSummaryCurveDefinition& curveDefinition, gsl::not_null<std::vector<double>*> values );
static const std::vector<time_t>& timeSteps( const RiaSummaryCurveDefinition& curveDefinition );
static std::vector<time_t> timeSteps( const RiaSummaryCurveDefinition& curveDefinition );
QString curveDefinitionText() const;

View File

@ -99,7 +99,7 @@ bool RifColumnBasedUserData::values( const RifEclipseSummaryAddress& resultAddre
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifColumnBasedUserData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifColumnBasedUserData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
auto search = m_mapFromAddressToTimeStepIndex.find( resultAddress );
if ( search != m_mapFromAddressToTimeStepIndex.end() )
@ -107,9 +107,7 @@ const std::vector<time_t>& RifColumnBasedUserData::timeSteps( const RifEclipseSu
return m_timeSteps[search->second];
}
static std::vector<time_t> emptyVector;
return emptyVector;
return {};
}
//--------------------------------------------------------------------------------------------------

View File

@ -42,7 +42,7 @@ public:
bool parse( const QString& data, QString* errorText = nullptr );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;

View File

@ -93,7 +93,7 @@ bool RifCsvUserData::values( const RifEclipseSummaryAddress& resultAddress, std:
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifCsvUserData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifCsvUserData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
// First, check whether date time values exist for the current address
auto search = m_mapFromAddressToResultIndex.find( resultAddress );
@ -113,8 +113,7 @@ const std::vector<time_t>& RifCsvUserData::timeSteps( const RifEclipseSummaryAdd
return m_parser->tableData().columnInfos()[index].dateTimeValues;
}
static std::vector<time_t> emptyVector;
return emptyVector;
return {};
}
//--------------------------------------------------------------------------------------------------

View File

@ -44,7 +44,7 @@ public:
bool parse( const QString& fileName, const AsciiDataParseOptions& parseOptions, QString* errorText = nullptr );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;

View File

@ -52,12 +52,11 @@ RifDerivedEnsembleReader::RifDerivedEnsembleReader( RimDerivedSummaryCase* d
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifDerivedEnsembleReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifDerivedEnsembleReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
if ( !resultAddress.isValid() )
{
static std::vector<time_t> empty;
return empty;
return {};
}
if ( m_derivedCase->needsCalculation( resultAddress ) )

View File

@ -34,7 +34,7 @@ public:
RifSummaryReaderInterface* sourceSummaryReader1,
RifSummaryReaderInterface* sourceSummaryReader2 );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;
RiaDefines::EclipseUnitSystem unitSystem() const override;

View File

@ -288,7 +288,7 @@ bool RifEclEclipseSummary::values( const RifEclipseSummaryAddress& resultAddress
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifEclEclipseSummary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifEclEclipseSummary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
return m_timeSteps;
}

View File

@ -48,7 +48,7 @@ public:
bool open( const QString& headerFileName, RiaThreadSafeLogger* threadSafeLogger );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;

View File

@ -22,8 +22,6 @@
#include "RimEnsembleStatisticsCase.h"
#include "RimSummaryCaseCollection.h"
static const std::vector<time_t> EMPTY_TIME_STEPS_VECTOR;
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -43,9 +41,9 @@ RifEnsembleStatisticsReader::RifEnsembleStatisticsReader( RimEnsembleStatisticsC
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifEnsembleStatisticsReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifEnsembleStatisticsReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
if ( !validateAddress( resultAddress ) ) return EMPTY_TIME_STEPS_VECTOR;
if ( !validateAddress( resultAddress ) ) return {};
return m_ensembleStatCase->timeSteps();
}

View File

@ -31,7 +31,7 @@ class RifEnsembleStatisticsReader : public RifSummaryReaderInterface
public:
RifEnsembleStatisticsReader( RimEnsembleStatisticsCase* ensStatCase );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;

View File

@ -206,7 +206,7 @@ bool RifKeywordVectorUserData::values( const RifEclipseSummaryAddress& resultAdd
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifKeywordVectorUserData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifKeywordVectorUserData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
auto timeIndexIterator = m_mapFromAddressToTimeIndex.find( resultAddress );
if ( timeIndexIterator != m_mapFromAddressToTimeIndex.end() )
@ -214,9 +214,7 @@ const std::vector<time_t>& RifKeywordVectorUserData::timeSteps( const RifEclipse
return m_timeSteps[timeIndexIterator->second];
}
static std::vector<time_t> emptyVector;
return emptyVector;
return {};
}
//--------------------------------------------------------------------------------------------------

View File

@ -43,7 +43,7 @@ public:
bool parse( const QString& data, const QString& customWellName );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;

View File

@ -50,16 +50,14 @@ void RifMultipleSummaryReaders::removeReader( RifSummaryReaderInterface* reader
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifMultipleSummaryReaders::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifMultipleSummaryReaders::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
for ( const auto& r : m_readers )
{
if ( r->hasAddress( resultAddress ) ) return r->timeSteps( resultAddress );
}
static std::vector<time_t> empty;
return empty;
return {};
}
//--------------------------------------------------------------------------------------------------

View File

@ -35,7 +35,7 @@ public:
void addReader( RifSummaryReaderInterface* reader );
void removeReader( RifSummaryReaderInterface* reader );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;
RiaDefines::EclipseUnitSystem unitSystem() const override;

View File

@ -143,7 +143,7 @@ bool RifOpmCommonEclipseSummary::open( const QString& fileName, bool includeRest
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifOpmCommonEclipseSummary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifOpmCommonEclipseSummary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
return m_timeSteps;
}

View File

@ -74,7 +74,7 @@ public:
bool open( const QString& fileName, bool includeRestartFiles, RiaThreadSafeLogger* threadSafeLogger );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;
RiaDefines::EclipseUnitSystem unitSystem() const override;

View File

@ -83,7 +83,7 @@ bool RifOpmHdf5Summary::open( const QString& headerFileName, bool includeRestart
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifOpmHdf5Summary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifOpmHdf5Summary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
return m_timeSteps;
}

View File

@ -56,7 +56,7 @@ public:
bool open( const QString& headerFileName, bool includeRestartFiles, RiaThreadSafeLogger* threadSafeLogger );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;
RiaDefines::EclipseUnitSystem unitSystem() const override;

View File

@ -226,13 +226,12 @@ bool RifReaderEclipseSummary::values( const RifEclipseSummaryAddress& resultAddr
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifReaderEclipseSummary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifReaderEclipseSummary::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
auto reader = currentSummaryReader();
if ( reader ) return reader->timeSteps( resultAddress );
static std::vector<time_t> emptyVector;
return emptyVector;
return {};
}
//--------------------------------------------------------------------------------------------------

View File

@ -49,7 +49,7 @@ public:
bool open( const QString& headerFileName, RiaThreadSafeLogger* threadSafeLogger );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;

View File

@ -146,7 +146,7 @@ bool RifReaderObservedData::values( const RifEclipseSummaryAddress& resultAddres
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifReaderObservedData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifReaderObservedData::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
return m_timeSteps;
}

View File

@ -45,7 +45,7 @@ public:
const QString& identifierName,
RifEclipseSummaryAddress::SummaryVarCategory summaryCategory );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;

View File

@ -44,7 +44,7 @@ public:
RifEclipseSummaryAddress errorAddress( const RifEclipseSummaryAddress& resultAddress ) const;
virtual const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const = 0;
virtual std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const = 0;
virtual bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const = 0;

View File

@ -35,7 +35,7 @@ RifSummaryReaderMultipleFiles::RifSummaryReaderMultipleFiles( const std::vector<
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifSummaryReaderMultipleFiles::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifSummaryReaderMultipleFiles::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
return m_aggregatedTimeSteps;
}

View File

@ -39,7 +39,7 @@ public:
bool createReadersAndImportMetaData( RiaThreadSafeLogger* threadSafeLogger );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;
RiaDefines::EclipseUnitSystem unitSystem() const override;

View File

@ -1226,7 +1226,7 @@ void RimAnalysisPlot::applyFilter( const RimPlotDataFilterItem* filter,
if ( !historyAddr.isHistoryVector() )
historyAddr.setVectorName( addrToFilterValue.vectorName() + "H" );
const std::vector<time_t>& historyTimesteps = reader->timeSteps( historyAddr );
std::vector<time_t> historyTimesteps = reader->timeSteps( historyAddr );
if ( historyTimesteps.size() )
{
selectedTimestepIndices =
@ -1459,9 +1459,8 @@ void RimAnalysisPlot::addDataToChartBuilder( RiuGroupedBarChartBuilder& chartBui
// items are wells, then:
/// use color from eclCase->defaultWellColor( wellName );
std::vector<time_t> timeStepStorage;
const std::vector<time_t>* timeStepsPtr = &timeStepStorage;
std::vector<double> values;
std::vector<time_t> timeSteps;
std::vector<double> values;
if ( referenceCaseReader )
{
@ -1472,19 +1471,17 @@ void RimAnalysisPlot::addDataToChartBuilder( RiuGroupedBarChartBuilder& chartBui
-1,
DerivedSummaryOperator::DERIVED_OPERATOR_SUB,
curveDef.summaryAddress() );
timeStepStorage.swap( timeAndValues.first );
timeSteps.swap( timeAndValues.first );
values.swap( timeAndValues.second );
}
else
{
timeStepsPtr = &( reader->timeSteps( curveDef.summaryAddress() ) );
timeSteps = reader->timeSteps( curveDef.summaryAddress() );
reader->values( curveDef.summaryAddress(), &values );
}
const std::vector<time_t>& timesteps = *timeStepsPtr;
if ( !( timesteps.size() && values.size() ) ) continue;
if ( !( timeSteps.size() && values.size() ) ) continue;
// Find selected timestep indices
@ -1492,9 +1489,9 @@ void RimAnalysisPlot::addDataToChartBuilder( RiuGroupedBarChartBuilder& chartBui
for ( time_t tt : selectedTimesteps )
{
for ( int timestepIdx = 0; static_cast<unsigned>( timestepIdx ) < timesteps.size(); ++timestepIdx )
for ( int timestepIdx = 0; static_cast<unsigned>( timestepIdx ) < timeSteps.size(); ++timestepIdx )
{
if ( timesteps[timestepIdx] == tt )
if ( timeSteps[timestepIdx] == tt )
{
selectedTimestepIndices.push_back( timestepIdx );
break;
@ -1506,7 +1503,7 @@ void RimAnalysisPlot::addDataToChartBuilder( RiuGroupedBarChartBuilder& chartBui
{
double sortValue = std::numeric_limits<double>::infinity();
QDateTime dateTime = RiaQDateTimeTools::fromTime_t( timesteps[timestepIdx] );
QDateTime dateTime = RiaQDateTimeTools::fromTime_t( timeSteps[timestepIdx] );
QString formatString = RiaQDateTimeTools::dateFormatString( RiaPreferences::current()->dateFormat() );
QString timestepString = dateTime.toString( formatString );

View File

@ -32,7 +32,7 @@ RifCalculatedSummaryCurveReader::RifCalculatedSummaryCurveReader( RimSummaryCalc
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifCalculatedSummaryCurveReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
std::vector<time_t> RifCalculatedSummaryCurveReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
{
RimSummaryCalculation* calc = findCalculationByName( resultAddress );
if ( calc )
@ -40,9 +40,7 @@ const std::vector<time_t>& RifCalculatedSummaryCurveReader::timeSteps( const Rif
return calc->timeSteps();
}
static std::vector<time_t> dummy;
return dummy;
return {};
}
//--------------------------------------------------------------------------------------------------

View File

@ -35,7 +35,7 @@ class RifCalculatedSummaryCurveReader : public RifSummaryReaderInterface
public:
explicit RifCalculatedSummaryCurveReader( RimSummaryCalculationCollection* calculationCollection );
const std::vector<time_t>& timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
std::vector<time_t> timeSteps( const RifEclipseSummaryAddress& resultAddress ) const override;
bool values( const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values ) const override;
std::string unitName( const RifEclipseSummaryAddress& resultAddress ) const override;

View File

@ -342,12 +342,11 @@ std::vector<double> RimSummaryCurve::valuesX() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RimSummaryCurve::timeStepsY() const
std::vector<time_t> RimSummaryCurve::timeStepsY() const
{
static std::vector<time_t> emptyVector;
RifSummaryReaderInterface* reader = valuesSummaryReaderY();
if ( !reader ) return emptyVector;
if ( !reader ) return {};
RifEclipseSummaryAddress addr = m_yValuesSummaryAddress()->address();
@ -359,8 +358,8 @@ const std::vector<time_t>& RimSummaryCurve::timeStepsY() const
//--------------------------------------------------------------------------------------------------
double RimSummaryCurve::yValueAtTimeT( time_t time ) const
{
const std::vector<time_t>& timeSteps = timeStepsY();
const std::vector<double> values = valuesY();
const std::vector<time_t> timeSteps = timeStepsY();
const std::vector<double> values = valuesY();
if ( timeSteps.empty() || time < timeSteps.front() || time > timeSteps.back() )
return std::numeric_limits<double>::infinity();
@ -1282,12 +1281,11 @@ RifSummaryReaderInterface* RimSummaryCurve::valuesSummaryReaderY() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RimSummaryCurve::timeStepsX() const
std::vector<time_t> RimSummaryCurve::timeStepsX() const
{
static std::vector<time_t> emptyVector;
RifSummaryReaderInterface* reader = valuesSummaryReaderX();
if ( !reader ) return emptyVector;
if ( !reader ) return {};
RifEclipseSummaryAddress addr = m_xValuesSummaryAddress()->address();

View File

@ -65,12 +65,12 @@ public:
void setSummaryAddressY( const RifEclipseSummaryAddress& address );
void setResampling( RiaDefines::DateTimePeriodEnum resampling );
RifEclipseSummaryAddress errorSummaryAddressY() const;
std::vector<double> errorValuesY() const;
void setLeftOrRightAxisY( RiuPlotAxis plotAxis );
RiuPlotAxis axisY() const;
const std::vector<time_t>& timeStepsY() const;
double yValueAtTimeT( time_t time ) const;
RifEclipseSummaryAddress errorSummaryAddressY() const;
std::vector<double> errorValuesY() const;
void setLeftOrRightAxisY( RiuPlotAxis plotAxis );
RiuPlotAxis axisY() const;
std::vector<time_t> timeStepsY() const;
double yValueAtTimeT( time_t time ) const;
void setOverrideCurveDataY( const std::vector<time_t>& xValues, const std::vector<double>& yValues );
// X Axis functions
@ -114,7 +114,7 @@ protected:
private:
RifSummaryReaderInterface* valuesSummaryReaderX() const;
RifSummaryReaderInterface* valuesSummaryReaderY() const;
const std::vector<time_t>& timeStepsX() const;
std::vector<time_t> timeStepsX() const;
void calculateCurveInterpolationFromAddress();