face: Add handling for duplicate vertices in sameVertices

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1821
This commit is contained in:
Henry Weller
2015-08-10 10:01:36 +01:00
parent 3c21d48a49
commit 72e03b1799
2 changed files with 14 additions and 11 deletions

View File

@ -427,18 +427,22 @@ bool Foam::face::sameVertices(const face& a, const face& b)
forAll(a, i)
{
bool found = false;
forAll(b, j)
// Count occurrences of a[i] in a
label aOcc = 0;
forAll(a, j)
{
if (a[i] == b[j])
{
found = true;
break;
}
if (a[i] == a[j]) aOcc++;
}
if (!found) return false;
// Count occurrences of a[i] in b
label bOcc = 0;
forAll(b, j)
{
if (a[i] == b[j]) bOcc++;
}
// Check if occurrences of a[i] in a and b are the same
if (aOcc != bOcc) return false;
}
return true;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,6 @@ License
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
// Check the blockMesh topology
void Foam::blockMesh::checkBlockMesh(const polyMesh& bm) const
{
if (verboseOutput)