ENH: add single-parameter sortedOrder() function

This commit is contained in:
Mark Olesen
2019-07-17 11:08:40 +02:00
committed by Andrew Heather
parent 5788fe056c
commit 1d86fc4f6b
33 changed files with 134 additions and 117 deletions

View File

@ -58,10 +58,12 @@ int main(int argc, char *argv[])
SortableList<label> list1r(list1.size());
list1r = list1;
Info<< "unsorted: " << orig << endl;
Info<< "unsorted: " << orig << nl
<< "order: " << sortedOrder(list1) << endl;
sort(list1);
Info<< "sorted: " << list1 << nl
<< "indices: " << order << endl;
<< "indices: " << order << nl
<< "order: " << sortedOrder(list1) << endl;
list1r.reverseSort();
Info<< "reverse ..." << nl;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd |
\\ / A nd | Copyright (C) 2019 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
| Copyright (C) 2012-2017 OpenFOAM Foundation
@ -67,9 +67,7 @@ void Foam::DelaunayMesh<Triangulation>::sortFaces
<< "Sorting faces, owner and neighbour into upper triangular order"
<< endl;
labelList oldToNew;
sortedOrder(ownerNeighbourPair, oldToNew);
labelList oldToNew(sortedOrder(ownerNeighbourPair));
oldToNew = invert(oldToNew.size(), oldToNew);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2018-2019 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
| Copyright (C) 2012-2016 OpenFOAM Foundation
@ -1322,8 +1322,7 @@ void Foam::conformalVoronoiMesh::indexDualVertices
// Sort the vertices so that they will be in the same order on
// each processor
labelList oldToNew;
sortedOrder(cellVerticesPair, oldToNew);
labelList oldToNew(sortedOrder(cellVerticesPair));
oldToNew = invert(oldToNew.size(), oldToNew);
inplaceReorder(oldToNew, cellVertices);
@ -2406,10 +2405,7 @@ void Foam::conformalVoronoiMesh::sortFaces
<< "Sorting faces, owner and neighbour into upper triangular order"
<< endl;
labelList oldToNew;
sortedOrder(ownerNeighbourPair, oldToNew);
labelList oldToNew(sortedOrder(ownerNeighbourPair));
oldToNew = invert(oldToNew.size(), oldToNew);
inplaceReorder(oldToNew, faces);
@ -2459,10 +2455,7 @@ void Foam::conformalVoronoiMesh::sortProcPatches
<< exit(FatalError) << endl;
}
labelList oldToNew;
sortedOrder(sortingIndices, oldToNew);
labelList oldToNew(sortedOrder(sortingIndices));
oldToNew = invert(oldToNew.size(), oldToNew);
inplaceReorder(oldToNew, sortingIndices);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2016-2019 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
| Copyright (C) 2011-2016 OpenFOAM Foundation
@ -226,12 +226,10 @@ labelList getFaceOrder
}
}
order.setSize(nbr.size());
sortedOrder(nbr, order);
forAll(order, i)
for (const label index : order)
{
label index = order[i];
if (nbr[index] != -1)
{
oldToNewFace[cFaces[index]] = newFacei++;
@ -495,8 +493,7 @@ autoPtr<mapPolyMesh> reorderMesh
newFlipMap[i] = fZone.flipMap()[i];
}
}
labelList newToOld;
sortedOrder(newAddressing, newToOld);
labelList newToOld(sortedOrder(newAddressing));
fZone.resetAddressing
(
labelUIndList(newAddressing, newToOld)(),
@ -1010,8 +1007,7 @@ int main(int argc, char *argv[])
bndCellMap.setSize(nBndCells);
// Sort
labelList order;
sortedOrder(bndCellMap, order);
labelList order(sortedOrder(bndCellMap));
// Redo newReverseCellOrder
labelList newReverseCellOrder(mesh.nCells(), -1);