mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 23:46:00 -06:00
#4251 Saturation Pressure Plots: Create curves only for unique values from EQLNUM
This commit is contained in:
parent
b08271b982
commit
2a534f88df
@ -22,12 +22,11 @@
|
|||||||
|
|
||||||
#include "cafAppEnum.h"
|
#include "cafAppEnum.h"
|
||||||
|
|
||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
template<>
|
template<>
|
||||||
void caf::AppEnum< RiaDefines::ResultCatType >::setUp()
|
void caf::AppEnum<RiaDefines::ResultCatType>::setUp()
|
||||||
{
|
{
|
||||||
addItem(RiaDefines::DYNAMIC_NATIVE, "DYNAMIC_NATIVE", "Dynamic");
|
addItem(RiaDefines::DYNAMIC_NATIVE, "DYNAMIC_NATIVE", "Dynamic");
|
||||||
addItem(RiaDefines::STATIC_NATIVE, "STATIC_NATIVE", "Static");
|
addItem(RiaDefines::STATIC_NATIVE, "STATIC_NATIVE", "Static");
|
||||||
addItem(RiaDefines::SOURSIMRL, "SOURSIMRL", "SourSimRL");
|
addItem(RiaDefines::SOURSIMRL, "SOURSIMRL", "SourSimRL");
|
||||||
@ -37,31 +36,30 @@ namespace caf
|
|||||||
addItem(RiaDefines::FLOW_DIAGNOSTICS, "FLOW_DIAGNOSTICS", "Flow Diagnostics");
|
addItem(RiaDefines::FLOW_DIAGNOSTICS, "FLOW_DIAGNOSTICS", "Flow Diagnostics");
|
||||||
addItem(RiaDefines::INJECTION_FLOODING, "INJECTION_FLOODING", "Injection Flooding");
|
addItem(RiaDefines::INJECTION_FLOODING, "INJECTION_FLOODING", "Injection Flooding");
|
||||||
setDefault(RiaDefines::DYNAMIC_NATIVE);
|
setDefault(RiaDefines::DYNAMIC_NATIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void caf::AppEnum< RiaDefines::DepthUnitType >::setUp()
|
void caf::AppEnum<RiaDefines::DepthUnitType>::setUp()
|
||||||
{
|
{
|
||||||
addItem(RiaDefines::UNIT_METER, "UNIT_METER", "Meter");
|
addItem(RiaDefines::UNIT_METER, "UNIT_METER", "Meter");
|
||||||
addItem(RiaDefines::UNIT_FEET, "UNIT_FEET", "Feet");
|
addItem(RiaDefines::UNIT_FEET, "UNIT_FEET", "Feet");
|
||||||
addItem(RiaDefines::UNIT_NONE, "UNIT_NONE", "None");
|
addItem(RiaDefines::UNIT_NONE, "UNIT_NONE", "None");
|
||||||
|
|
||||||
|
|
||||||
setDefault(RiaDefines::UNIT_METER);
|
setDefault(RiaDefines::UNIT_METER);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void caf::AppEnum< RiaDefines::PlotAxis >::setUp()
|
void caf::AppEnum<RiaDefines::PlotAxis>::setUp()
|
||||||
{
|
{
|
||||||
addItem(RiaDefines::PLOT_AXIS_LEFT, "PLOT_AXIS_LEFT", "Left");
|
addItem(RiaDefines::PLOT_AXIS_LEFT, "PLOT_AXIS_LEFT", "Left");
|
||||||
addItem(RiaDefines::PLOT_AXIS_RIGHT, "PLOT_AXIS_RIGHT", "Right");
|
addItem(RiaDefines::PLOT_AXIS_RIGHT, "PLOT_AXIS_RIGHT", "Right");
|
||||||
|
|
||||||
setDefault(RiaDefines::PLOT_AXIS_LEFT);
|
setDefault(RiaDefines::PLOT_AXIS_LEFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void caf::AppEnum< RiaDefines::WellPathComponentType >::setUp()
|
void caf::AppEnum<RiaDefines::WellPathComponentType>::setUp()
|
||||||
{
|
{
|
||||||
addItem(RiaDefines::WELL_PATH, "WELL_PATH", "Well Path");
|
addItem(RiaDefines::WELL_PATH, "WELL_PATH", "Well Path");
|
||||||
addItem(RiaDefines::PERFORATION_INTERVAL, "PERFORATION_INTERVAL", "Perforation Interval");
|
addItem(RiaDefines::PERFORATION_INTERVAL, "PERFORATION_INTERVAL", "Perforation Interval");
|
||||||
addItem(RiaDefines::FISHBONES, "FISHBONES", "Fishbones");
|
addItem(RiaDefines::FISHBONES, "FISHBONES", "Fishbones");
|
||||||
@ -74,8 +72,8 @@ namespace caf
|
|||||||
addItem(RiaDefines::PACKER, "PACKER", "Packer");
|
addItem(RiaDefines::PACKER, "PACKER", "Packer");
|
||||||
addItem(RiaDefines::UNDEFINED_COMPONENT, "UNDEFINED", "Undefined Component");
|
addItem(RiaDefines::UNDEFINED_COMPONENT, "UNDEFINED", "Undefined Component");
|
||||||
setDefault(RiaDefines::WELL_PATH);
|
setDefault(RiaDefines::WELL_PATH);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} // namespace caf
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
@ -206,6 +204,14 @@ QString RiaDefines::combinedMultResultName()
|
|||||||
return "MULTXYZ";
|
return "MULTXYZ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QString RiaDefines::eqlnumResultName()
|
||||||
|
{
|
||||||
|
return "EQLNUM";
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -443,7 +449,7 @@ QString RiaDefines::wellPathSFGResultName()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<QString> RiaDefines::wellPathAngleResultNames()
|
std::vector<QString> RiaDefines::wellPathAngleResultNames()
|
||||||
{
|
{
|
||||||
return { RiaDefines::wellPathAzimuthResultName(), RiaDefines::wellPathInclinationResultName() };
|
return {RiaDefines::wellPathAzimuthResultName(), RiaDefines::wellPathInclinationResultName()};
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -451,9 +457,11 @@ std::vector<QString> RiaDefines::wellPathAngleResultNames()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<QString> RiaDefines::wellPathStabilityResultNames()
|
std::vector<QString> RiaDefines::wellPathStabilityResultNames()
|
||||||
{
|
{
|
||||||
return { RiaDefines::wellPathFGResultName(), RiaDefines::wellPathOBGResultName(),
|
return {RiaDefines::wellPathFGResultName(),
|
||||||
RiaDefines::wellPathPPResultName(), RiaDefines::wellPathSFGResultName(),
|
RiaDefines::wellPathOBGResultName(),
|
||||||
RiaDefines::wellPathSHResultName() };
|
RiaDefines::wellPathPPResultName(),
|
||||||
|
RiaDefines::wellPathSFGResultName(),
|
||||||
|
RiaDefines::wellPathSHResultName()};
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -73,6 +73,8 @@ namespace RiaDefines
|
|||||||
QString ternarySaturationResultName();
|
QString ternarySaturationResultName();
|
||||||
QString combinedMultResultName();
|
QString combinedMultResultName();
|
||||||
|
|
||||||
|
QString eqlnumResultName();
|
||||||
|
|
||||||
QString riTranXResultName();
|
QString riTranXResultName();
|
||||||
QString riTranYResultName();
|
QString riTranYResultName();
|
||||||
QString riTranZResultName();
|
QString riTranZResultName();
|
||||||
|
@ -297,7 +297,7 @@ QList<caf::PdmOptionItemInfo>
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::set<QString> RicExportEclipseInputGridUi::mainKeywords()
|
std::set<QString> RicExportEclipseInputGridUi::mainKeywords()
|
||||||
{
|
{
|
||||||
return { "EQLNUM", "FIPNUM", "NTG", "PERMX", "PERMY", "PERMZ", "PORO", "PVTNUM", "SATNUM", "SWATINIT" };
|
return { RiaDefines::eqlnumResultName(), "FIPNUM", "NTG", "PERMX", "PERMY", "PERMZ", "PORO", "PVTNUM", "SATNUM", "SWATINIT" };
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -125,7 +125,7 @@ void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion(RiaDefines::Poros
|
|||||||
RimEclipseResultDefinition* resultDefinition = new RimEclipseResultDefinition();
|
RimEclipseResultDefinition* resultDefinition = new RimEclipseResultDefinition();
|
||||||
resultDefinition->setEclipseCase(eclipseResultCase);
|
resultDefinition->setEclipseCase(eclipseResultCase);
|
||||||
resultDefinition->setResultType(RiaDefines::STATIC_NATIVE);
|
resultDefinition->setResultType(RiaDefines::STATIC_NATIVE);
|
||||||
resultDefinition->setResultVariable("EQLNUM");
|
resultDefinition->setResultVariable(RiaDefines::eqlnumResultName());
|
||||||
|
|
||||||
cellFilter->setResultDefinition(resultDefinition);
|
cellFilter->setResultDefinition(resultDefinition);
|
||||||
}
|
}
|
||||||
@ -205,7 +205,7 @@ RimPlotCellPropertyFilter*
|
|||||||
RimEclipseResultDefinition* resultDefinition = new RimEclipseResultDefinition();
|
RimEclipseResultDefinition* resultDefinition = new RimEclipseResultDefinition();
|
||||||
resultDefinition->setEclipseCase(eclipseResultCase);
|
resultDefinition->setEclipseCase(eclipseResultCase);
|
||||||
resultDefinition->setResultType(RiaDefines::STATIC_NATIVE);
|
resultDefinition->setResultType(RiaDefines::STATIC_NATIVE);
|
||||||
resultDefinition->setResultVariable("EQLNUM");
|
resultDefinition->setResultVariable(RiaDefines::eqlnumResultName());
|
||||||
|
|
||||||
cellFilter->setResultDefinition(resultDefinition);
|
cellFilter->setResultDefinition(resultDefinition);
|
||||||
|
|
||||||
|
@ -18,7 +18,9 @@
|
|||||||
|
|
||||||
#include "RimSaturationPressurePlotCollection.h"
|
#include "RimSaturationPressurePlotCollection.h"
|
||||||
|
|
||||||
|
#include "RigCaseCellResultsData.h"
|
||||||
#include "RigEclipseCaseData.h"
|
#include "RigEclipseCaseData.h"
|
||||||
|
#include "RigEclipseResultAddress.h"
|
||||||
#include "RigEquil.h"
|
#include "RigEquil.h"
|
||||||
|
|
||||||
#include "RimEclipseResultCase.h"
|
#include "RimEclipseResultCase.h"
|
||||||
@ -55,22 +57,40 @@ std::vector<RimSaturationPressurePlot*>
|
|||||||
RigEclipseCaseData* eclipseCaseData = eclipseResultCase->eclipseCaseData();
|
RigEclipseCaseData* eclipseCaseData = eclipseResultCase->eclipseCaseData();
|
||||||
if (!eclipseCaseData) return generatedPlots;
|
if (!eclipseCaseData) return generatedPlots;
|
||||||
|
|
||||||
|
auto results = eclipseCaseData->results(RiaDefines::MATRIX_MODEL);
|
||||||
|
|
||||||
|
std::set<int> eqlnumRegionIdsFound;
|
||||||
|
{
|
||||||
|
RigEclipseResultAddress resAdr(RiaDefines::STATIC_NATIVE, RiaDefines::eqlnumResultName());
|
||||||
|
if (results->hasResultEntry(resAdr))
|
||||||
|
{
|
||||||
|
auto vals = results->uniqueCellScalarValues(resAdr);
|
||||||
|
for (auto v : vals)
|
||||||
|
{
|
||||||
|
eqlnumRegionIdsFound.insert(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<RigEquil> equilData = eclipseCaseData->equilData();
|
std::vector<RigEquil> equilData = eclipseCaseData->equilData();
|
||||||
for (size_t i = 0; i < equilData.size(); i++)
|
for (size_t i = 0; i < equilData.size(); i++)
|
||||||
|
{
|
||||||
|
int zeroBasedEquilibriumRegion = static_cast<int>(i);
|
||||||
|
|
||||||
|
if (eqlnumRegionIdsFound.find(zeroBasedEquilibriumRegion + 1) != eqlnumRegionIdsFound.end())
|
||||||
{
|
{
|
||||||
RimSaturationPressurePlot* plot = new RimSaturationPressurePlot();
|
RimSaturationPressurePlot* plot = new RimSaturationPressurePlot();
|
||||||
plot->setAsPlotMdiWindow();
|
plot->setAsPlotMdiWindow();
|
||||||
|
|
||||||
int equilibriumRegion = static_cast<int>(i);
|
|
||||||
|
|
||||||
// As discussed with Liv Merete, it is not any use for creation of different plots for matrix/fracture. For now, use
|
// 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
|
// hardcoded value for MATRIX
|
||||||
plot->assignCaseAndEquilibriumRegion(RiaDefines::MATRIX_MODEL, eclipseResultCase, equilibriumRegion);
|
plot->assignCaseAndEquilibriumRegion(RiaDefines::MATRIX_MODEL, eclipseResultCase, zeroBasedEquilibriumRegion);
|
||||||
|
|
||||||
m_saturationPressurePlots.push_back(plot);
|
m_saturationPressurePlots.push_back(plot);
|
||||||
|
|
||||||
generatedPlots.push_back(plot);
|
generatedPlots.push_back(plot);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return generatedPlots;
|
return generatedPlots;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user