mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Add derived summary case (#5496)
* #5488 Derived Summary Case : Refactor ensemble summary case - Refactor ensemble summary case to be able to us as standalone derived summary case - rename to RimDerivedSummaryCase - allow negative values in well disk visualization * #5488 Derived Summary Case : Add feature to create derived case * #5487 Well Disks : Add scaling factor
This commit is contained in:
@@ -18,17 +18,12 @@
|
||||
|
||||
#include "RifDerivedEnsembleReader.h"
|
||||
|
||||
#include "RimDerivedEnsembleCase.h"
|
||||
#include "RimDerivedSummaryCase.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<time_t> RifDerivedEnsembleReader::EMPTY_TIME_STEPS_VECTOR;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDerivedEnsembleReader::RifDerivedEnsembleReader( RimDerivedEnsembleCase* derivedCase,
|
||||
RifDerivedEnsembleReader::RifDerivedEnsembleReader( RimDerivedSummaryCase* derivedCase,
|
||||
RifSummaryReaderInterface* sourceSummaryReader1 )
|
||||
{
|
||||
CVF_ASSERT( derivedCase );
|
||||
@@ -48,11 +43,17 @@ RifDerivedEnsembleReader::RifDerivedEnsembleReader( RimDerivedEnsembleCase* d
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<time_t>& RifDerivedEnsembleReader::timeSteps( const RifEclipseSummaryAddress& resultAddress ) const
|
||||
{
|
||||
if ( !resultAddress.isValid() ) return EMPTY_TIME_STEPS_VECTOR;
|
||||
if ( !resultAddress.isValid() )
|
||||
{
|
||||
static std::vector<time_t> empty;
|
||||
return empty;
|
||||
}
|
||||
|
||||
if ( m_derivedCase->needsCalculation( resultAddress ) )
|
||||
{
|
||||
m_derivedCase->calculate( resultAddress );
|
||||
}
|
||||
|
||||
return m_derivedCase->timeSteps( resultAddress );
|
||||
}
|
||||
|
||||
@@ -90,3 +91,18 @@ 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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,23 +21,24 @@
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
#include "RifSummaryReaderInterface.h"
|
||||
|
||||
class RimDerivedEnsembleCase;
|
||||
class RimDerivedSummaryCase;
|
||||
class RimSummaryCase;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RifDerivedEnsembleReader : public RifSummaryReaderInterface
|
||||
{
|
||||
static const std::vector<time_t> EMPTY_TIME_STEPS_VECTOR;
|
||||
|
||||
public:
|
||||
RifDerivedEnsembleReader( RimDerivedEnsembleCase* derivedCase, RifSummaryReaderInterface* sourceSummaryReader1 );
|
||||
RifDerivedEnsembleReader( RimDerivedSummaryCase* derivedCase, RifSummaryReaderInterface* sourceSummaryReader1 );
|
||||
|
||||
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:
|
||||
RimDerivedEnsembleCase* m_derivedCase;
|
||||
RimDerivedSummaryCase* m_derivedCase;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user