Use new last() method for List-type classes

- use first() method in some places as well where it helps clarity

- there are a few remaining cases: git grep 'size()-1]'
This commit is contained in:
Mark Olesen
2009-11-26 13:35:57 +01:00
parent b2d7439b86
commit d17d015f88
45 changed files with 121 additions and 124 deletions

View File

@ -129,7 +129,7 @@ void Foam::Time::setControls()
{
if (timeDirs.size())
{
startTime_ = timeDirs[timeDirs.size()-1].value();
startTime_ = timeDirs.last().value();
}
}
else
@ -419,9 +419,9 @@ Foam::instant Foam::Time::findClosestTime(const scalar t) const
{
return timeDirs[1];
}
else if (t > timeDirs[timeDirs.size()-1].value())
else if (t > timeDirs.last().value())
{
return timeDirs[timeDirs.size()-1];
return timeDirs.last();
}
label nearestIndex = -1;

View File

@ -95,7 +95,7 @@ Foam::PatchTools::checkOrientation
const Face& f = p[faceI];
const point& p0 = p.points()[f[0]];
const point& p1 = p.points()[f[1]];
const point& p2 = p.points()[f[f.size()-1]];
const point& p2 = p.points()[f.last()];
const vector pointNormal((p1 - p0) ^ (p2 - p0));
if ((pointNormal & p.faceNormals()[faceI]) < 0)

View File

@ -856,7 +856,7 @@ bool Foam::primitiveMesh::checkFaceAngles
const face& f = fcs[faceI];
// Get edge from f[0] to f[size-1];
vector ePrev(p[f[0]] - p[f[f.size()-1]]);
vector ePrev(p[f.first()] - p[f.last()]);
scalar magEPrev = mag(ePrev);
ePrev /= magEPrev + VSMALL;

View File

@ -1015,7 +1015,7 @@ void Foam::polyDualMesh::calcDual
{
// Check orientation.
const face& f = dynDualFaces[dynDualFaces.size()-1];
const face& f = dynDualFaces.last();
vector n = f.normal(dualPoints);
if (((mesh.points()[owner] - dualPoints[f[0]]) & n) > 0)
{
@ -1130,7 +1130,7 @@ void Foam::polyDualMesh::calcDual
{
// Check orientation.
const face& f = dynDualFaces[dynDualFaces.size()-1];
const face& f = dynDualFaces.last();
vector n = f.normal(dualPoints);
if (((mesh.points()[owner] - dualPoints[f[0]]) & n) > 0)
{

View File

@ -88,14 +88,14 @@ Foam::solidBodyMotionFunctions::tabulated6DoFMotion::transformation() const
<< exit(FatalError);
}
if (t > times_[times_.size()-1])
if (t > times_.last())
{
FatalErrorIn
(
"solidBodyMotionFunctions::tabulated6DoFMotion::transformation()"
) << "current time (" << t
<< ") is greater than the maximum in the data table ("
<< times_[times_.size()-1] << ')'
<< times_.last() << ')'
<< exit(FatalError);
}

View File

@ -1276,7 +1276,7 @@ bool Foam::polyMeshGeometry::checkFaceAngles
faceNormal /= mag(faceNormal) + VSMALL;
// Get edge from f[0] to f[size-1];
vector ePrev(p[f[0]] - p[f[f.size()-1]]);
vector ePrev(p[f.first()] - p[f.last()]);
scalar magEPrev = mag(ePrev);
ePrev /= magEPrev + VSMALL;

View File

@ -1278,7 +1278,7 @@ void Foam::addPatchCellLayer::setRefinement
doneEdge[fEdges[fp]] = true;
fp = f.fcIndex(fp);
}
stringedVerts[stringedVerts.size()-1] = f[fp];
stringedVerts.last() = f[fp];
// Now stringedVerts contains the vertices in order of face f.
@ -1296,7 +1296,7 @@ void Foam::addPatchCellLayer::setRefinement
for (label i = 0; i < numEdgeSideFaces; i++)
{
label vEnd = stringedVerts[stringedVerts.size()-1];
label vEnd = stringedVerts.last();
label vStart = stringedVerts[0];
// calculate number of points making up a face

View File

@ -62,7 +62,7 @@ bool Foam::combineFaces::convexFace
n /= mag(n);
// Get edge from f[0] to f[size-1];
vector ePrev(points[f[0]] - points[f[f.size()-1]]);
vector ePrev(points[f.first()] - points[f.last()]);
scalar magEPrev = mag(ePrev);
ePrev /= magEPrev + VSMALL;

View File

@ -2222,7 +2222,7 @@ Foam::labelList Foam::hexRef8::consistentSlowRefinement
faceCount
)
);
allFaceInfo[faceI] = seedFacesInfo[seedFacesInfo.size()-1];
allFaceInfo[faceI] = seedFacesInfo.last();
}
else
{
@ -2238,7 +2238,7 @@ Foam::labelList Foam::hexRef8::consistentSlowRefinement
faceCount
)
);
allFaceInfo[faceI] = seedFacesInfo[seedFacesInfo.size()-1];
allFaceInfo[faceI] = seedFacesInfo.last();
}
}

