diff --git a/ApplicationCode/CommandFileInterface/RicfExportProperty.cpp b/ApplicationCode/CommandFileInterface/RicfExportProperty.cpp index f68bada278..63a0f54f1e 100644 --- a/ApplicationCode/CommandFileInterface/RicfExportProperty.cpp +++ b/ApplicationCode/CommandFileInterface/RicfExportProperty.cpp @@ -85,8 +85,7 @@ void RicfExportProperty::execute() RigCaseCellResultsData* cellResultsData = eclipseCaseData->results(RiaDefines::MATRIX_MODEL); - size_t resultIdx = cellResultsData->findOrLoadKnownScalarResult(m_propertyName); - if (resultIdx == cvf::UNDEFINED_SIZE_T) + if (!cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(m_propertyName))) { RiaLogging::error(QString("exportProperty: Could not find result property : %1").arg(m_propertyName())); return; diff --git a/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp b/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp index aea61cad4b..fa8f715af2 100644 --- a/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp +++ b/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp @@ -187,7 +187,7 @@ std::vector if (pdParams.performScaling) { RigCaseCellResultsData* results = caseToApply->results(RiaDefines::MATRIX_MODEL); - results->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "PRESSURE"); + results->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "PRESSURE")); } return generateCompdatValuesConst(caseToApply, diff --git a/ApplicationCode/Commands/CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.cpp b/ApplicationCode/Commands/CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.cpp index 46891a10c4..a65e2334ca 100644 --- a/ApplicationCode/Commands/CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.cpp +++ b/ApplicationCode/Commands/CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.cpp @@ -1230,13 +1230,13 @@ CellDirection RicWellPathExportCompletionDataFeatureImpl::calculateCellMainDirec { RigEclipseCaseData* eclipseCaseData = eclipseCase->eclipseCaseData(); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DX"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DX")); cvf::ref dxAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DX"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DY"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DY")); cvf::ref dyAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DY"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DZ"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DZ")); cvf::ref dzAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DZ"); @@ -1274,23 +1274,23 @@ TransmissibilityData { RigEclipseCaseData* eclipseCaseData = eclipseCase->eclipseCaseData(); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DX"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DX")); cvf::ref dxAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DX"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DY"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DY")); cvf::ref dyAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DY"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DZ"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DZ")); cvf::ref dzAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DZ"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PERMX"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PERMX")); cvf::ref permxAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PERMX"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PERMY"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PERMY")); cvf::ref permyAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PERMY"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PERMZ"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PERMZ")); cvf::ref permzAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PERMZ"); @@ -1303,7 +1303,7 @@ TransmissibilityData double ntg = 1.0; { // Trigger loading from file - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "NTG"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "NTG")); cvf::ref ntgAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "NTG"); @@ -1370,7 +1370,7 @@ double RicWellPathExportCompletionDataFeatureImpl::calculateDFactor(RimEclipseCa double porosity = 0.0; { - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PORO"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PORO")); cvf::ref poroAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PORO"); @@ -1408,29 +1408,28 @@ double RicWellPathExportCompletionDataFeatureImpl::calculateTransmissibilityAsEc { RigEclipseCaseData* eclipseCaseData = eclipseCase->eclipseCaseData(); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DX"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DX")); cvf::ref dxAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DX"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DY"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DY")); cvf::ref dyAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DY"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DZ"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DZ")); cvf::ref dzAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "DZ"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PERMX"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PERMX")); cvf::ref permxAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PERMX"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PERMY"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PERMY")); cvf::ref permyAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PERMY"); - eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PERMZ"); + eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PERMZ")); cvf::ref permzAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "PERMZ"); double ntg = 1.0; - size_t ntgResIdx = eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "NTG"); - if (ntgResIdx != cvf::UNDEFINED_SIZE_T) + if (eclipseCase->results(RiaDefines::MATRIX_MODEL)->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "NTG"))) { cvf::ref ntgAccessObject = RigResultAccessorFactory::createFromUiResultName(eclipseCaseData, 0, RiaDefines::MATRIX_MODEL, 0, "NTG"); diff --git a/ApplicationCode/FileInterface/RifEclipseInputFileTools.cpp b/ApplicationCode/FileInterface/RifEclipseInputFileTools.cpp index 6ae0927d45..215ca25212 100644 --- a/ApplicationCode/FileInterface/RifEclipseInputFileTools.cpp +++ b/ApplicationCode/FileInterface/RifEclipseInputFileTools.cpp @@ -318,13 +318,10 @@ bool RifEclipseInputFileTools::readDataFromKeyword(ecl_kw_type* eclipseKeywordDa if (!mathingItemCount) return false; - size_t resultIndex = caseData->results(RiaDefines::MATRIX_MODEL)->findScalarResultIndex(resultName); // Todo : Is it neccessary to search without type first ? - if (resultIndex == cvf::UNDEFINED_SIZE_T) - { - caseData->results(RiaDefines::MATRIX_MODEL)->findOrCreateScalarResultIndex(RiaDefines::INPUT_PROPERTY, resultName, false); - } + RigEclipseResultAddress resAddr( RiaDefines::INPUT_PROPERTY, resultName); + caseData->results(RiaDefines::MATRIX_MODEL)->createResultEntry( resAddr, false); - std::vector< std::vector >& newPropertyData = caseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(RigEclipseResultAddress(resultName)); + std::vector< std::vector >& newPropertyData = caseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(resAddr); newPropertyData.push_back(std::vector()); newPropertyData[0].resize(ecl_kw_get_size(eclipseKeywordData), HUGE_VAL); diff --git a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp index 52f5182e62..f7255d1166 100644 --- a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp +++ b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp @@ -573,10 +573,12 @@ void RifReaderEclipseOutput::setHdf5FileName(const QString& fileName) } QStringList resultNames = hdf5ReaderInterface->propertyNames(); + for (int i = 0; i < resultNames.size(); ++i) { - matrixModelResults->findOrCreateScalarResultIndex(RiaDefines::SOURSIMRL, resultNames[i], false); - matrixModelResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::SOURSIMRL, resultNames[i]), timeStepInfos); + RigEclipseResultAddress resAddr(RiaDefines::SOURSIMRL, resultNames[i]); + matrixModelResults->createResultEntry(resAddr, false); + matrixModelResults->setTimeStepInfos(resAddr, timeStepInfos); } m_hdfReaderInterface = std::move(hdf5ReaderInterface); @@ -855,8 +857,9 @@ void RifReaderEclipseOutput::buildMetaData(ecl_grid_type* grid) for (int i = 0; i < matrixResultNames.size(); ++i) { - matrixModelResults->findOrCreateScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, matrixResultNames[i], false); - matrixModelResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, matrixResultNames[i]), timeStepInfos); + RigEclipseResultAddress resAddr(RiaDefines::DYNAMIC_NATIVE, matrixResultNames[i]); + matrixModelResults->createResultEntry(resAddr, false); + matrixModelResults->setTimeStepInfos(resAddr, timeStepInfos); } } @@ -868,8 +871,9 @@ void RifReaderEclipseOutput::buildMetaData(ecl_grid_type* grid) for (int i = 0; i < fractureResultNames.size(); ++i) { - fractureModelResults->findOrCreateScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, fractureResultNames[i], false); - fractureModelResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, fractureResultNames[i]), timeStepInfos); + RigEclipseResultAddress resAddr(RiaDefines::DYNAMIC_NATIVE, fractureResultNames[i]); + fractureModelResults->createResultEntry(resAddr, false); + fractureModelResults->setTimeStepInfos(resAddr, timeStepInfos); } } } @@ -939,8 +943,9 @@ void RifReaderEclipseOutput::buildMetaData(ecl_grid_type* grid) for (int i = 0; i < matrixResultNames.size(); ++i) { - matrixModelResults->findOrCreateScalarResultIndex(RiaDefines::STATIC_NATIVE, matrixResultNames[i], false); - matrixModelResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, matrixResultNames[i]), staticTimeStepInfo); + RigEclipseResultAddress resAddr(RiaDefines::STATIC_NATIVE, matrixResultNames[i]); + matrixModelResults->createResultEntry(resAddr, false); + matrixModelResults->setTimeStepInfos(resAddr, staticTimeStepInfo); } } @@ -954,8 +959,9 @@ void RifReaderEclipseOutput::buildMetaData(ecl_grid_type* grid) for (int i = 0; i < fractureResultNames.size(); ++i) { - fractureModelResults->findOrCreateScalarResultIndex(RiaDefines::STATIC_NATIVE, fractureResultNames[i], false); - fractureModelResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, fractureResultNames[i]), staticTimeStepInfo); + RigEclipseResultAddress resAddr(RiaDefines::STATIC_NATIVE, fractureResultNames[i]); + fractureModelResults->createResultEntry(resAddr, false); + fractureModelResults->setTimeStepInfos(resAddr, staticTimeStepInfo); } } } diff --git a/ApplicationCode/FileInterface/RifReaderMockModel.cpp b/ApplicationCode/FileInterface/RifReaderMockModel.cpp index b65ab81f35..9738276d59 100644 --- a/ApplicationCode/FileInterface/RifReaderMockModel.cpp +++ b/ApplicationCode/FileInterface/RifReaderMockModel.cpp @@ -53,8 +53,9 @@ bool RifReaderMockModel::open(const QString& fileName, RigEclipseCaseData* eclip for (size_t i = 0; i < m_reservoirBuilder.resultCount(); i++) { - cellResults->findOrCreateScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, QString("Dynamic_Result_%1").arg(i), false); - cellResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, QString("Dynamic_Result_%1").arg(i)), timeStepInfos); + RigEclipseResultAddress resAddr(RiaDefines::DYNAMIC_NATIVE, QString("Dynamic_Result_%1").arg(i)); + cellResults->createResultEntry(resAddr, false); + cellResults->setTimeStepInfos(resAddr, timeStepInfos); } if (m_reservoirBuilder.timeStepCount() == 0) return true; @@ -69,9 +70,11 @@ bool RifReaderMockModel::open(const QString& fileName, RigEclipseCaseData* eclip if (i == 1) varEnd = "Y"; int resIndex = 0; if (i > 1) resIndex = i; + + RigEclipseResultAddress resAddr(RiaDefines::STATIC_NATIVE, QString("Static_Result_%1%2").arg(resIndex).arg(varEnd)); - cellResults->findOrCreateScalarResultIndex(RiaDefines::STATIC_NATIVE, QString("Static_Result_%1%2").arg(resIndex).arg(varEnd), false); - cellResults->setTimeStepInfos(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, QString("Static_Result_%1%2").arg(resIndex).arg(varEnd)), staticResultTimeStepInfos); + cellResults->createResultEntry(resAddr, false); + cellResults->setTimeStepInfos(resAddr, staticResultTimeStepInfos); } @@ -79,7 +82,7 @@ bool RifReaderMockModel::open(const QString& fileName, RigEclipseCaseData* eclip { \ QString resultName(Name); \ RigEclipseResultAddress resAddr(RiaDefines::INPUT_PROPERTY, resultName);\ - cellResults->findOrCreateScalarResultIndex(RiaDefines::INPUT_PROPERTY, resultName, false); \ + cellResults->createResultEntry(resAddr, false); \ cellResults->setTimeStepInfos(resAddr, staticResultTimeStepInfos); \ cellResults->cellScalarResults(resAddr).resize(1); \ std::vector& values = cellResults->cellScalarResults(resAddr)[0]; \ diff --git a/ApplicationCode/ModelVisualization/RivCellEdgeGeometryUtils.cpp b/ApplicationCode/ModelVisualization/RivCellEdgeGeometryUtils.cpp index 6527a5069e..0d0454eb30 100644 --- a/ApplicationCode/ModelVisualization/RivCellEdgeGeometryUtils.cpp +++ b/ApplicationCode/ModelVisualization/RivCellEdgeGeometryUtils.cpp @@ -326,7 +326,7 @@ cvf::ref RivCellEdgeGeometryUtils::createCellEdgeResultAccess } RiaDefines::PorosityModelType porosityModel = cellResultColors->porosityModel(); - cvf::ref daObj = RigResultAccessorFactory::createFromResultIdx(eclipseCase, grid->gridIndex(), porosityModel, adjustedTimeStep, resultIndices[cubeFaceIdx]); + cvf::ref daObj = RigResultAccessorFactory::createFromResultAddress(eclipseCase, grid->gridIndex(), porosityModel, adjustedTimeStep, resultIndices[cubeFaceIdx]); cellEdgeResultAccessor->setDataAccessObjectForFace(static_cast(cubeFaceIdx), daObj.p()); } } diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellPlotTools.cpp b/ApplicationCode/ProjectDataModel/Flow/RimWellPlotTools.cpp index 86a84a76b3..45f7bf97f4 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellPlotTools.cpp +++ b/ApplicationCode/ProjectDataModel/Flow/RimWellPlotTools.cpp @@ -111,9 +111,8 @@ std::pair RimWellPlotTools::pressureResultData { for (const auto& pressureDataName : PRESSURE_DATA_NAMES) { - size_t index = eclipseCaseData->results(RiaDefines::MATRIX_MODEL) - ->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, pressureDataName); - if (index != cvf::UNDEFINED_SIZE_T) + if (eclipseCaseData->results(RiaDefines::MATRIX_MODEL) + ->hasResultEntry(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, pressureDataName))) { return std::make_pair(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, pressureDataName), pressureDataName); } @@ -228,10 +227,8 @@ bool RimWellPlotTools::hasFlowData(RimEclipseResultCase* gridCase) for (const QString& channelName : FLOW_DATA_NAMES) { - size_t resultIndex = - eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, channelName); - - if (resultIndex != cvf::UNDEFINED_SIZE_T) return true; + return eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->hasResultEntry(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, + channelName)); } return false; } diff --git a/ApplicationCode/ProjectDataModel/RimCellEdgeColors.cpp b/ApplicationCode/ProjectDataModel/RimCellEdgeColors.cpp index 37997470aa..56f8846274 100644 --- a/ApplicationCode/ProjectDataModel/RimCellEdgeColors.cpp +++ b/ApplicationCode/ProjectDataModel/RimCellEdgeColors.cpp @@ -120,7 +120,7 @@ void RimCellEdgeColors::loadResult() int i; for (i = 0; i < vars.size(); ++i) { - m_reservoirView->currentGridCellResults()->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, vars[i]); + m_reservoirView->currentGridCellResults()->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, vars[i])); int cubeFaceIdx; for (cubeFaceIdx = 0; cubeFaceIdx < 6; ++cubeFaceIdx) { diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index 75610753ff..c7ae4b094e 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -691,8 +691,7 @@ bool RimEclipseCase::loadStaticResultsByName(const std::vector& resultN { for (const auto& resultName : resultNames) { - size_t resultIdx = cellResultsData->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, resultName); - if (resultIdx == cvf::UNDEFINED_SIZE_T) + if (!cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress( RiaDefines::STATIC_NATIVE, resultName))) { foundDataForAllResults = false; } @@ -789,33 +788,33 @@ bool RimEclipseCase::openReserviorCase() results->createPlaceholderResultEntries(); // After the placeholder result for combined transmissibility is created, // make sure the nnc transmissibilities can be addressed by this scalarResultIndex as well - size_t combinedTransResIdx = - results->findScalarResultIndex(RiaDefines::STATIC_NATIVE, RiaDefines::combinedTransmissibilityResultName()); - if (combinedTransResIdx != cvf::UNDEFINED_SIZE_T) + + RigEclipseResultAddress combinedTransmissibilityResAddr(RiaDefines::STATIC_NATIVE, RiaDefines::combinedTransmissibilityResultName()); + if (results->hasResultEntry(combinedTransmissibilityResAddr)) { eclipseCaseData()->mainGrid()->nncData()->setEclResultAddress(RigNNCData::propertyNameCombTrans(), - RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, RiaDefines::combinedTransmissibilityResultName())); + combinedTransmissibilityResAddr); } - size_t combinedWatFluxResIdx = - results->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedWaterFluxResultName()); - if (combinedWatFluxResIdx != cvf::UNDEFINED_SIZE_T) + + RigEclipseResultAddress combinedWaterFluxResAddr(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedWaterFluxResultName()); + if (results->hasResultEntry(combinedWaterFluxResAddr)) { eclipseCaseData()->mainGrid()->nncData()->setEclResultAddress(RigNNCData::propertyNameFluxWat(), - RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedWaterFluxResultName())); + combinedWaterFluxResAddr); } - size_t combinedOilFluxResIdx = - results->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedOilFluxResultName()); - if (combinedOilFluxResIdx != cvf::UNDEFINED_SIZE_T) + + RigEclipseResultAddress combinedOilFluxResAddr(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedOilFluxResultName()); + if (results->hasResultEntry(combinedOilFluxResAddr)) { eclipseCaseData()->mainGrid()->nncData()->setEclResultAddress(RigNNCData::propertyNameFluxOil(), - RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedOilFluxResultName())); + combinedOilFluxResAddr); } - size_t combinedGasFluxResIdx = - results->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedGasFluxResultName()); - if (combinedGasFluxResIdx != cvf::UNDEFINED_SIZE_T) + RigEclipseResultAddress combinedGasFluxResAddr(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedGasFluxResultName()); + + if (results->hasResultEntry(combinedGasFluxResAddr)) { eclipseCaseData()->mainGrid()->nncData()->setEclResultAddress(RigNNCData::propertyNameFluxGas(), - RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, RiaDefines::combinedGasFluxResultName())); + combinedGasFluxResAddr); } } } diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCellColors.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCellColors.cpp index 9ad9ad5fe3..493278c46d 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCellColors.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCellColors.cpp @@ -441,10 +441,9 @@ void RimEclipseCellColors::updateLegendData(size_t currentTimeStep, { RigCaseCellResultsData* gridCellResults = this->currentGridCellResults(); { - size_t scalarSetIndex = gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SOIL"); RigEclipseResultAddress resAddr(RiaDefines::DYNAMIC_NATIVE, "SOIL"); - if ( scalarSetIndex != cvf::UNDEFINED_SIZE_T ) + if ( gridCellResults->ensureKnownResultLoaded(resAddr) ) { double globalMin = 0.0; double globalMax = 1.0; @@ -459,9 +458,9 @@ void RimEclipseCellColors::updateLegendData(size_t currentTimeStep, } { - size_t scalarSetIndex = gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SGAS"); RigEclipseResultAddress resAddr(RiaDefines::DYNAMIC_NATIVE, "SGAS"); - if ( scalarSetIndex != cvf::UNDEFINED_SIZE_T ) + + if ( gridCellResults->ensureKnownResultLoaded(resAddr) ) { double globalMin = 0.0; double globalMax = 1.0; @@ -476,9 +475,9 @@ void RimEclipseCellColors::updateLegendData(size_t currentTimeStep, } { - size_t scalarSetIndex = gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SWAT"); RigEclipseResultAddress resAddr(RiaDefines::DYNAMIC_NATIVE, "SWAT"); - if ( scalarSetIndex != cvf::UNDEFINED_SIZE_T ) + + if ( gridCellResults->ensureKnownResultLoaded(resAddr) ) { double globalMin = 0.0; double globalMax = 1.0; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseContourMapProjection.cpp b/ApplicationCode/ProjectDataModel/RimEclipseContourMapProjection.cpp index 36527bda9b..1152972f8a 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseContourMapProjection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseContourMapProjection.cpp @@ -186,16 +186,16 @@ std::vector RimEclipseContourMapProjection::generateResults(int timeStep if (isColumnResult()) { m_currentResultName = ""; - resultData->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PORO"); - resultData->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "NTG"); - resultData->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "DZ"); + resultData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PORO")); + resultData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "NTG")); + resultData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DZ")); if (m_resultAggregation == RESULTS_OIL_COLUMN || m_resultAggregation == RESULTS_HC_COLUMN) { - resultData->findOrLoadKnownScalarResultForTimeStep(RiaDefines::DYNAMIC_NATIVE, "SOIL", timeStep); + resultData->ensureKnownResultLoadedForTimeStep(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL"), timeStep); } if (m_resultAggregation == RESULTS_GAS_COLUMN || m_resultAggregation == RESULTS_HC_COLUMN) { - resultData->findOrLoadKnownScalarResultForTimeStep(RiaDefines::DYNAMIC_NATIVE, "SGAS", timeStep); + resultData->ensureKnownResultLoadedForTimeStep(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS"), timeStep); } gridResultValues = calculateColumnResult(m_resultAggregation()); } @@ -249,11 +249,11 @@ void RimEclipseContourMapProjection::clearResultVariable() std::vector RimEclipseContourMapProjection::calculateColumnResult(ResultAggregation resultAggregation) const { const RigCaseCellResultsData* resultData = eclipseCase()->results(RiaDefines::MATRIX_MODEL); - size_t poroResultIndex = resultData->findScalarResultIndex(RiaDefines::STATIC_NATIVE, "PORO"); - size_t ntgResultIndex = resultData->findScalarResultIndex(RiaDefines::STATIC_NATIVE, "NTG" ); - size_t dzResultIndex = resultData->findScalarResultIndex(RiaDefines::STATIC_NATIVE, "DZ" ); + bool hasPoroResult = resultData->hasResultEntry(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PORO")); + bool hasNtgResult = resultData->hasResultEntry(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "NTG" )); + bool haDzResult = resultData->hasResultEntry(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "DZ" )); - if (poroResultIndex == cvf::UNDEFINED_SIZE_T || ntgResultIndex == cvf::UNDEFINED_SIZE_T || dzResultIndex == cvf::UNDEFINED_SIZE_T) + if (! (hasPoroResult && hasNtgResult && haDzResult) ) { return std::vector(); } @@ -276,6 +276,7 @@ std::vector RimEclipseContourMapProjection::calculateColumnResult(Result resultValues[cellResultIdx] = soilResults[cellResultIdx]; } } + if (resultAggregation == RESULTS_GAS_COLUMN || resultAggregation == RESULTS_HC_COLUMN) { const std::vector& sgasResults = resultData->cellScalarResults(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS"), timeStep); @@ -285,7 +286,6 @@ std::vector RimEclipseContourMapProjection::calculateColumnResult(Result } } - for (size_t cellResultIdx = 0; cellResultIdx < resultValues.size(); ++cellResultIdx) { resultValues[cellResultIdx] *= poroResults[cellResultIdx] * ntgResults[cellResultIdx] * dzResults[cellResultIdx]; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp index 37c9ab8844..8a8788ae32 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp @@ -772,7 +772,7 @@ void RimEclipseResultDefinition::loadResult() RigCaseCellResultsData* gridCellResults = this->currentGridCellResults(); if (gridCellResults) { - gridCellResults->findOrLoadKnownScalarResult(m_resultType(), m_resultVariable); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(m_resultType(), m_resultVariable)); } } @@ -810,8 +810,8 @@ bool RimEclipseResultDefinition::hasResult() const else if (this->currentGridCellResults() ) { const RigCaseCellResultsData* gridCellResults = this->currentGridCellResults(); - size_t gridScalarResultIndex = gridCellResults->findScalarResultIndex(m_resultType(), m_resultVariable()); - return gridScalarResultIndex != cvf::UNDEFINED_SIZE_T; + + return gridCellResults->hasResultEntry(RigEclipseResultAddress(m_resultType(), m_resultVariable())); } return false; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp index 732727b2f8..d3a13d504f 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp @@ -50,10 +50,11 @@ void RimEclipseStatisticsCaseEvaluator::addNamedResult(RigCaseCellResultsData* d std::vector resAddresses = m_sourceCases[0]->results(RiaDefines::MATRIX_MODEL)->existingResults(); std::vector sourceTimeStepInfos = m_sourceCases[0]->results(RiaDefines::MATRIX_MODEL)->timeStepInfos(resAddresses[0]); - destinationCellResults->findOrCreateScalarResultIndex(resultType, resultName, true); + RigEclipseResultAddress resAddr(resultType, resultName); + destinationCellResults->createResultEntry(resAddr, true); - destinationCellResults->setTimeStepInfos(RigEclipseResultAddress(resultType, resultName), sourceTimeStepInfos); - std::vector< std::vector >& dataValues = destinationCellResults->cellScalarResults(RigEclipseResultAddress(resultType, resultName)); + destinationCellResults->setTimeStepInfos(resAddr, sourceTimeStepInfos); + std::vector< std::vector >& dataValues = destinationCellResults->cellScalarResults(resAddr); dataValues.resize(sourceTimeStepInfos.size()); @@ -144,8 +145,6 @@ void RimEclipseStatisticsCaseEvaluator::evaluateForResults(const QList& if (activeCellCount == 0) continue; - RigCaseCellResultsData* destCellResultsData = m_destinationCase->results(poroModel); - size_t dataAccessTimeStepIndex = timeStepIdx; // Always evaluate statistics once, and always use time step index zero @@ -164,7 +163,8 @@ void RimEclipseStatisticsCaseEvaluator::evaluateForResults(const QList& RimEclipseCase* sourceCase = m_sourceCases.at(caseIdx); // Trigger loading of dataset - sourceCase->results(poroModel)->findOrLoadKnownScalarResultForTimeStep(resultType, resultName, dataAccessTimeStepIndex); + sourceCase->results(poroModel)->ensureKnownResultLoadedForTimeStep(RigEclipseResultAddress(resultType, resultName), + dataAccessTimeStepIndex); cvf::ref resultAccessor = RigResultAccessorFactory::createFromNameAndType(sourceCase->eclipseCaseData(), gridIdx, poroModel, dataAccessTimeStepIndex, resultName, resultType); if (resultAccessor.notNull()) @@ -191,8 +191,6 @@ void RimEclipseStatisticsCaseEvaluator::evaluateForResults(const QList& for (size_t stIdx = 0; stIdx < statisticalResultNames.size(); ++stIdx) { - destCellResultsData->findScalarResultIndex(resultType, statisticalResultNames[stIdx]); - cvf::ref resultModifier = RigResultModifierFactory::createResultModifier(m_destinationCase, grid->gridIndex(), poroModel, diff --git a/ApplicationCode/ProjectDataModel/RimReservoirCellResultsStorage.cpp b/ApplicationCode/ProjectDataModel/RimReservoirCellResultsStorage.cpp index 8a35e5e355..92a52271fc 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirCellResultsStorage.cpp +++ b/ApplicationCode/ProjectDataModel/RimReservoirCellResultsStorage.cpp @@ -272,13 +272,17 @@ void RimReservoirCellResultsStorage::setCellResults(RigCaseCellResultsData* cell for (size_t rIdx = 0; rIdx < m_resultCacheMetaData.size(); ++rIdx) { RimReservoirCellResultsStorageEntryInfo* resInfo = m_resultCacheMetaData[rIdx]; - m_cellResults->findOrCreateScalarResultIndex(resInfo->m_resultType(), resInfo->m_resultName, true); + + RigEclipseResultAddress resAddr(resInfo->m_resultType(), resInfo->m_resultName); + m_cellResults->createResultEntry(resAddr, true); std::vector reportNumbers; // Hack: Using no report step numbers. Not really used except for Flow Diagnostics... reportNumbers.resize(resInfo->m_timeStepDates().size()); - std::vector timeStepInfos = RigEclipseTimeStepInfo::createTimeStepInfos(resInfo->m_timeStepDates(), reportNumbers, resInfo->m_daysSinceSimulationStart()); + std::vector timeStepInfos = RigEclipseTimeStepInfo::createTimeStepInfos(resInfo->m_timeStepDates(), + reportNumbers, + resInfo->m_daysSinceSimulationStart()); - m_cellResults->setTimeStepInfos(RigEclipseResultAddress(resInfo->m_resultType(), resInfo->m_resultName), timeStepInfos); + m_cellResults->setTimeStepInfos(resAddr, timeStepInfos); progress.setProgressDescription(resInfo->m_resultName); @@ -286,7 +290,7 @@ void RimReservoirCellResultsStorage::setCellResults(RigCaseCellResultsData* cell { std::vector* data = nullptr; - data = &(m_cellResults->cellScalarResults(RigEclipseResultAddress(resInfo->m_resultType(), resInfo->m_resultName), tsIdx)); + data = &(m_cellResults->cellScalarResults(resAddr, tsIdx)); quint64 cellCount = 0; stream >> cellCount; diff --git a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp index 5df8119dc9..c050cf0aa8 100644 --- a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp @@ -1304,6 +1304,64 @@ size_t RigCaseCellResultsData::findOrLoadKnownScalarResult(RiaDefines::ResultCat return scalarResultIndex; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RigCaseCellResultsData::ensureKnownResultLoaded(const RigEclipseResultAddress& resultAddress) +{ + size_t resultIndex = cvf::UNDEFINED_SIZE_T; + if (resultAddress.m_resultCatType != RiaDefines::UNDEFINED) + { + resultIndex = findOrLoadKnownScalarResult(resultAddress.m_resultCatType, resultAddress.m_resultName); + } + else + { + resultIndex = findOrLoadKnownScalarResult(resultAddress.m_resultName); + } + + return (resultIndex != cvf::UNDEFINED_SIZE_T); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RigCaseCellResultsData::hasResultEntry(const RigEclipseResultAddress& resultAddress) const +{ + size_t resultIndex = cvf::UNDEFINED_SIZE_T; + if (resultAddress.m_resultCatType != RiaDefines::UNDEFINED) + { + resultIndex = findScalarResultIndex(resultAddress.m_resultCatType, resultAddress.m_resultName); + } + else + { + resultIndex = findScalarResultIndex(resultAddress.m_resultName); + } + + return (resultIndex != cvf::UNDEFINED_SIZE_T); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RigCaseCellResultsData::createResultEntry(const RigEclipseResultAddress& resultAddress, bool needsToBeStored) +{ + findOrCreateScalarResultIndex(resultAddress.m_resultCatType, resultAddress.m_resultName, needsToBeStored); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RigCaseCellResultsData::ensureKnownResultLoadedForTimeStep(const RigEclipseResultAddress& resultAddress, + size_t timeStepIndex) +{ + CAF_ASSERT(resultAddress.m_resultCatType != RiaDefines::UNDEFINED); + + findOrLoadKnownScalarResultForTimeStep(resultAddress.m_resultCatType, + resultAddress.m_resultName, + timeStepIndex); +} + + //-------------------------------------------------------------------------------------------------- /// This method is intended to be used for multicase cross statistical calculations, when /// we need process one timestep at a time, freeing memory as we go. diff --git a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.h b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.h index 051344df6c..a6192328b7 100644 --- a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.h +++ b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.h @@ -115,19 +115,10 @@ public: bool updateResultName(RiaDefines::ResultCatType resultType, QString& oldName, const QString& newName); - // Index based stuff to rewrite/hide --> - - size_t findOrLoadKnownScalarResultForTimeStep(RiaDefines::ResultCatType type, const QString& resultName, size_t timeStepIndex); - size_t findOrLoadKnownScalarResult(RiaDefines::ResultCatType type, const QString& resultName); - size_t findOrLoadKnownScalarResult(const QString& resultName); ///< Simplified search. Assumes unique names across types. - - // Find or create a slot for the results - - size_t findOrCreateScalarResultIndex(RiaDefines::ResultCatType type, const QString& resultName, bool needsToBeStored); - size_t findScalarResultIndex(RiaDefines::ResultCatType type, const QString& resultName) const; - size_t findScalarResultIndex(const QString& resultName) const; - - // <--- + void ensureKnownResultLoadedForTimeStep(const RigEclipseResultAddress& resultAddress, size_t timeStepIndex); + bool ensureKnownResultLoaded(const RigEclipseResultAddress& resultAddress); + bool hasResultEntry(const RigEclipseResultAddress& resultAddress) const; + void createResultEntry(const RigEclipseResultAddress& resultAddress, bool needsToBeStored); // Access the results data @@ -148,6 +139,15 @@ public: const RigEclipseResultInfo* resultInfo(const RigEclipseResultAddress& resVarAddr) const; private: + size_t findOrLoadKnownScalarResult(RiaDefines::ResultCatType type, const QString& resultName); + size_t findOrLoadKnownScalarResult(const QString& resultName); ///< Simplified search. Assumes unique names across types. + size_t findOrLoadKnownScalarResultForTimeStep(RiaDefines::ResultCatType type, + const QString& resultName, + size_t timeStepIndex); + size_t findOrCreateScalarResultIndex(RiaDefines::ResultCatType type, const QString& resultName, bool needsToBeStored); + size_t findScalarResultIndex(RiaDefines::ResultCatType type, const QString& resultName) const; + size_t findScalarResultIndex(const QString& resultName) const; + size_t addStaticScalarResult(RiaDefines::ResultCatType type, const QString& resultName, bool needsToBeStored, diff --git a/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp b/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp index 6777589abe..d4ea42aa8a 100644 --- a/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp @@ -730,10 +730,9 @@ const std::vector* RigEclipseCaseData::resultValues(RiaDefines::Porosity size_t timeStepIndex) { RigCaseCellResultsData* gridCellResults = this->results(porosityModel); - size_t scalarResultIndex = gridCellResults->findOrLoadKnownScalarResult(type, resultName); const std::vector* swatResults = nullptr; - if (scalarResultIndex != cvf::UNDEFINED_SIZE_T) + if (gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(type, resultName))) { swatResults = &(gridCellResults->cellScalarResults(RigEclipseResultAddress(type, resultName), timeStepIndex)); } diff --git a/ApplicationCode/ReservoirDataModel/RigEclipseNativeStatCalc.cpp b/ApplicationCode/ReservoirDataModel/RigEclipseNativeStatCalc.cpp index 0509baca52..bb6d97d268 100644 --- a/ApplicationCode/ReservoirDataModel/RigEclipseNativeStatCalc.cpp +++ b/ApplicationCode/ReservoirDataModel/RigEclipseNativeStatCalc.cpp @@ -101,16 +101,16 @@ size_t RigEclipseNativeStatCalc::timeStepCount() //-------------------------------------------------------------------------------------------------- void RigEclipseNativeStatCalc::mobileVolumeWeightedMean(size_t timeStepIndex, double& mean) { - size_t mobPVResultIndex = m_resultsData->findOrLoadKnownScalarResult(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); + RigEclipseResultAddress mobPorvAddress(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); // For statistics result cases, the pore volume is not available, as RigCaseCellResultsData::createPlaceholderResultEntries // has not been executed - if (mobPVResultIndex == cvf::UNDEFINED_SIZE_T) + if (!m_resultsData->ensureKnownResultLoaded(mobPorvAddress)) { return; } - const std::vector& weights = m_resultsData->cellScalarResults(RigEclipseResultAddress(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()), 0); + const std::vector& weights = m_resultsData->cellScalarResults(mobPorvAddress, 0); const std::vector& values = m_resultsData->cellScalarResults(m_eclipseResultAddress, timeStepIndex); const RigActiveCellInfo* actCellInfo = m_resultsData->activeCellInfo(); diff --git a/ApplicationCode/ReservoirDataModel/RigEclipseNativeVisibleCellsStatCalc.cpp b/ApplicationCode/ReservoirDataModel/RigEclipseNativeVisibleCellsStatCalc.cpp index 2fb8d89fbc..597c4762f9 100644 --- a/ApplicationCode/ReservoirDataModel/RigEclipseNativeVisibleCellsStatCalc.cpp +++ b/ApplicationCode/ReservoirDataModel/RigEclipseNativeVisibleCellsStatCalc.cpp @@ -105,9 +105,11 @@ size_t RigEclipseNativeVisibleCellsStatCalc::timeStepCount() //-------------------------------------------------------------------------------------------------- void RigEclipseNativeVisibleCellsStatCalc::mobileVolumeWeightedMean(size_t timeStepIndex, double &result) { - m_caseData->findOrLoadKnownScalarResult(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); + RigEclipseResultAddress mobPorvAddress(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); - const std::vector& weights = m_caseData->cellScalarResults(RigEclipseResultAddress(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()), 0); + m_caseData->ensureKnownResultLoaded(mobPorvAddress); + + const std::vector& weights = m_caseData->cellScalarResults(mobPorvAddress, 0); const std::vector& values = m_caseData->cellScalarResults(m_resultAddress, timeStepIndex); const RigActiveCellInfo* actCellInfo = m_caseData->activeCellInfo(); diff --git a/ApplicationCode/ReservoirDataModel/RigFlowDiagStatCalc.cpp b/ApplicationCode/ReservoirDataModel/RigFlowDiagStatCalc.cpp index c2f7425a8a..695fc33818 100644 --- a/ApplicationCode/ReservoirDataModel/RigFlowDiagStatCalc.cpp +++ b/ApplicationCode/ReservoirDataModel/RigFlowDiagStatCalc.cpp @@ -119,10 +119,11 @@ void RigFlowDiagStatCalc::mobileVolumeWeightedMean(size_t timeStepIndex, double& if (!eclCase) return; RigCaseCellResultsData* caseCellResultsData = eclCase->results(RiaDefines::MATRIX_MODEL); + RigEclipseResultAddress mobPoreVolResAddr(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); - caseCellResultsData->findOrLoadKnownScalarResult(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); + caseCellResultsData->ensureKnownResultLoaded(mobPoreVolResAddr); - const std::vector& weights = caseCellResultsData->cellScalarResults(RigEclipseResultAddress(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()), 0); + const std::vector& weights = caseCellResultsData->cellScalarResults(mobPoreVolResAddr, 0); const std::vector* values = m_resultsData->resultValues(m_resVarAddr, timeStepIndex); const RigActiveCellInfo* actCellInfo = m_resultsData->activeCellInfo(m_resVarAddr); diff --git a/ApplicationCode/ReservoirDataModel/RigFlowDiagVisibleCellsStatCalc.cpp b/ApplicationCode/ReservoirDataModel/RigFlowDiagVisibleCellsStatCalc.cpp index f92948a8af..fd3cf0d2f4 100644 --- a/ApplicationCode/ReservoirDataModel/RigFlowDiagVisibleCellsStatCalc.cpp +++ b/ApplicationCode/ReservoirDataModel/RigFlowDiagVisibleCellsStatCalc.cpp @@ -109,9 +109,10 @@ void RigFlowDiagVisibleCellsStatCalc::mobileVolumeWeightedMean(size_t timeStepIn RigCaseCellResultsData* caseCellResultsData = eclCase->results(RiaDefines::MATRIX_MODEL); - caseCellResultsData->findOrLoadKnownScalarResult(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); - - const std::vector& weights = caseCellResultsData->cellScalarResults(RigEclipseResultAddress(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()), 0); + RigEclipseResultAddress mobPorvAddr(RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::mobilePoreVolumeName()); + + caseCellResultsData->ensureKnownResultLoaded(mobPorvAddr); + const std::vector& weights = caseCellResultsData->cellScalarResults(mobPorvAddr, 0); const std::vector* values = m_resultsData->resultValues(m_resVarAddr, timeStepIndex); const RigActiveCellInfo* actCellInfo = m_resultsData->activeCellInfo(m_resVarAddr); diff --git a/ApplicationCode/ReservoirDataModel/RigNumberOfFloodedPoreVolumesCalculator.cpp b/ApplicationCode/ReservoirDataModel/RigNumberOfFloodedPoreVolumesCalculator.cpp index 399ea17e1e..536cdc8c98 100644 --- a/ApplicationCode/ReservoirDataModel/RigNumberOfFloodedPoreVolumesCalculator.cpp +++ b/ApplicationCode/ReservoirDataModel/RigNumberOfFloodedPoreVolumesCalculator.cpp @@ -71,21 +71,25 @@ RigNumberOfFloodedPoreVolumesCalculator::RigNumberOfFloodedPoreVolumesCalculator std::vector tracerResAddrs; for (QString tracerName : tracerNames) { - if (gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, tracerName) != cvf::UNDEFINED_SIZE_T) + RigEclipseResultAddress tracerResAddr(RiaDefines::DYNAMIC_NATIVE, tracerName); + if (gridCellResults->ensureKnownResultLoaded(tracerResAddr) ) { - tracerResAddrs.push_back(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, tracerName)); + tracerResAddrs.push_back(tracerResAddr); } progress.incrementProgress(); } std::vector > summedTracersAtAllTimesteps; //TODO: Option for Oil and Gas instead of water + RigEclipseResultAddress flrWatIAddr(RiaDefines::DYNAMIC_NATIVE, "FLRWATI+"); + RigEclipseResultAddress flrWatJAddr(RiaDefines::DYNAMIC_NATIVE, "FLRWATJ+"); + RigEclipseResultAddress flrWatKAddr(RiaDefines::DYNAMIC_NATIVE, "FLRWATK+"); - size_t scalarResultIndexFlowrateI = gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "FLRWATI+"); + bool hasFlowrateI = gridCellResults->ensureKnownResultLoaded(flrWatIAddr); progress.incrementProgress(); - size_t scalarResultIndexFlowrateJ = gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "FLRWATJ+"); + bool hasFlowrateJ = gridCellResults->ensureKnownResultLoaded(flrWatJAddr); progress.incrementProgress(); - size_t scalarResultIndexFlowrateK = gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "FLRWATK+"); + bool hasFlowrateK = gridCellResults->ensureKnownResultLoaded(flrWatKAddr); progress.incrementProgress(); std::vector* > flowrateIatAllTimeSteps; @@ -110,27 +114,27 @@ RigNumberOfFloodedPoreVolumesCalculator::RigNumberOfFloodedPoreVolumesCalculator for (size_t timeStep = 0; timeStep < daysSinceSimulationStart.size(); timeStep++) { const std::vector* flowrateI = nullptr; - if (scalarResultIndexFlowrateI != cvf::UNDEFINED_SIZE_T) + if (hasFlowrateI) { - flowrateI = &(eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "FLRWATI+"), + flowrateI = &(eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(flrWatIAddr, timeStep)); } flowrateIatAllTimeSteps.push_back(flowrateI); const std::vector* flowrateJ = nullptr; - if (scalarResultIndexFlowrateJ != cvf::UNDEFINED_SIZE_T) + if (hasFlowrateJ) { - flowrateJ = &(eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "FLRWATJ+"), + flowrateJ = &(eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(flrWatJAddr, timeStep)); } flowrateJatAllTimeSteps.push_back(flowrateJ); const std::vector* flowrateK = nullptr; - if (scalarResultIndexFlowrateK != cvf::UNDEFINED_SIZE_T) + if (hasFlowrateK) { - flowrateK = &(eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "FLRWATK+"), + flowrateK = &(eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->cellScalarResults(flrWatKAddr, timeStep)); } flowrateKatAllTimeSteps.push_back(flowrateK); diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp b/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp index 4d9e22efe8..62170eee1a 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp @@ -71,8 +71,7 @@ cvf::ref RigResultAccessorFactory::createFromNameAndType(cons return nullptr; } - size_t scalarSetIndex = eclipseCase->results(porosityModel)->findScalarResultIndex(resultType, uiResultName); - if (scalarSetIndex == cvf::UNDEFINED_SIZE_T) + if (!eclipseCase->results(porosityModel)->hasResultEntry(RigEclipseResultAddress(resultType, uiResultName))) { return nullptr; } @@ -91,7 +90,7 @@ cvf::ref RigResultAccessorFactory::createFromNameAndType(cons adjustedTimeStepIndex = 0; } - return createFromResultIdx(eclipseCase, gridIndex, porosityModel, adjustedTimeStepIndex, RigEclipseResultAddress(resultType, uiResultName)); + return createFromResultAddress(eclipseCase, gridIndex, porosityModel, adjustedTimeStepIndex, RigEclipseResultAddress(resultType, uiResultName)); } //-------------------------------------------------------------------------------------------------- @@ -148,13 +147,12 @@ cvf::ref RigResultAccessorFactory::createNativeFromUiResultNa return nullptr; } - size_t scalarSetIndex = eclipseCase->results(porosityModel)->findScalarResultIndex(uiResultName); - if (scalarSetIndex == cvf::UNDEFINED_SIZE_T) + if (!eclipseCase->results(porosityModel)->hasResultEntry(RigEclipseResultAddress(uiResultName))) { return nullptr; } - return createFromResultIdx(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(uiResultName)); + return createFromResultAddress(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(uiResultName)); } //-------------------------------------------------------------------------------------------------- @@ -302,11 +300,11 @@ cvf::ref RigResultAccessorFactory::createDerivedResultAccesso //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -cvf::ref RigResultAccessorFactory::createFromResultIdx(const RigEclipseCaseData* eclipseCase, - size_t gridIndex, - RiaDefines::PorosityModelType porosityModel, - size_t timeStepIndex, - const RigEclipseResultAddress& resultAddress) +cvf::ref RigResultAccessorFactory::createFromResultAddress(const RigEclipseCaseData* eclipseCase, + size_t gridIndex, + RiaDefines::PorosityModelType porosityModel, + size_t timeStepIndex, + const RigEclipseResultAddress& resultAddress) { if ( !resultAddress.isValid() ) { diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.h b/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.h index e810072a47..3488fae678 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.h +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.h @@ -55,11 +55,11 @@ public: RiaDefines::ResultCatType resultType); static cvf::ref - createFromResultIdx(const RigEclipseCaseData* eclipseCase, - size_t gridIndex, - RiaDefines::PorosityModelType porosityModel, - size_t timeStepIndex, - const RigEclipseResultAddress& resultIndex); + createFromResultAddress(const RigEclipseCaseData* eclipseCase, + size_t gridIndex, + RiaDefines::PorosityModelType porosityModel, + size_t timeStepIndex, + const RigEclipseResultAddress& resultIndex); diff --git a/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.cpp b/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.cpp index 5d13eb1a4c..053619885b 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.cpp +++ b/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.cpp @@ -26,28 +26,6 @@ #include -//-------------------------------------------------------------------------------------------------- -/// This function must be harmonized with RigResultAccessorFactory::createNativeResultAccessor() -//-------------------------------------------------------------------------------------------------- -cvf::ref RigResultModifierFactory::createResultModifier(RigEclipseCaseData* eclipseCase, - size_t gridIndex, - RiaDefines::PorosityModelType porosityModel, - size_t timeStepIndex, - QString& uiResultName) -{ - if (!eclipseCase) return nullptr; - - if (!eclipseCase->results(porosityModel) || !eclipseCase->activeCellInfo(porosityModel)) - { - return nullptr; - } - - eclipseCase->results(porosityModel)->findScalarResultIndex(uiResultName); - - return createResultModifier(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(uiResultName)); -} - - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.h b/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.h index a292baed51..e9a0a1f68b 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.h +++ b/ApplicationCode/ReservoirDataModel/RigResultModifierFactory.h @@ -28,13 +28,7 @@ class RigEclipseResultAddress; class RigResultModifierFactory { public: - static cvf::ref - createResultModifier(RigEclipseCaseData* eclipseCase, - size_t gridIndex, - RiaDefines::PorosityModelType porosityModel, - size_t timeStepIndex, - QString& uiResultName); - + static cvf::ref createResultModifier(RigEclipseCaseData* eclipseCase, size_t gridIndex, diff --git a/ApplicationCode/SocketInterface/RiaNNCCommands.cpp b/ApplicationCode/SocketInterface/RiaNNCCommands.cpp index b23c06e7f6..62cabeda67 100644 --- a/ApplicationCode/SocketInterface/RiaNNCCommands.cpp +++ b/ApplicationCode/SocketInterface/RiaNNCCommands.cpp @@ -350,9 +350,9 @@ public: server->errorMessageDialog()->showMessage(RiaSocketServer::tr("ResInsight SocketServer: \n") + RiaSocketServer::tr("Could not find the property named: \"%2\"").arg(propertyName)); return true; } - QString totalPropName = QString("%1IJK").arg(propertyName); - rimCase->results(m_porosityModelEnum)->findOrLoadKnownScalarResult(totalPropName); - nncData->setEclResultAddress(propertyName, RigEclipseResultAddress(totalPropName)); + RigEclipseResultAddress resAddr(QString("%1IJK").arg(propertyName)); + rimCase->results(m_porosityModelEnum)->ensureKnownResultLoaded(resAddr); + nncData->setEclResultAddress(propertyName, resAddr); } // Create a list of all the requested time steps @@ -426,22 +426,19 @@ private: static bool scalarResultExistsOrCreate(RigCaseCellResultsData* results, QString propertyName) { - size_t scalarResultIndex = results->findOrLoadKnownScalarResult(propertyName); - if (scalarResultIndex == cvf::UNDEFINED_SIZE_T) + RigEclipseResultAddress resAddr(RiaDefines::GENERATED, propertyName); + + if ( !results->ensureKnownResultLoaded(resAddr) ) { - scalarResultIndex = results->findOrCreateScalarResultIndex(RiaDefines::GENERATED, propertyName, true); - } - - if (scalarResultIndex != cvf::UNDEFINED_SIZE_T) - { - std::vector< std::vector >* scalarResultFrames = nullptr; - scalarResultFrames = &(results->cellScalarResults(RigEclipseResultAddress(propertyName))); - size_t timeStepCount = results->maxTimeStepCount(); - scalarResultFrames->resize(timeStepCount); - return true; + results->createResultEntry(resAddr, true); } - return false; + std::vector< std::vector >* scalarResultFrames = nullptr; + scalarResultFrames = &(results->cellScalarResults(resAddr)); + size_t timeStepCount = results->maxTimeStepCount(); + scalarResultFrames->resize(timeStepCount); + + return true; } public: bool interpretMore(RiaSocketServer* server, QTcpSocket* currentClient) override diff --git a/ApplicationCode/SocketInterface/RiaPropertyDataCommands.cpp b/ApplicationCode/SocketInterface/RiaPropertyDataCommands.cpp index 640c22eff1..320cf5052a 100644 --- a/ApplicationCode/SocketInterface/RiaPropertyDataCommands.cpp +++ b/ApplicationCode/SocketInterface/RiaPropertyDataCommands.cpp @@ -73,18 +73,14 @@ public: // Find the requested data - size_t scalarResultIndex = cvf::UNDEFINED_SIZE_T; std::vector< std::vector >* scalarResultFrames = nullptr; if (rimCase && rimCase->results(porosityModelEnum)) { - scalarResultIndex = rimCase->results(porosityModelEnum)->findOrLoadKnownScalarResult(propertyName); - - if (scalarResultIndex != cvf::UNDEFINED_SIZE_T) + if (rimCase->results(porosityModelEnum)->ensureKnownResultLoaded(RigEclipseResultAddress(propertyName))) { scalarResultFrames = &(rimCase->results(porosityModelEnum)->cellScalarResults(RigEclipseResultAddress(propertyName))); } - } if (scalarResultFrames == nullptr) @@ -245,7 +241,7 @@ public: porosityModelEnum = RiaDefines::FRACTURE_MODEL; } - size_t scalarResultIndex = cvf::UNDEFINED_SIZE_T; + bool isResultsLoaded = false; RigEclipseResultAddress resVarAddr(propertyName); @@ -259,11 +255,11 @@ public: // Find the requested data if (rimCase && rimCase->results(porosityModelEnum)) { - scalarResultIndex = rimCase->results(porosityModelEnum)->findOrLoadKnownScalarResult(propertyName); + isResultsLoaded = rimCase->results(porosityModelEnum)->ensureKnownResultLoaded(resVarAddr); } } - if (scalarResultIndex == cvf::UNDEFINED_SIZE_T) + if (!isResultsLoaded) { server->errorMessageDialog()->showMessage(RiaSocketServer::tr("ResInsight SocketServer: \n") + RiaSocketServer::tr("Could not find the %1 model property named: \"%2\"").arg(porosityModelName).arg(propertyName)); @@ -414,13 +410,11 @@ public: if (rimCase && rimCase->results(m_porosityModelEnum)) { - size_t scalarResultIndex = cvf::UNDEFINED_SIZE_T; - scalarResultIndex = rimCase->results(m_porosityModelEnum)->findOrLoadKnownScalarResult(RiaDefines::GENERATED, propertyName); RigEclipseResultAddress eclResAddr(RiaDefines::GENERATED, propertyName); - if (scalarResultIndex == cvf::UNDEFINED_SIZE_T) + if (!rimCase->results(m_porosityModelEnum)->ensureKnownResultLoaded(eclResAddr)) { - scalarResultIndex = rimCase->results(m_porosityModelEnum)->findOrCreateScalarResultIndex(RiaDefines::GENERATED, propertyName, true); + rimCase->results(m_porosityModelEnum)->createResultEntry(eclResAddr, true); RigEclipseResultAddress addrToMaxTimeStepCountResult; rimCase->results(m_porosityModelEnum)->maxTimeStepCount(&addrToMaxTimeStepCountResult); @@ -428,15 +422,12 @@ public: rimCase->results(m_porosityModelEnum)->setTimeStepInfos(eclResAddr, timeStepInfos); } - if (scalarResultIndex != cvf::UNDEFINED_SIZE_T) - { - scalarResultFrames = &(rimCase->results(m_porosityModelEnum)->cellScalarResults(eclResAddr)); - size_t timeStepCount = rimCase->results(m_porosityModelEnum)->maxTimeStepCount(); - scalarResultFrames->resize(timeStepCount); + scalarResultFrames = &(rimCase->results(m_porosityModelEnum)->cellScalarResults(eclResAddr)); + size_t timeStepCount = rimCase->results(m_porosityModelEnum)->maxTimeStepCount(); + scalarResultFrames->resize(timeStepCount); - m_currentEclResultAddress = eclResAddr; - m_currentPropertyName = propertyName; - } + m_currentEclResultAddress = eclResAddr; + m_currentPropertyName = propertyName; } if (scalarResultFrames == nullptr) @@ -804,27 +795,23 @@ public: } - size_t scalarResultIndex = cvf::UNDEFINED_SIZE_T; std::vector< std::vector >* scalarResultFrames = nullptr; if (rimCase && rimCase->results(m_porosityModelEnum)) { - scalarResultIndex = rimCase->results(m_porosityModelEnum)->findOrLoadKnownScalarResult(RiaDefines::GENERATED, propertyName); + RigEclipseResultAddress resAddr(RiaDefines::GENERATED, propertyName); - if (scalarResultIndex == cvf::UNDEFINED_SIZE_T) + if ( !rimCase->results(m_porosityModelEnum)->ensureKnownResultLoaded(resAddr)) { - scalarResultIndex = rimCase->results(m_porosityModelEnum)->findOrCreateScalarResultIndex(RiaDefines::GENERATED, propertyName, true); + rimCase->results(m_porosityModelEnum)->createResultEntry(resAddr, true); } - if (scalarResultIndex != cvf::UNDEFINED_SIZE_T) - { - m_currentResultAddress = RigEclipseResultAddress(RiaDefines::GENERATED, propertyName); - scalarResultFrames = &(rimCase->results(m_porosityModelEnum)->cellScalarResults(m_currentResultAddress)); - size_t timeStepCount = rimCase->results(m_porosityModelEnum)->maxTimeStepCount(); - scalarResultFrames->resize(timeStepCount); + m_currentResultAddress = resAddr; + scalarResultFrames = &(rimCase->results(m_porosityModelEnum)->cellScalarResults(m_currentResultAddress)); + size_t timeStepCount = rimCase->results(m_porosityModelEnum)->maxTimeStepCount(); + scalarResultFrames->resize(timeStepCount); - m_currentPropertyName = propertyName; - } + m_currentPropertyName = propertyName; } if (scalarResultFrames == nullptr) @@ -1206,7 +1193,7 @@ public: if (rimCase && rimCase->results(porosityModel)) { - rimCase->results(porosityModel)->findOrLoadKnownScalarResult(propertyName); + rimCase->results(porosityModel)->ensureKnownResultLoaded(RigEclipseResultAddress( propertyName) ); } std::vector requestedTimesteps; diff --git a/ApplicationCode/UserInterface/RiuPvtPlotUpdater.cpp b/ApplicationCode/UserInterface/RiuPvtPlotUpdater.cpp index 2094f0ac55..8a1b544533 100644 --- a/ApplicationCode/UserInterface/RiuPvtPlotUpdater.cpp +++ b/ApplicationCode/UserInterface/RiuPvtPlotUpdater.cpp @@ -153,10 +153,10 @@ bool RiuPvtPlotUpdater::queryDataAndUpdatePlot(const RimEclipseView& eclipseView // The following calls will read results from file in preparation for the queries below RigCaseCellResultsData* cellResultsData = eclipseCaseData->results(RiaDefines::MATRIX_MODEL); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "RS"); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "RV"); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "PRESSURE"); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "PVTNUM"); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "RS")); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "RV")); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "PRESSURE")); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "PVTNUM")); cvf::ref rsAccessor = RigResultAccessorFactory::createFromNameAndType(eclipseCaseData, gridIndex, RiaDefines::MATRIX_MODEL, timeStepIndex, "RS", RiaDefines::DYNAMIC_NATIVE); cvf::ref rvAccessor = RigResultAccessorFactory::createFromNameAndType(eclipseCaseData, gridIndex, RiaDefines::MATRIX_MODEL, timeStepIndex, "RV", RiaDefines::DYNAMIC_NATIVE); diff --git a/ApplicationCode/UserInterface/RiuRelativePermeabilityPlotUpdater.cpp b/ApplicationCode/UserInterface/RiuRelativePermeabilityPlotUpdater.cpp index ded19c3afb..96480d5aad 100644 --- a/ApplicationCode/UserInterface/RiuRelativePermeabilityPlotUpdater.cpp +++ b/ApplicationCode/UserInterface/RiuRelativePermeabilityPlotUpdater.cpp @@ -150,9 +150,9 @@ bool RiuRelativePermeabilityPlotUpdater::queryDataAndUpdatePlot(const RimEclipse // Make sure we load the results that we'll query below RigCaseCellResultsData* cellResultsData = eclipseCaseData->results(RiaDefines::MATRIX_MODEL); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SWAT"); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SGAS"); - cellResultsData->findOrLoadKnownScalarResult(RiaDefines::STATIC_NATIVE, "SATNUM"); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); + cellResultsData->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::STATIC_NATIVE, "SATNUM")); // Fetch SWAT and SGAS cell values for the selected cell const size_t timeStepIndex = static_cast(eclipseView.currentTimeStep()); diff --git a/ApplicationCode/UserInterface/RiuResultTextBuilder.cpp b/ApplicationCode/UserInterface/RiuResultTextBuilder.cpp index 0a9247e0a3..3bf19dbde8 100644 --- a/ApplicationCode/UserInterface/RiuResultTextBuilder.cpp +++ b/ApplicationCode/UserInterface/RiuResultTextBuilder.cpp @@ -470,13 +470,13 @@ void RiuResultTextBuilder::appendTextFromResultColors(RigEclipseCaseData* eclips RigCaseCellResultsData* gridCellResults = resultColors->currentGridCellResults(); if (gridCellResults) { - gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SOIL"); - gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SGAS"); - gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SWAT"); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL")); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); - cvf::ref dataAccessObjectX = RigResultAccessorFactory::createFromResultIdx(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL")); - cvf::ref dataAccessObjectY = RigResultAccessorFactory::createFromResultIdx(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); - cvf::ref dataAccessObjectZ = RigResultAccessorFactory::createFromResultIdx(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); + cvf::ref dataAccessObjectX = RigResultAccessorFactory::createFromResultAddress(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL")); + cvf::ref dataAccessObjectY = RigResultAccessorFactory::createFromResultAddress(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); + cvf::ref dataAccessObjectZ = RigResultAccessorFactory::createFromResultAddress(eclipseCase, gridIndex, porosityModel, timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); double scalarValue = 0.0; @@ -628,7 +628,7 @@ QString RiuResultTextBuilder::cellEdgeResultDetails() } RiaDefines::PorosityModelType porosityModel = m_reservoirView->cellResult()->porosityModel(); - cvf::ref resultAccessor = RigResultAccessorFactory::createFromResultIdx(m_reservoirView->eclipseCase()->eclipseCaseData(), + cvf::ref resultAccessor = RigResultAccessorFactory::createFromResultAddress(m_reservoirView->eclipseCase()->eclipseCaseData(), m_gridIndex, porosityModel, adjustedTimeStep, @@ -753,15 +753,15 @@ QString RiuResultTextBuilder::cellResultText(RimEclipseCellColors* resultColors) RigCaseCellResultsData* gridCellResults = m_reservoirView->cellResult()->currentGridCellResults(); if (gridCellResults) { - gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SOIL"); - gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SGAS"); - gridCellResults->findOrLoadKnownScalarResult(RiaDefines::DYNAMIC_NATIVE, "SWAT"); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL")); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); + gridCellResults->ensureKnownResultLoaded(RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); RiaDefines::PorosityModelType porosityModel = resultColors->porosityModel(); - cvf::ref dataAccessObjectX = RigResultAccessorFactory::createFromResultIdx(eclipseCaseData, m_gridIndex, porosityModel, m_timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL")); - cvf::ref dataAccessObjectY = RigResultAccessorFactory::createFromResultIdx(eclipseCaseData, m_gridIndex, porosityModel, m_timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); - cvf::ref dataAccessObjectZ = RigResultAccessorFactory::createFromResultIdx(eclipseCaseData, m_gridIndex, porosityModel, m_timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); + cvf::ref dataAccessObjectX = RigResultAccessorFactory::createFromResultAddress(eclipseCaseData, m_gridIndex, porosityModel, m_timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SOIL")); + cvf::ref dataAccessObjectY = RigResultAccessorFactory::createFromResultAddress(eclipseCaseData, m_gridIndex, porosityModel, m_timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SGAS")); + cvf::ref dataAccessObjectZ = RigResultAccessorFactory::createFromResultAddress(eclipseCaseData, m_gridIndex, porosityModel, m_timeStepIndex, RigEclipseResultAddress(RiaDefines::DYNAMIC_NATIVE, "SWAT")); double scalarValue = 0.0;