Refactor use of grid dimensions

This commit is contained in:
Magne Sjaastad 2024-01-21 21:13:24 +01:00
parent 833a0e8584
commit a090992f5a
7 changed files with 19 additions and 29 deletions

View File

@ -73,7 +73,7 @@ bool RifReaderEclipseInput::open( const QString& fileName, RigEclipseCaseData* e
// create InputProperty object
bool isOk = false;
if ( eclipseCase->mainGrid()->gridPointDimensions() == cvf::Vec3st( 0, 0, 0 ) )
if ( eclipseCase->mainGrid()->cellCount() == 0 )
{
QString errorMesssages;
isOk = RifEclipseInputFileTools::openGridFile( fileName, eclipseCase, isFaultImportEnabled(), &errorMesssages );

View File

@ -708,7 +708,7 @@ void RimEclipseCase::loadAndSynchronizeInputProperties( bool importGridOrFaultDa
// Make sure we actually have reservoir data
CVF_ASSERT( eclipseCaseData() );
CVF_ASSERT( eclipseCaseData()->mainGrid()->gridPointDimensions() != cvf::Vec3st( 0, 0, 0 ) );
CVF_ASSERT( eclipseCaseData()->mainGrid()->cellCount() != 0 );
// Then read the properties from all the files referenced by the InputReservoir

View File

@ -114,7 +114,7 @@ bool RimEclipseInputCase::openDataFileSet( const QStringList& fileNames )
QString gridFileName;
// First find and read the grid data
if ( eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st( 0, 0, 0 ) )
if ( eclipseCaseData()->mainGrid()->cellCount() == 0 )
{
for ( int i = 0; i < fileNames.size(); i++ )
{
@ -142,7 +142,7 @@ bool RimEclipseInputCase::openDataFileSet( const QStringList& fileNames )
}
}
if ( eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st( 0, 0, 0 ) )
if ( eclipseCaseData()->mainGrid()->cellCount() == 0 )
{
for ( QString errorMessages : allErrorMessages )
{

View File

@ -73,7 +73,7 @@ bool RimRoffCase::openEclipseGridFile()
QString fileName = gridFileName();
// First find and read the grid data
if ( eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st( 0, 0, 0 ) )
if ( eclipseCaseData()->mainGrid()->cellCount() == 0 )
{
QString errorMessages;
if ( RifRoffFileTools::openGridFile( fileName, eclipseCaseData(), &errorMessages ) )

View File

@ -61,14 +61,6 @@ void RigGridBase::setGridPointDimensions( const cvf::Vec3st& gridDimensions )
m_cellCount.z() = ( m_gridPointDimensions.z() > 0 ? m_gridPointDimensions.z() - 1 : 0 );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Vec3st RigGridBase::gridPointDimensions()
{
return m_gridPointDimensions;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -193,8 +185,7 @@ size_t RigGridBase::cellIndexFromIJK( size_t i, size_t j, size_t k ) const
CVF_TIGHT_ASSERT( i != cvf::UNDEFINED_SIZE_T && j != cvf::UNDEFINED_SIZE_T && k != cvf::UNDEFINED_SIZE_T );
CVF_TIGHT_ASSERT( i < m_gridPointDimensions.x() && j < m_gridPointDimensions.y() && k < m_gridPointDimensions.z() );
size_t ci = i + j * ( m_gridPointDimensions.x() - 1 ) + k * ( ( m_gridPointDimensions.x() - 1 ) * ( m_gridPointDimensions.y() - 1 ) );
return ci;
return i + j * cellCountI() + k * cellCountI() * cellCountJ();
}
//--------------------------------------------------------------------------------------------------
@ -202,8 +193,7 @@ size_t RigGridBase::cellIndexFromIJK( size_t i, size_t j, size_t k ) const
//--------------------------------------------------------------------------------------------------
size_t RigGridBase::cellIndexFromIJKUnguarded( size_t i, size_t j, size_t k ) const
{
size_t ci = i + j * ( m_gridPointDimensions.x() - 1 ) + k * ( ( m_gridPointDimensions.x() - 1 ) * ( m_gridPointDimensions.y() - 1 ) );
return ci;
return i + j * cellCountI() + k * cellCountI() * cellCountJ();
}
//--------------------------------------------------------------------------------------------------
@ -227,8 +217,8 @@ bool RigGridBase::ijkFromCellIndex( size_t cellIndex, size_t* i, size_t* j, size
return false;
}
const size_t cellCountI = m_gridPointDimensions[0] - 1u;
const size_t cellCountJ = m_gridPointDimensions[1] - 1u;
const size_t cellCountI = this->cellCountI();
const size_t cellCountJ = this->cellCountJ();
*i = index % cellCountI;
index /= cellCountI;
@ -274,8 +264,8 @@ void RigGridBase::ijkFromCellIndexUnguarded( size_t cellIndex, size_t* i, size_t
{
size_t index = cellIndex;
const size_t cellCountI = m_gridPointDimensions[0] - 1u;
const size_t cellCountJ = m_gridPointDimensions[1] - 1u;
const size_t cellCountI = this->cellCountI();
const size_t cellCountJ = this->cellCountJ();
*i = index % cellCountI;
index /= cellCountI;

View File

@ -43,14 +43,13 @@ public:
explicit RigGridBase( RigMainGrid* mainGrid );
~RigGridBase() override;
void setGridPointDimensions( const cvf::Vec3st& gridDimensions );
cvf::Vec3st gridPointDimensions();
void setGridPointDimensions( const cvf::Vec3st& gridDimensions );
size_t cellCountI() const override;
size_t cellCountJ() const override;
size_t cellCountK() const override;
size_t cellCount() const { return cellCountI() * cellCountJ() * cellCountK(); }
size_t cellCount() const;
RigCell& cell( size_t gridLocalCellIndex );
const RigCell& cell( size_t gridLocalCellIndex ) const;

View File

@ -181,7 +181,8 @@ void RigReservoirBuilderMock::addWellData( RigEclipseCaseData* eclipseCase, RigG
CVF_ASSERT( eclipseCase );
CVF_ASSERT( grid );
cvf::Vec3st dim = grid->gridPointDimensions();
auto cellCountJ = grid->cellCountJ();
auto cellCountK = grid->cellCountK();
cvf::Collection<RigSimWellData> wells;
@ -208,7 +209,7 @@ void RigReservoirBuilderMock::addWellData( RigEclipseCaseData* eclipseCase, RigG
// Connections
// int connectionCount = std::min(dim.x(), std::min(dim.y(), dim.z())) - 2;
size_t connectionCount = dim.z() - 2;
size_t connectionCount = cellCountK - 2;
if ( connectionCount > 0 )
{
// Only main grid supported by now. Must be taken care of when LGRs are supported
@ -224,10 +225,10 @@ void RigReservoirBuilderMock::addWellData( RigEclipseCaseData* eclipseCase, RigG
RigWellResultPoint data;
data.setGridIndex( 0 );
if ( connIdx < dim.y() - 2 )
if ( connIdx < cellCountJ - 2 )
data.setGridCellIndex( grid->cellIndexFromIJK( 1, 1 + connIdx, 1 + connIdx ) );
else
data.setGridCellIndex( grid->cellIndexFromIJK( 1, dim.y() - 2, 1 + connIdx ) );
data.setGridCellIndex( grid->cellIndexFromIJK( 1, cellCountJ - 2, 1 + connIdx ) );
if ( connIdx < connectionCount / 2 )
{
@ -262,7 +263,7 @@ void RigReservoirBuilderMock::addWellData( RigEclipseCaseData* eclipseCase, RigG
}
}
if ( connIdx < dim.y() - 2 )
if ( connIdx < cellCountJ - 2 )
{
data.setGridCellIndex( grid->cellIndexFromIJK( 1, 1 + connIdx, 2 + connIdx ) );