#3532 LGR export. Do not lookup PORO result during temp LGR creation/export

This commit is contained in:
Bjørn Erik Jensen 2018-10-22 10:24:06 +02:00
parent b316aff35a
commit f495c38406
3 changed files with 6 additions and 69 deletions

View File

@ -224,33 +224,11 @@ std::vector<LgrInfo> RicExportLgrFeature::buildOneLgrPerMainCell(RimEclipseCase*
const caf::VecIjk& lgrSizes)
{
std::vector<LgrInfo> lgrs;
eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadScalarResult(RiaDefines::STATIC_NATIVE, "PORO");
cvf::ref<RigResultAccessor> poroAccessObject =
RigResultAccessorFactory::createFromUiResultName(eclipseCase->eclipseCaseData(), 0, RiaDefines::MATRIX_MODEL, 0, "PORO");
int firstLgrId = firstAvailableLgrId(eclipseCase->mainGrid());
bool poroExists = !poroAccessObject.isNull();
int lgrCount = 0;
for (const auto& intersectingCell : intersectingCells)
{
size_t globCellIndex = intersectingCell.globalCellIndex();
double poro = poroExists ? poroAccessObject->cellScalarGlobIdx(globCellIndex) : std::numeric_limits<double>::infinity();
std::vector<double> lgrValues;
for (size_t k = 0; k < lgrSizes.k(); k++)
{
for (size_t j = 0; j < lgrSizes.j(); j++)
{
for (size_t i = 0; i < lgrSizes.i(); i++)
{
lgrValues.push_back(poro);
}
}
}
caf::VecIjk mainGridFirstCell(intersectingCell.localCellIndexI(),
intersectingCell.localCellIndexJ(),
intersectingCell.localCellIndexK());
@ -260,7 +238,6 @@ std::vector<LgrInfo> RicExportLgrFeature::buildOneLgrPerMainCell(RimEclipseCase*
int currLgrId = firstLgrId + lgrCount++;
LgrInfo lgrInfo(currLgrId, QString("LGR_%1").arg(currLgrId), lgrSizes, mainGridFirstCell, mainGridEndCell);
if(poroExists) lgrInfo.values = lgrValues;
lgrs.push_back(lgrInfo);
}
@ -276,10 +253,6 @@ std::vector<LgrInfo> RicExportLgrFeature::buildSingleLgr(RimEclipseCase* eclipse
{
std::vector<LgrInfo> lgrs;
eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadScalarResult(RiaDefines::STATIC_NATIVE, "PORO");
cvf::ref<RigResultAccessor> poroAccessObject =
RigResultAccessorFactory::createFromUiResultName(eclipseCase->eclipseCaseData(), 0, RiaDefines::MATRIX_MODEL, 0, "PORO");
// Find min and max IJK
auto iRange = initRange();
auto jRange = initRange();
@ -295,34 +268,6 @@ std::vector<LgrInfo> RicExportLgrFeature::buildSingleLgr(RimEclipseCase* eclipse
kRange.second = std::max(cell.localCellIndexK(), kRange.second);
}
bool poroExists = !poroAccessObject.isNull();
auto mainGrid = eclipseCase->mainGrid();
std::vector<double> lgrValues;
for (size_t mainK = kRange.first; mainK <= kRange.second; mainK++)
{
for (size_t mainJ = jRange.first; mainJ <= jRange.second; mainJ++)
{
for (size_t mainI = iRange.first; mainI <= iRange.second; mainI++)
{
size_t globCellIndex = mainGrid->cellIndexFromIJK(mainI, mainJ, mainK);
double poro = poroExists ? poroAccessObject->cellScalarGlobIdx(globCellIndex) : std::numeric_limits<double>::infinity();
for (size_t k = 0; k < lgrSizesPerMainGridCell.k(); k++)
{
for (size_t j = 0; j < lgrSizesPerMainGridCell.j(); j++)
{
for (size_t i = 0; i < lgrSizesPerMainGridCell.i(); i++)
{
lgrValues.push_back(poro);
}
}
}
}
}
}
int lgrId = firstAvailableLgrId(eclipseCase->mainGrid());
caf::VecIjk lgrSizes((iRange.second - iRange.first + 1) * lgrSizesPerMainGridCell.i(),
(jRange.second - jRange.first + 1) * lgrSizesPerMainGridCell.j(),
@ -331,7 +276,6 @@ std::vector<LgrInfo> RicExportLgrFeature::buildSingleLgr(RimEclipseCase* eclipse
caf::VecIjk mainGridEndCell(iRange.second, jRange.second, kRange.second);
LgrInfo lgrInfo(lgrId, QString("LGR_%1").arg(lgrId), lgrSizes, mainGridStartCell, mainGridEndCell);
if(poroExists) lgrInfo.values = lgrValues;
lgrs.push_back(lgrInfo);
return lgrs;

View File

@ -67,7 +67,7 @@ public:
int id;
QString name;
caf::VecIjk sizes;
std::vector<double> values;
//std::vector<double> values;
caf::VecIjk mainGridStartCell;
caf::VecIjk mainGridEndCell;

View File

@ -209,16 +209,7 @@ void RicCreateTemporaryLgrFeature::createLgr(LgrInfo& lgrInfo, RigMainGrid* main
RigCell& cell = mainGrid->globalCellArray()[cellStartIndex + gridLocalCellIndex];
cell.setGridLocalCellIndex(gridLocalCellIndex);
// Set parent cell
if (mainCellIndex == -1)
{
cell.setParentCellIndex(cvf::UNDEFINED_SIZE_T);
}
else
{
cell.setParentCellIndex(mainCellIndex);
}
cell.setParentCellIndex(mainCellIndex);
// Corner coordinates
{
@ -227,8 +218,10 @@ void RicCreateTemporaryLgrFeature::createLgr(LgrInfo& lgrInfo, RigMainGrid* main
mainGrid->cellCornerVertices(mainCellIndex, vertices.data());
auto cellCounts = lgrInfo.sizesPerMainGridCell();
auto lgrCoords =
RigCellGeometryTools::createHexCornerCoords(vertices, cellCounts.i(), cellCounts.j(), cellCounts.k());
auto lgrCoords = RigCellGeometryTools::createHexCornerCoords(vertices,
cellCounts.i(),
cellCounts.j(),
cellCounts.k());
size_t subI = lgrI % lgrSizePerMainCell.i();
size_t subJ = lgrJ % lgrSizePerMainCell.j();