#5273 Allen Diagrams: Use const access to Nnc connections

This commit is contained in:
Magne Sjaastad 2020-01-13 15:06:16 +01:00
parent 6761a71798
commit 0abd839669
6 changed files with 41 additions and 21 deletions

View File

@ -728,24 +728,31 @@ void RifReaderEclipseOutput::transferStaticNNCData( const ecl_grid_type* mainEcl
if ( numNNC > 0 )
{
// Transform to our own data structures
std::vector<RigConnection> nncConnections;
std::vector<double> transmissibilityValuesTemp;
mainGrid->nncData()->connections().resize( numNNC );
std::vector<double>& transmissibilityValues = mainGrid->nncData()->makeStaticConnectionScalarResult(
RiaDefines::propertyNameCombTrans() );
const double* transValues = ecl_nnc_data_get_values( tran_data );
for ( int nIdx = 0; nIdx < numNNC; ++nIdx )
{
const ecl_nnc_pair_type* geometry_pair = ecl_nnc_geometry_iget( nnc_geo, nIdx );
RigGridBase* grid1 = mainGrid->gridByIndex( geometry_pair->grid_nr1 );
mainGrid->nncData()->connections()[nIdx].m_c1GlobIdx = grid1->reservoirCellIndex(
geometry_pair->global_index1 );
RigGridBase* grid2 = mainGrid->gridByIndex( geometry_pair->grid_nr2 );
mainGrid->nncData()->connections()[nIdx].m_c2GlobIdx = grid2->reservoirCellIndex(
geometry_pair->global_index2 );
RigGridBase* grid2 = mainGrid->gridByIndex( geometry_pair->grid_nr2 );
transmissibilityValues[nIdx] = transValues[nIdx];
RigConnection nncConnection;
nncConnection.m_c1GlobIdx = grid1->reservoirCellIndex( geometry_pair->global_index1 );
nncConnection.m_c2GlobIdx = grid2->reservoirCellIndex( geometry_pair->global_index2 );
nncConnections.push_back( nncConnection );
transmissibilityValuesTemp.push_back( transValues[nIdx] );
}
mainGrid->nncData()->setConnections( nncConnections );
std::vector<double>& transmissibilityValues = mainGrid->nncData()->makeStaticConnectionScalarResult(
RiaDefines::propertyNameCombTrans() );
transmissibilityValues = transmissibilityValuesTemp;
}
ecl_nnc_data_free( tran_data );

View File

@ -272,8 +272,8 @@ void RimFaultInViewCollection::syncronizeFaults()
// NNCs
this->noCommonAreaNnncCollection()->noCommonAreaNncs().deleteAllChildObjects();
RigMainGrid* mainGrid = parentView()->mainGrid();
std::vector<RigConnection>& nncConnections = mainGrid->nncData()->connections();
RigMainGrid* mainGrid = parentView()->mainGrid();
const std::vector<RigConnection>& nncConnections = mainGrid->nncData()->connections();
for ( size_t connIndex = 0; connIndex < nncConnections.size(); connIndex++ )
{
if ( !nncConnections[connIndex].hasCommonArea() )

View File

@ -2239,7 +2239,7 @@ void RigCaseCellResultsData::computeNncCombRiTrans()
bool isFaceNormalsOutwards = m_ownerMainGrid->isFaceNormalsOutwards();
// NNC calculation
std::vector<RigConnection>& nncConnections = m_ownerMainGrid->nncData()->connections();
const std::vector<RigConnection>& nncConnections = m_ownerMainGrid->nncData()->connections();
for ( size_t connIdx = 0; connIdx < nncConnections.size(); connIdx++ )
{
size_t nativeResvCellIndex = nncConnections[connIdx].m_c1GlobIdx;

View File

@ -179,6 +179,22 @@ cvf::StructGridInterface::FaceType RigNNCData::calculateCellFaceOverlap( const R
return cvf::StructGridInterface::NO_FACE;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigNNCData::setConnections( std::vector<RigConnection>& connections )
{
m_connections = connections;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<RigConnection>& RigNNCData::connections() const
{
return m_connections;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -75,14 +75,9 @@ public:
std::vector<size_t>* connectionPolygon,
std::vector<cvf::Vec3d>* connectionIntersections );
std::vector<RigConnection>& connections()
{
return m_connections;
}
const std::vector<RigConnection>& connections() const
{
return m_connections;
}
void setConnections( std::vector<RigConnection>& connections );
const std::vector<RigConnection>& connections() const;
std::vector<double>& makeStaticConnectionScalarResult( QString nncDataType );
const std::vector<double>* staticConnectionScalarResult( const RigEclipseResultAddress& resVarAddr ) const;

View File

@ -536,7 +536,7 @@ void RigReservoirBuilderMock::addFaults( RigEclipseCaseData* eclipseCase )
grid->setFaults( faults );
// NNCs
std::vector<RigConnection>& nncConnections = grid->nncData()->connections();
std::vector<RigConnection> nncConnections;
{
size_t i1 = 2;
size_t j1 = 2;
@ -561,6 +561,8 @@ void RigReservoirBuilderMock::addFaults( RigEclipseCaseData* eclipseCase )
addNnc( grid, i1, j1, k1, i2, j2, k2, nncConnections );
}
grid->nncData()->setConnections( nncConnections );
std::vector<double>& tranVals = grid->nncData()->makeStaticConnectionScalarResult(
RiaDefines::propertyNameCombTrans() );
for ( size_t cIdx = 0; cIdx < tranVals.size(); ++cIdx )