View File

@ -745,7 +745,7 @@ Pout<< "refinementHistory::distribute :"
newSplitCells.append(splitCells_[index]);
Pout<< "Added oldCell " << index
<< " info " << newSplitCells[newSplitCells.size()-1]
<< " info " << newSplitCells.last()
<< " at position " << newSplitCells.size()-1
<< endl;
}

View File

@ -179,7 +179,7 @@ displacementInterpolationFvMotionSolver
// Slightly tweak min and max face zone so points sort within
zoneCoordinates[0] -= SMALL;
zoneCoordinates[zoneCoordinates.size()-1] += SMALL;
zoneCoordinates.last() += SMALL;
// Check if we have static min and max mesh bounds
const scalarField meshCoords = points0().component(dir);
@ -237,7 +237,7 @@ displacementInterpolationFvMotionSolver
}
rangeI++;
}
if (maxCoord > zoneCoordinates[zoneCoordinates.size()-1])
if (maxCoord > zoneCoordinates.last())
{
label sz = rangeToCoord.size();
rangeToCoord.setSize(sz+1);

View File

@ -104,8 +104,8 @@ Foam::commonRailInjector::commonRailInjector
if
(
mag(injectionPressureProfile_[injectionPressureProfile_.size()-1][0]
- massFlowRateProfile_[massFlowRateProfile_.size()-1][0])
mag(injectionPressureProfile_.last()[0]
- massFlowRateProfile_.last()[0])
> SMALL
)
{
@ -330,13 +330,13 @@ Foam::scalar Foam::commonRailInjector::T(const scalar time) const
Foam::scalar Foam::commonRailInjector::tsoi() const
{
return massFlowRateProfile_[0][0];
return massFlowRateProfile_.first()[0];
}
Foam::scalar Foam::commonRailInjector::teoi() const
{
return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
return massFlowRateProfile_.last()[0];
}

View File

@ -99,8 +99,7 @@ Foam::definedInjector::definedInjector
if
(
mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]
- velocityProfile_[velocityProfile_.size()-1][0])
mag(massFlowRateProfile_.last()[0] - velocityProfile_.last()[0])
> SMALL
)
{
@ -331,13 +330,13 @@ Foam::scalar Foam::definedInjector::T(const scalar time) const
Foam::scalar Foam::definedInjector::tsoi() const
{
return massFlowRateProfile_[0][0];
return massFlowRateProfile_.first()[0];
}
Foam::scalar Foam::definedInjector::teoi() const
{
return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
return massFlowRateProfile_.last()[0];
}

View File

@ -91,8 +91,7 @@ Foam::multiHoleInjector::multiHoleInjector
if
(
mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]
- TProfile_[TProfile_.size()-1][0])
mag(massFlowRateProfile_.last()[0] - TProfile_.last()[0])
> SMALL
)
{
@ -351,13 +350,13 @@ Foam::scalar Foam::multiHoleInjector::T(const scalar time) const
Foam::scalar Foam::multiHoleInjector::tsoi() const
{
return massFlowRateProfile_[0][0];
return massFlowRateProfile_.first()[0];
}
Foam::scalar Foam::multiHoleInjector::teoi() const
{
return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
return massFlowRateProfile_.last()[0];
}

View File

@ -384,13 +384,13 @@ Foam::scalar Foam::swirlInjector::T(const scalar time) const
Foam::scalar Foam::swirlInjector::tsoi() const
{
return massFlowRateProfile_[0][0];
return massFlowRateProfile_.first()[0];
}
Foam::scalar Foam::swirlInjector::teoi() const
{
return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
return massFlowRateProfile_.last()[0];
}

View File

@ -83,8 +83,8 @@ Foam::unitInjector::unitInjector
if
(
mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]
- TProfile_[TProfile_.size()-1][0])
mag(massFlowRateProfile_.last()[0]
- TProfile_.last()[0])
> SMALL
)
{
@ -306,13 +306,13 @@ Foam::scalar Foam::unitInjector::T(const scalar time) const
Foam::scalar Foam::unitInjector::tsoi() const
{
return massFlowRateProfile_[0][0];
return massFlowRateProfile_.first()[0];
}
Foam::scalar Foam::unitInjector::teoi() const
{
return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
return massFlowRateProfile_.last()[0];
}

View File

@ -64,7 +64,7 @@ template<class Type>
Type Foam::Table<Type>::value(const scalar x) const
{
// Return zero if out of bounds
if ((x > table_[table_.size()-1].first()) || (x < table_[0].first()))
if (x < table_[0].first() || x > table_.last().first())
{
return pTraits<Type>::zero;
}

View File

@ -256,7 +256,7 @@ void Foam::distribution::insertMissingKeys()
if (keys.size())
{
for (label k = keys[0]; k < keys[keys.size()-1]; k++)
for (label k = keys[0]; k < keys.last(); k++)
{
iter = find(k);

View File

@ -835,7 +835,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
vector::zero // passive data
)
);
pointMedialDist[pointI] = maxInfo[maxInfo.size()-1];
pointMedialDist[pointI] = maxInfo.last();
}
}
}
@ -879,7 +879,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
vector::zero // passive data
)
);
pointMedialDist[pointI] = maxInfo[maxInfo.size()-1];
pointMedialDist[pointI] = maxInfo.last();
}
}
}

