Use hash of input do control if calculation is required

Add hash functions
Add serial number to SummaryReaderInterface
Add hash for RimSummaryCase

Use hash based on input parameters to control caching of data in RimEnsembleStatisticsCase::calculate  and RimEnsembleCurveSet::appendOptionItemsForSummaryAddresses
This commit is contained in:
Magne Sjaastad
2024-10-22 16:24:11 +02:00
parent ac96150875
commit 581b268928
10 changed files with 191 additions and 15 deletions

View File

@@ -19,6 +19,7 @@
#include "RimEnsembleStatisticsCase.h"
#include "RiaCurveMerger.h"
#include "RiaHashTools.h"
#include "RiaTimeHistoryCurveResampler.h"
#include "Summary/RiaSummaryTools.h"
@@ -129,6 +130,11 @@ void RimEnsembleStatisticsCase::calculate( const std::vector<RimSummaryCase*>& s
const RifEclipseSummaryAddress& inputAddress,
bool includeIncompleteCurves )
{
auto hash = RiaHashTools::hash( summaryCases, inputAddress.toEclipseTextAddress(), includeIncompleteCurves );
if ( hash == m_hash ) return;
m_hash = hash;
clearData();
if ( !inputAddress.isValid() ) return;