Performance: Cellcount functions are used in many loops, and must be as fast as possible

cellCountIJK was computed based on the value of griPointDimensions. These converstion turned up during profiling. Change implementation to have cellcount as a member variable instead of being computed every time.
This commit is contained in:
Magne Sjaastad
2024-01-21 21:00:18 +01:00
parent 663c3f31b9
commit 833a0e8584
8 changed files with 92 additions and 97 deletions

View File

@@ -362,30 +362,6 @@ int RigFemPartGrid::perpendicularFaceInDirection( cvf::Vec3f direction, int perp
return bestFace;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFemPartGrid::gridPointCountI() const
{
return m_elementIJKCounts[0] + 1;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFemPartGrid::gridPointCountJ() const
{
return m_elementIJKCounts[1] + 1;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFemPartGrid::gridPointCountK() const
{
return m_elementIJKCounts[2] + 1;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -491,6 +467,30 @@ cvf::Vec3d RigFemPartGrid::cellCentroid( size_t cellIndex ) const
return centroid / 8.0;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFemPartGrid::cellCountI() const
{
return m_elementIJKCounts[0];
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFemPartGrid::cellCountJ() const
{
return m_elementIJKCounts[1];
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFemPartGrid::cellCountK() const
{
return m_elementIJKCounts[2];
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------