#5612 Saturation Pressure Plots : Add support for user defined time step

This commit is contained in:
Magne Sjaastad
2020-02-28 11:40:23 +01:00
parent a612da649c
commit 1187a2e551
11 changed files with 55 additions and 17 deletions

View File

@@ -1185,7 +1185,8 @@ bool RimGridCrossPlotDataSet::isYAxisLogarithmic() const
///
//--------------------------------------------------------------------------------------------------
void RimGridCrossPlotDataSet::configureForPressureSaturationCurves( RimEclipseResultCase* eclipseCase,
const QString& dynamicResultName )
const QString& dynamicResultName,
int timeStep )
{
m_case = eclipseCase;
@@ -1206,7 +1207,7 @@ void RimGridCrossPlotDataSet::configureForPressureSaturationCurves( RimEclipseRe
m_nameConfig->addTimestep = false;
m_nameConfig->addGrouping = false;
m_timeStep = 0;
m_timeStep = timeStep;
}
//--------------------------------------------------------------------------------------------------

View File

@@ -132,7 +132,9 @@ public:
bool isXAxisLogarithmic() const;
bool isYAxisLogarithmic() const;
void configureForPressureSaturationCurves( RimEclipseResultCase* eclipseResultCase, const QString& dynamicResultName );
void configureForPressureSaturationCurves( RimEclipseResultCase* eclipseResultCase,
const QString& dynamicResultName,
int timeStep );
void addCellFilter( RimPlotCellFilter* cellFilter );
void setCustomColor( const cvf::Color3f color );
void destroyCurves();

View File

@@ -48,7 +48,8 @@ RimSaturationPressurePlot::RimSaturationPressurePlot()
//--------------------------------------------------------------------------------------------------
void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion( RiaDefines::PorosityModelType porosityModel,
RimEclipseResultCase* eclipseResultCase,
int zeroBasedEquilRegionIndex )
int zeroBasedEquilRegionIndex,
int timeStep )
{
CVF_ASSERT( eclipseResultCase && eclipseResultCase->eclipseCaseData() );
@@ -76,7 +77,7 @@ void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion( RiaDefines::Poro
// Blue PRESSURE curve with data for specified EQLNUM value
RimGridCrossPlotDataSet* curveSet = createDataSet();
curveSet->configureForPressureSaturationCurves( eclipseResultCase, "PRESSURE" );
curveSet->configureForPressureSaturationCurves( eclipseResultCase, "PRESSURE", timeStep );
cvf::Color3f curveColor = RiaColorTables::summaryCurveBluePaletteColors().cycledColor3f( 0 );
curveSet->setCustomColor( curveColor );
@@ -91,7 +92,7 @@ void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion( RiaDefines::Poro
// Red dew pressure (PDEW) curve with data for specified EQLNUM value, filtered on depth by gasOilContact
RimGridCrossPlotDataSet* curveSet = createDataSet();
curveSet->configureForPressureSaturationCurves( eclipseResultCase, "PDEW" );
curveSet->configureForPressureSaturationCurves( eclipseResultCase, "PDEW", timeStep );
cvf::Color3f curveColor = RiaColorTables::summaryCurveRedPaletteColors().cycledColor3f( 0 );
curveSet->setCustomColor( curveColor );
@@ -125,7 +126,7 @@ void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion( RiaDefines::Poro
// gasOilContact and waterOilContactDepth
RimGridCrossPlotDataSet* curveSet = createDataSet();
curveSet->configureForPressureSaturationCurves( eclipseResultCase, "PBUB" );
curveSet->configureForPressureSaturationCurves( eclipseResultCase, "PBUB", timeStep );
cvf::Color3f curveColor = RiaColorTables::summaryCurveGreenPaletteColors().cycledColor3f( 0 );
curveSet->setCustomColor( curveColor );

View File

@@ -37,7 +37,8 @@ public:
void assignCaseAndEquilibriumRegion( RiaDefines::PorosityModelType porosityModel,
RimEclipseResultCase* eclipseResultCase,
int zeroBasedEquilRegionIndex );
int zeroBasedEquilRegionIndex,
int timeStep );
protected:
void initAfterRead() override;

View File

@@ -53,7 +53,8 @@ RimSaturationPressurePlotCollection::~RimSaturationPressurePlotCollection()
///
//--------------------------------------------------------------------------------------------------
std::vector<RimSaturationPressurePlot*>
RimSaturationPressurePlotCollection::createSaturationPressurePlots( RimEclipseResultCase* eclipseResultCase )
RimSaturationPressurePlotCollection::createSaturationPressurePlots( RimEclipseResultCase* eclipseResultCase,
int timeStep )
{
std::vector<RimSaturationPressurePlot*> generatedPlots;
@@ -92,7 +93,10 @@ std::vector<RimSaturationPressurePlot*>
// As discussed with Liv Merete, it is not any use for creation of different plots for matrix/fracture. For
// now, use hardcoded value for MATRIX
plot->assignCaseAndEquilibriumRegion( RiaDefines::MATRIX_MODEL, eclipseResultCase, zeroBasedEquilibriumRegion );
plot->assignCaseAndEquilibriumRegion( RiaDefines::MATRIX_MODEL,
eclipseResultCase,
zeroBasedEquilibriumRegion,
timeStep );
m_saturationPressurePlots.push_back( plot );

View File

@@ -35,7 +35,8 @@ public:
RimSaturationPressurePlotCollection();
~RimSaturationPressurePlotCollection() override;
std::vector<RimSaturationPressurePlot*> createSaturationPressurePlots( RimEclipseResultCase* eclipseResultCase );
std::vector<RimSaturationPressurePlot*> createSaturationPressurePlots( RimEclipseResultCase* eclipseResultCase,
int timeStep );
std::vector<RimSaturationPressurePlot*> plots();
void deleteAllChildObjects();