mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-26 07:00:17 -05:00
Refactor: Modernize RigEclipseCaseData grids api.
This commit is contained in:
1 parent
c7e86ce0d7
commit
e88e436108
9 files changed
+40
-91
No files matched your search
@@ -474,8 +474,7 @@ void RifReaderEclipseWell::readWellCells( RifEclipseRestartDataAccess* restartDa
|
||||
sameCount = true;
|
||||
}
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
eclipseCaseData->allGrids( &grids );
|
||||
auto grids = eclipseCaseData->allGrids();
|
||||
|
||||
cvf::Collection<RigSimWellData> wells;
|
||||
caf::ProgressInfo progress( well_info_get_num_wells( ert_well_info ), "" );
|
||||
|
||||
@@ -41,8 +41,7 @@ void RivReservoirPartMgr::clearAndSetReservoir( RivCellSetEnum cellSetType, RimE
|
||||
{
|
||||
RigEclipseCaseData* eclipseCaseData = eclipseCase->eclipseCaseData();
|
||||
|
||||
std::vector<const RigGridBase*> grids;
|
||||
eclipseCaseData->allGrids( &grids );
|
||||
auto grids = eclipseCaseData->allGrids();
|
||||
for ( size_t i = 0; i < grids.size(); ++i )
|
||||
{
|
||||
m_allGrids.push_back( new RivGridPartMgr( cellSetType, eclipseCase, grids[i], i ) );
|
||||
|
||||
@@ -266,8 +266,7 @@ void RivReservoirViewPartMgr::createGeometry( RivCellSetEnum geometryType )
|
||||
m_geometries[geometryType].clearAndSetReservoir( geometryType, m_reservoirView->eclipseCase(), m_reservoirView );
|
||||
m_geometries[geometryType].setTransform( m_scaleTransform.p() );
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
res->allGrids( &grids );
|
||||
auto grids = res->allGrids();
|
||||
|
||||
for ( size_t i = 0; i < grids.size(); ++i )
|
||||
{
|
||||
@@ -431,8 +430,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredNoneWellCellGeometry( size_t
|
||||
m_propFilteredGeometryFrames[frameIndex]->clearAndSetReservoir( PROPERTY_FILTERED, m_reservoirView->eclipseCase(), m_reservoirView );
|
||||
m_propFilteredGeometryFrames[frameIndex]->setTransform( m_scaleTransform.p() );
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
res->allGrids( &grids );
|
||||
auto grids = res->allGrids();
|
||||
|
||||
bool hasActiveCellFilters = m_reservoirView->cellFilterCollection()->hasActiveFilters();
|
||||
bool hasVisibleWellCells = m_reservoirView->wellCollection()->hasVisibleWellCells();
|
||||
@@ -513,8 +511,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredWellGeometry( size_t frameIn
|
||||
m_reservoirView );
|
||||
m_propFilteredWellGeometryFrames[frameIndex]->setTransform( m_scaleTransform.p() );
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
res->allGrids( &grids );
|
||||
auto grids = res->allGrids();
|
||||
|
||||
bool hasActiveCellFilters = m_reservoirView->cellFilterCollection()->hasActiveFilters();
|
||||
bool hasVisibleWellCells = m_reservoirView->wellCollection()->hasVisibleWellCells();
|
||||
|
||||
@@ -393,8 +393,7 @@ void RimStreamlineInViewCollection::findStartCells( int
|
||||
// get the simulation wells
|
||||
const cvf::Collection<RigSimWellData>& simWellData = eclipseCase()->eclipseCaseData()->wellResults();
|
||||
|
||||
std::vector<const RigGridBase*> grids;
|
||||
eclipseCase()->eclipseCaseData()->allGrids( &grids );
|
||||
auto grids = eclipseCase()->eclipseCaseData()->allGrids();
|
||||
|
||||
// go through all sim wells and find all open producer and injector cells for the given timestep
|
||||
for ( auto& swdata : simWellData )
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
#include "Well/RigWellResultFrame.h"
|
||||
#include "Well/RigWellResultPoint.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
#include <array>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -99,39 +97,33 @@ void RigEclipseCaseData::setMainGrid( std::shared_ptr<RigMainGrid> mainGrid )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigEclipseCaseData::allGrids( std::vector<RigGridBase*>* grids )
|
||||
std::vector<RigGridBase*> RigEclipseCaseData::allGrids()
|
||||
{
|
||||
CVF_ASSERT( grids );
|
||||
if ( !m_mainGrid ) return {};
|
||||
|
||||
if ( !m_mainGrid )
|
||||
std::vector<RigGridBase*> grids;
|
||||
for ( size_t i = 0; i < m_mainGrid->gridCount(); i++ )
|
||||
{
|
||||
return;
|
||||
grids.push_back( m_mainGrid->gridByIndex( i ) );
|
||||
}
|
||||
|
||||
size_t i;
|
||||
for ( i = 0; i < m_mainGrid->gridCount(); i++ )
|
||||
{
|
||||
grids->push_back( m_mainGrid->gridByIndex( i ) );
|
||||
}
|
||||
return grids;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigEclipseCaseData::allGrids( std::vector<const RigGridBase*>* grids ) const
|
||||
std::vector<const RigGridBase*> RigEclipseCaseData::allGrids() const
|
||||
{
|
||||
CVF_ASSERT( grids );
|
||||
if ( !m_mainGrid ) return {};
|
||||
|
||||
if ( !m_mainGrid )
|
||||
std::vector<const RigGridBase*> grids;
|
||||
for ( size_t i = 0; i < m_mainGrid->gridCount(); i++ )
|
||||
{
|
||||
return;
|
||||
grids.push_back( m_mainGrid->gridByIndex( i ) );
|
||||
}
|
||||
|
||||
size_t i;
|
||||
for ( i = 0; i < m_mainGrid->gridCount(); i++ )
|
||||
{
|
||||
grids->push_back( m_mainGrid->gridByIndex( i ) );
|
||||
}
|
||||
return grids;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -167,12 +159,12 @@ const RigGridBase* RigEclipseCaseData::grid( const QString& gridName ) const
|
||||
return m_mainGrid.get();
|
||||
}
|
||||
|
||||
size_t i;
|
||||
for ( i = 0; i < m_mainGrid->gridCount(); i++ )
|
||||
for ( size_t i = 0; i < m_mainGrid->gridCount(); i++ )
|
||||
{
|
||||
const RigGridBase* grid = m_mainGrid->gridByIndex( i );
|
||||
if ( QString::fromStdString( grid->gridName() ) == gridName ) return grid;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -193,35 +185,13 @@ void RigEclipseCaseData::computeWellCellsPrGrid()
|
||||
// If we have computed this already, return
|
||||
if ( !m_wellCellsInGrid.empty() ) return;
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
allGrids( &grids );
|
||||
|
||||
// Debug code used to display grid names and grid sizes
|
||||
/*
|
||||
size_t totCellCount = 0;
|
||||
for (auto g : grids)
|
||||
{
|
||||
qDebug() << g->gridName().data();
|
||||
qDebug() << g->cellCountI() << " " << g->cellCountJ() << " " << g->cellCountK() << " ";
|
||||
|
||||
size_t cellCount = g->cellCount();
|
||||
totCellCount += cellCount;
|
||||
qDebug() << cellCount;
|
||||
|
||||
qDebug() << "\n";
|
||||
}
|
||||
|
||||
qDebug() << "\nTotal cell count " << totCellCount;
|
||||
*/
|
||||
|
||||
size_t gIdx;
|
||||
auto grids = allGrids();
|
||||
|
||||
// Allocate and initialize the arrays
|
||||
|
||||
m_wellCellsInGrid.resize( grids.size() );
|
||||
m_gridCellToResultWellIndex.resize( grids.size() );
|
||||
|
||||
for ( gIdx = 0; gIdx < grids.size(); ++gIdx )
|
||||
for ( size_t gIdx = 0; gIdx < grids.size(); ++gIdx )
|
||||
{
|
||||
if ( m_wellCellsInGrid[gIdx].isNull() || m_wellCellsInGrid[gIdx]->size() != grids[gIdx]->cellCount() )
|
||||
{
|
||||
@@ -236,14 +206,10 @@ void RigEclipseCaseData::computeWellCellsPrGrid()
|
||||
}
|
||||
|
||||
// Fill arrays with data
|
||||
size_t wIdx;
|
||||
for ( wIdx = 0; wIdx < m_simWellData.size(); ++wIdx )
|
||||
for ( size_t wIdx = 0; wIdx < m_simWellData.size(); ++wIdx )
|
||||
{
|
||||
size_t tIdx;
|
||||
for ( tIdx = 0; tIdx < m_simWellData[wIdx]->m_wellCellsTimeSteps.size(); ++tIdx )
|
||||
for ( const RigWellResultFrame& wellCells : m_simWellData[wIdx]->m_wellCellsTimeSteps )
|
||||
{
|
||||
RigWellResultFrame& wellCells = m_simWellData[wIdx]->m_wellCellsTimeSteps[tIdx];
|
||||
|
||||
// Well result branches
|
||||
for ( const auto& wellSegment : wellCells.wellResultBranches() )
|
||||
{
|
||||
@@ -342,10 +308,7 @@ const RigCell& RigEclipseCaseData::cellFromWellResultCell( const RigWellResultPo
|
||||
size_t gridIndex = wellResultPoint.gridIndex();
|
||||
size_t gridCellIndex = wellResultPoint.cellIndex();
|
||||
|
||||
std::vector<const RigGridBase*> grids;
|
||||
allGrids( &grids );
|
||||
|
||||
return grids[gridIndex]->cell( gridCellIndex );
|
||||
return grid( gridIndex )->cell( gridCellIndex );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -363,18 +326,12 @@ bool RigEclipseCaseData::findSharedSourceFace( cvf::StructGridInterface::FaceTyp
|
||||
|
||||
if ( gridIndex != otherGridIndex ) return false;
|
||||
|
||||
std::vector<const RigGridBase*> grids;
|
||||
allGrids( &grids );
|
||||
|
||||
const RigGridBase* grid = grids[gridIndex];
|
||||
const RigGridBase* grid = this->grid( gridIndex );
|
||||
size_t i, j, k;
|
||||
grid->ijkFromCellIndex( gridCellIndex, &i, &j, &k );
|
||||
|
||||
size_t faceIdx;
|
||||
for ( faceIdx = 0; faceIdx < 6; faceIdx++ )
|
||||
for ( cvf::StructGridInterface::FaceType sourceFace : cvf::StructGridInterface::validFaceTypes() )
|
||||
{
|
||||
cvf::StructGridInterface::FaceType sourceFace = static_cast<cvf::StructGridInterface::FaceType>( faceIdx );
|
||||
|
||||
size_t ni, nj, nk;
|
||||
RigGridBase::neighborIJKAtCellFace( i, j, k, sourceFace, &ni, &nj, &nk );
|
||||
|
||||
@@ -537,7 +494,8 @@ std::vector<const RigWellPath*>
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigEclipseCaseData::setVirtualPerforationTransmissibilities( std::shared_ptr<RigVirtualPerforationTransmissibilities> virtualPerforationTransmissibilities )
|
||||
void RigEclipseCaseData::setVirtualPerforationTransmissibilities(
|
||||
std::shared_ptr<RigVirtualPerforationTransmissibilities> virtualPerforationTransmissibilities )
|
||||
{
|
||||
m_virtualPerforationTransmissibilities = virtualPerforationTransmissibilities;
|
||||
}
|
||||
|
||||
@@ -68,12 +68,12 @@ public:
|
||||
std::shared_ptr<const RigMainGrid> mainGridShared() const { return m_mainGrid; }
|
||||
void setMainGrid( std::shared_ptr<RigMainGrid> mainGrid );
|
||||
|
||||
void allGrids( std::vector<RigGridBase*>* grids ); // To be removed
|
||||
void allGrids( std::vector<const RigGridBase*>* grids ) const; // To be removed
|
||||
const RigGridBase* grid( size_t index ) const;
|
||||
RigGridBase* grid( size_t index );
|
||||
size_t gridCount() const;
|
||||
const RigGridBase* grid( const QString& gridName ) const;
|
||||
[[nodiscard]] std::vector<RigGridBase*> allGrids();
|
||||
[[nodiscard]] std::vector<const RigGridBase*> allGrids() const;
|
||||
const RigGridBase* grid( size_t index ) const;
|
||||
RigGridBase* grid( size_t index );
|
||||
size_t gridCount() const;
|
||||
const RigGridBase* grid( const QString& gridName ) const;
|
||||
|
||||
std::shared_ptr<RigCaseCellResultsData> results( RiaDefines::PorosityModelType porosityModel );
|
||||
std::shared_ptr<const RigCaseCellResultsData> results( RiaDefines::PorosityModelType porosityModel ) const;
|
||||
@@ -122,8 +122,8 @@ public:
|
||||
simulationWellBranches( const QString& simWellName, bool includeAllCellCenters, bool useAutoDetectionOfBranches ) const;
|
||||
|
||||
void setVirtualPerforationTransmissibilities( std::shared_ptr<RigVirtualPerforationTransmissibilities> virtualPerforationTransmissibilities );
|
||||
const RigVirtualPerforationTransmissibilities* virtualPerforationTransmissibilities() const;
|
||||
std::shared_ptr<RigVirtualPerforationTransmissibilities> virtualPerforationTransmissibilitiesShared();
|
||||
const RigVirtualPerforationTransmissibilities* virtualPerforationTransmissibilities() const;
|
||||
std::shared_ptr<RigVirtualPerforationTransmissibilities> virtualPerforationTransmissibilitiesShared();
|
||||
std::shared_ptr<const RigVirtualPerforationTransmissibilities> virtualPerforationTransmissibilitiesShared() const;
|
||||
|
||||
void clearWellCellsInGridCache() { m_wellCellsInGrid.clear(); }
|
||||
|
||||
@@ -369,8 +369,7 @@ public:
|
||||
|
||||
if ( rimCase && rimCase->eclipseCaseData() && rimCase->eclipseCaseData()->mainGrid() )
|
||||
{
|
||||
std::vector<RigGridBase*> grids;
|
||||
rimCase->eclipseCaseData()->allGrids( &grids );
|
||||
auto grids = rimCase->eclipseCaseData()->allGrids();
|
||||
|
||||
quint64 byteCount = grids.size() * 3 * sizeof( quint64 );
|
||||
socketStream << byteCount;
|
||||
|
||||
@@ -281,8 +281,7 @@ public:
|
||||
|
||||
// Fetch results
|
||||
const RigWellResultFrame* wellResFrame = currentWellResult->wellResultFrame( timeStepIdx );
|
||||
std::vector<RigGridBase*> grids;
|
||||
rimCase->eclipseCaseData()->allGrids( &grids );
|
||||
auto grids = rimCase->eclipseCaseData()->allGrids();
|
||||
|
||||
for ( const auto& wellResultBranch : wellResFrame->wellResultBranches() )
|
||||
{
|
||||
|
||||
@@ -113,8 +113,7 @@ grpc::Status RiaGrpcSimulationWellService::GetSimulationWellCells( grpc::ServerC
|
||||
{
|
||||
// Fetch results
|
||||
const RigWellResultFrame* wellResFrame = currentWellResult->wellResultFrame( tsIdx );
|
||||
std::vector<RigGridBase*> grids;
|
||||
eclipseCase->eclipseCaseData()->allGrids( &grids );
|
||||
auto grids = eclipseCase->eclipseCaseData()->allGrids();
|
||||
|
||||
for ( size_t bIdx = 0; bIdx < wellResFrame->wellResultBranches().size(); ++bIdx )
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user