View File

@ -47,7 +47,7 @@ void Foam::polyLine::calcDistances()
}
// normalize
lineLength_ = distances_[distances_.size()-1];
lineLength_ = distances_.last();
for (label i=1; i<distances_.size(); i++)
{
distances_[i] /= lineLength_;
@ -95,7 +95,7 @@ Foam::vector Foam::polyLine::position(const scalar lambda) const
}
else if (lambda > 1 - SMALL)
{
return controlPoints_[controlPoints_.size()-1];
return controlPoints_.last();
}

View File

@ -796,7 +796,7 @@ bool Foam::primitiveMeshGeometry::checkFaceAngles
faceNormal /= mag(faceNormal) + VSMALL;
// Get edge from f[0] to f[size-1];
vector ePrev(p[f[0]] - p[f[f.size()-1]]);
vector ePrev(p[f.first()] - p[f.last()]);
scalar magEPrev = mag(ePrev);
ePrev /= magEPrev + VSMALL;

View File

@ -496,7 +496,7 @@ void Foam::searchableBox::findLineAll
if
(
!inter.hit()
|| (inter.index() == hits[hits.size()-1].index())
|| (inter.index() == hits.last().index())
)
{
break;

View File

@ -730,7 +730,7 @@ Foam::pointIndexHit Foam::searchableSurfacesQueries::facesIntersection
}
}
nearest[nearest.size()-1] = sumNearest / surfacesToTest.size();
nearest.last() = sumNearest / surfacesToTest.size();
// Get the sum of distances (initial evaluation)

View File

@ -632,7 +632,7 @@ void Foam::triSurfaceMesh::findLineAll
if
(
!inter.hit()
|| (inter.index() == hits[hits.size()-1].index())
|| (inter.index() == hits.last().index())
)
{
break;

View File

@ -213,7 +213,7 @@ Foam::edgeSurface::edgeSurface
(
edge
(
extraVerts[extraVerts.size()-1] + nSurfacePoints_,
extraVerts.last() + nSurfacePoints_,
e.end()
)
);

View File

@ -258,12 +258,12 @@ bool Foam::edgeIntersections::inlinePerturb
bool perturbEnd = false;
// Check first intersection.
if (edgeEnds[0] == 0)
if (edgeEnds.first() == 0)
{
perturbStart = true;
}
if (edgeEnds[edgeEnds.size()-1] == 1)
if (edgeEnds.last() == 1)
{
perturbEnd = true;
}

View File

@ -242,8 +242,7 @@ void Foam::surfaceIntersection::storeIntersection
// Check whether perhaps degenerate
const point& prevHit = allCutPoints[*iter];
const point& thisHit = allCutPoints[allCutPoints.size()-1];
const point& thisHit = allCutPoints.last();
if (mag(prevHit - thisHit) < SMALL)
{

View File

@ -160,7 +160,7 @@ void Foam::surfaceIntersection::removeDuplicates
// Insert others only if they differ from one before
label newVertI = map[oldElems[vertI]];
if (newVertI != elems[elems.size()-1])
if (newVertI != elems.last())
{
elems[elemI++] = newVertI;
}
@ -300,7 +300,7 @@ void Foam::surfaceIntersection::writeIntersectedEdges
<< extraVerts[i] + surf.nPoints() + 1 << endl;
}
os << "l " << extraVerts[extraVerts.size()-1] + surf.nPoints() + 1
os << "l " << extraVerts.last() + surf.nPoints() + 1
<< ' ' << e.end()+1 << endl;
}
}

