mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Make sure we only loop over active grids local cells when calculating visibility
This commit is contained in:
committed by
Magne Sjaastad
parent
db20065e1e
commit
036ed8b70e
@@ -604,11 +604,11 @@ void RivReservoirViewPartMgr::computeNativeVisibility( cvf::UByteArray*
|
||||
|
||||
if ( auto activeGrid = dynamic_cast<const RigActiveCellGrid*>( grid ) )
|
||||
{
|
||||
auto reservoirIndices = activeGrid->activeReservoirCellIndices();
|
||||
auto cellIndices = activeGrid->activeLocalCellIndices();
|
||||
#pragma omp parallel for
|
||||
for ( int i = 0; i < static_cast<int>( reservoirIndices.size() ); i++ )
|
||||
for ( int i = 0; i < static_cast<int>( cellIndices.size() ); i++ )
|
||||
{
|
||||
size_t cellIndex = reservoirIndices[i];
|
||||
size_t cellIndex = cellIndices[i];
|
||||
|
||||
if ( ( !activeCellsIsVisible ) || ( *cellIsInWellStatuses )[cellIndex] )
|
||||
{
|
||||
|
@@ -112,14 +112,16 @@ size_t RigActiveCellGrid::totalActiveCellCount() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<size_t> RigActiveCellGrid::activeReservoirCellIndices() const
|
||||
std::vector<size_t> RigActiveCellGrid::activeLocalCellIndices() const
|
||||
{
|
||||
std::vector<size_t> indices;
|
||||
indices.reserve( m_nativeCells.size() );
|
||||
const auto maxCellIdx = cellCount();
|
||||
|
||||
for ( const auto& [index, cell] : m_nativeCells )
|
||||
{
|
||||
indices.emplace_back( index );
|
||||
// only add cells indexes that belongs to our grid, not subgrids
|
||||
if ( index < maxCellIdx ) indices.emplace_back( index );
|
||||
}
|
||||
|
||||
return indices;
|
||||
|
@@ -34,7 +34,7 @@ public:
|
||||
size_t totalCellCount() const override;
|
||||
size_t totalActiveCellCount() const;
|
||||
|
||||
std::vector<size_t> activeReservoirCellIndices() const;
|
||||
std::vector<size_t> activeLocalCellIndices() const;
|
||||
|
||||
protected: // only for use by file readers!
|
||||
friend class RifReaderOpmCommonActive;
|
||||
|
Reference in New Issue
Block a user