mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3532 LGR export. Do not lookup PORO result during temp LGR creation/export
This commit is contained in:
parent
b316aff35a
commit
f495c38406
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user