View File

@ -165,7 +165,7 @@ void Foam::hierarchGeomDecomp::calculateSortedWeightedSizes
// Non-dimensionalise and multiply by size.
scalar globalCurrentLength = returnReduce
(
sortedWeightedSizes[current.size()],
sortedWeightedSizes[current.size()],
sumOp<scalar>()
);
// Normalise weights by global sum of weights and multiply through
@ -238,7 +238,7 @@ void Foam::hierarchGeomDecomp::findBinary
if (returnReduce(hasNotChanged, andOp<bool>()))
{
WarningIn("hierarchGeomDecomp::findBinary(..)")
<< "unable to find desired deomposition split, making do!"
<< "unable to find desired deomposition split, making do!"
<< endl;
break;
}
@ -288,7 +288,7 @@ void Foam::hierarchGeomDecomp::findBinary
Pout<< " low:" << low << " lowValue:" << lowValue
<< " high:" << high << " highValue:" << highValue
<< " mid:" << mid << " midValue:" << midValue << endl
<< " globalSize:" << weightedSize
<< " globalSize:" << weightedSize
<< " wantedSize:" << wantedSize
<< " sizeTol:" << sizeTol << endl;
}
@ -318,7 +318,7 @@ void Foam::hierarchGeomDecomp::findBinary
if (returnReduce(hasNotChanged, andOp<bool>()))
{
WarningIn("hierarchGeomDecomp::findBinary(..)")
<< "unable to find desired deomposition split, making do!"
<< "unable to find desired deomposition split, making do!"
<< endl;
break;
}
@ -375,7 +375,7 @@ void Foam::hierarchGeomDecomp::sortComponent
(
(
sortedCoord.size()
? sortedCoord[sortedCoord.size()-1]
? sortedCoord.last()
: -GREAT
),
maxOp<scalar>()
@ -562,14 +562,14 @@ void Foam::hierarchGeomDecomp::sortComponent
(
(
sortedCoord.size()
? sortedCoord[sortedCoord.size()-1]
? sortedCoord.last()
: -GREAT
),
maxOp<scalar>()
);
if (debug)
{
{
Pout<< "sortComponent : minCoord:" << minCoord
<< " maxCoord:" << maxCoord << endl;
}
@ -592,7 +592,7 @@ void Foam::hierarchGeomDecomp::sortComponent
// Value at right of bin (leftIndex+localSize-1)
scalar rightCoord = -GREAT;
if (bin == n_[compI]-1)
{
// Last bin. Copy all.
@ -602,7 +602,7 @@ void Foam::hierarchGeomDecomp::sortComponent
else
{
// For the current bin (starting at leftCoord) we want a rightCoord
// such that the sum of all weighted sizes are
// such that the sum of all weighted sizes are
// globalCurrentLength/n_[compI].
// We have to iterate to obtain this.

View File

@ -84,7 +84,7 @@ Foam::vector Foam::streamLineParticle::interpolateFields
const DynamicList<vector>& U = sampledVectors_[td.UIndex_];
return U[U.size()-1];
return U.last();
}
@ -226,21 +226,21 @@ bool Foam::streamLineParticle::move(streamLineParticle::trackData& td)
// Transfer particle data into trackData.
//td.allPositions_.append(sampledPositions_);
td.allPositions_.append(vectorList());
vectorList& top = td.allPositions_[td.allPositions_.size()-1];
vectorList& top = td.allPositions_.last();
top.transfer(sampledPositions_);
forAll(sampledScalars_, i)
{
//td.allScalars_[i].append(sampledScalars_[i]);
td.allScalars_[i].append(scalarList());
scalarList& top = td.allScalars_[i][td.allScalars_[i].size()-1];
scalarList& top = td.allScalars_[i].last();
top.transfer(sampledScalars_[i]);
}
forAll(sampledVectors_, i)
{
//td.allVectors_[i].append(sampledVectors_[i]);
td.allVectors_[i].append(vectorList());
vectorList& top = td.allVectors_[i][td.allVectors_[i].size()-1];
vectorList& top = td.allVectors_[i].last();
top.transfer(sampledVectors_[i]);
}
}

View File

@ -53,7 +53,7 @@ void Foam::MeshedSurface<Face>::checkZones()
<< " ... extending final zone"
<< endl;
zones[zones.size()-1].size() += count - this->size();
zones.last().size() += count - this->size();
}
else if (count > this->size())
{

View File

@ -377,7 +377,7 @@ void Foam::surfMesh::checkZones()
<< " ... extending final zone"
<< endl;
zones[zones.size()-1].size() += count - nFaces();
zones.last().size() += count - nFaces();
}
else if (count > size())
{