mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5545 Derived Summary Case : Make sure union of available addresses are used
This commit is contained in:
parent
54bb752682
commit
d6a1f79135
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -235,7 +235,8 @@ QString RimDerivedSummaryCase::caseName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDerivedSummaryCase::createSummaryReaderInterface()
|
||||
{
|
||||
RifSummaryReaderInterface* summaryCase1Reader = nullptr;
|
||||
RifSummaryReaderInterface* summaryCase1Reader1 = nullptr;
|
||||
RifSummaryReaderInterface* summaryCase1Reader2 = nullptr;
|
||||
if ( m_summaryCase1 )
|
||||
{
|
||||
if ( !m_summaryCase1->summaryReader() )
|
||||
@ -243,10 +244,19 @@ void RimDerivedSummaryCase::createSummaryReaderInterface()
|
||||
m_summaryCase1->createSummaryReaderInterface();
|
||||
}
|
||||
|
||||
summaryCase1Reader = m_summaryCase1->summaryReader();
|
||||
summaryCase1Reader1 = m_summaryCase1->summaryReader();
|
||||
}
|
||||
if ( m_summaryCase2 )
|
||||
{
|
||||
if ( !m_summaryCase2->summaryReader() )
|
||||
{
|
||||
m_summaryCase2->createSummaryReaderInterface();
|
||||
}
|
||||
|
||||
summaryCase1Reader2 = m_summaryCase2->summaryReader();
|
||||
}
|
||||
|
||||
m_reader.reset( new RifDerivedEnsembleReader( this, summaryCase1Reader ) );
|
||||
m_reader.reset( new RifDerivedEnsembleReader( this, summaryCase1Reader1, summaryCase1Reader2 ) );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -329,15 +339,7 @@ void RimDerivedSummaryCase::fieldChangedByUi( const caf::PdmFieldHandle* changed
|
||||
bool reloadData = false;
|
||||
if ( changedField == &m_summaryCase2 || changedField == &m_summaryCase1 )
|
||||
{
|
||||
if ( !m_reader )
|
||||
{
|
||||
createSummaryReaderInterface();
|
||||
}
|
||||
|
||||
if ( m_reader )
|
||||
{
|
||||
m_reader->updateData( m_summaryCase1(), m_summaryCase2() );
|
||||
}
|
||||
createSummaryReaderInterface();
|
||||
|
||||
reloadData = true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user