#5545 Derived Summary Case : Make sure union of available addresses are used

This commit is contained in:
Magne Sjaastad
2020-02-13 11:43:21 +01:00
parent 54bb752682
commit d6a1f79135
3 changed files with 30 additions and 32 deletions

View File

@@ -24,7 +24,8 @@
///
//--------------------------------------------------------------------------------------------------
RifDerivedEnsembleReader::RifDerivedEnsembleReader( RimDerivedSummaryCase* derivedCase,
RifSummaryReaderInterface* sourceSummaryReader1 )
RifSummaryReaderInterface* sourceSummaryReader1,
RifSummaryReaderInterface* sourceSummaryReader2 )
{
CVF_ASSERT( derivedCase );
@@ -32,10 +33,20 @@ RifDerivedEnsembleReader::RifDerivedEnsembleReader( RimDerivedSummaryCase* d
if ( sourceSummaryReader1 )
{
// TODO: This is assuming that the addresses of both reader interfaces are equal
m_allResultAddresses = sourceSummaryReader1->allResultAddresses();
m_allErrorAddresses = sourceSummaryReader1->allErrorAddresses();
}
if ( sourceSummaryReader2 )
{
for ( auto a : sourceSummaryReader2->allResultAddresses() )
{
m_allResultAddresses.insert( a );
}
for ( auto a : sourceSummaryReader2->allErrorAddresses() )
{
m_allErrorAddresses.insert( a );
}
}
}
//--------------------------------------------------------------------------------------------------
@@ -91,18 +102,3 @@ RiaEclipseUnitTools::UnitSystem RifDerivedEnsembleReader::unitSystem() const
{
return RiaEclipseUnitTools::UNITS_UNKNOWN;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifDerivedEnsembleReader::updateData( RimSummaryCase* sumCase1, RimSummaryCase* sumCase2 )
{
m_allErrorAddresses.clear();
m_allResultAddresses.clear();
if ( sumCase1 && sumCase1->summaryReader() )
{
m_allErrorAddresses = sumCase1->summaryReader()->allErrorAddresses();
m_allResultAddresses = sumCase1->summaryReader()->allResultAddresses();
}
}

View File

@@ -30,15 +30,15 @@ class RimSummaryCase;
class RifDerivedEnsembleReader : public RifSummaryReaderInterface
{
public:
RifDerivedEnsembleReader( RimDerivedSummaryCase* derivedCase, RifSummaryReaderInterface* sourceSummaryReader1 );
RifDerivedEnsembleReader( RimDerivedSummaryCase* derivedCase,
RifSummaryReaderInterface* sourceSummaryReader1,
RifSummaryReaderInterface* sourceSummaryReader2 );
const 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;
RiaEclipseUnitTools::UnitSystem unitSystem() const override;
void updateData( RimSummaryCase* sumCase1, RimSummaryCase* sumCase2 );
private:
RimDerivedSummaryCase* m_derivedCase;
};