mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Improved ODB support (#8046)
* Experiments for supporting visualization of new ODB files from WIA workflow * Some more experiments to get odb working for wia results * More work in progress, experimenting to get wellIA result files to load properly * Make sure all part geometries use the same global bounding box * Clean up code * Add some safeguards for data calculations Move parts below grid in project tree * Fix warnings * Add support for C3D8RT elements Add some more safeguards for missing data Remove strange part handling * Support elements with reduced number of integration points by pretending to have 8. * Change integration point mapping to correct order (ref. Stein and Abaqus 2019 doc) * Do not allocate too much memory for element nodal results for 20 element node types * Code cleanup. Revert back to old integration point numbering scheme (ref. Stein) * And, another integration point order update... * Update comments
This commit is contained in:
@@ -202,10 +202,11 @@ RivGeoMechPartMgr* RivGeoMechVizLogic::getUpdatedPartMgr( RivGeoMechPartMgrCache
|
||||
partMgrToUpdate->clearAndSetReservoir( caseData );
|
||||
}
|
||||
|
||||
partMgrToUpdate->setTransform( m_geomechView->scaleTransform() );
|
||||
|
||||
for ( int femPartIdx = 0; femPartIdx < partCount; ++femPartIdx )
|
||||
{
|
||||
cvf::ref<cvf::UByteArray> elmVisibility = partMgrToUpdate->cellVisibility( femPartIdx );
|
||||
partMgrToUpdate->setTransform( m_geomechView->scaleTransform() );
|
||||
|
||||
if ( pMgrKey.geometryType() == RANGE_FILTERED )
|
||||
{
|
||||
@@ -269,9 +270,12 @@ void RivGeoMechVizLogic::calculateCurrentTotalCellVisibility( cvf::UByteArray* t
|
||||
|
||||
if ( gridCount == 0 ) return;
|
||||
|
||||
RigFemPart* part = m_geomechView->femParts()->part( 0 );
|
||||
int elmCount = part->elementCount();
|
||||
|
||||
int elmCount = 0;
|
||||
for ( int i = 0; i < m_geomechView->femParts()->partCount(); i++ )
|
||||
{
|
||||
RigFemPart* part = m_geomechView->femParts()->part( i );
|
||||
elmCount += part->elementCount();
|
||||
}
|
||||
totalVisibility->resize( elmCount );
|
||||
totalVisibility->setAll( false );
|
||||
|
||||
@@ -282,10 +286,17 @@ void RivGeoMechVizLogic::calculateCurrentTotalCellVisibility( cvf::UByteArray* t
|
||||
CVF_ASSERT( partMgr );
|
||||
if ( partMgr )
|
||||
{
|
||||
cvf::ref<cvf::UByteArray> visibility = partMgr->cellVisibility( 0 );
|
||||
for ( int elmIdx = 0; elmIdx < elmCount; ++elmIdx )
|
||||
int elmOffset = 0;
|
||||
for ( int i = 0; i < m_geomechView->femParts()->partCount(); i++ )
|
||||
{
|
||||
( *totalVisibility )[elmIdx] |= ( *visibility )[elmIdx];
|
||||
RigFemPart* part = m_geomechView->femParts()->part( i );
|
||||
|
||||
cvf::ref<cvf::UByteArray> visibility = partMgr->cellVisibility( i );
|
||||
for ( int elmIdx = 0; elmIdx < part->elementCount(); ++elmIdx )
|
||||
{
|
||||
( *totalVisibility )[elmOffset + elmIdx] |= ( *visibility )[elmIdx];
|
||||
}
|
||||
elmOffset += part->elementCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user