1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "primitiveMesh.H"
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
30 bool Foam::primitiveMesh::checkEdgeLength
33 const scalar reportLenSqr,
37 const pointField& points = this->points();
38 const faceList& faces = this->faces();
40 scalar minLenSqr = sqr(GREAT);
41 scalar maxLenSqr = -sqr(GREAT);
43 labelHashSet smallEdgeSet(nPoints()/100);
47 const face& f = faces[faceI];
51 label fp1 = f.fcIndex(fp);
53 scalar magSqrE = magSqr(points[f[fp]] - points[f[fp1]]);
55 if (magSqrE < reportLenSqr)
57 smallEdgeSet.insert(f[fp]);
58 smallEdgeSet.insert(f[fp1]);
61 minLenSqr = min(minLenSqr, magSqrE);
62 maxLenSqr = max(maxLenSqr, magSqrE);
66 reduce(minLenSqr, minOp<scalar>());
67 reduce(maxLenSqr, maxOp<scalar>());
69 label nSmall = smallEdgeSet.size();
70 reduce(nSmall, sumOp<label>());
74 setPtr->transfer(smallEdgeSet);
81 Info<< " *Edges too small, min/max edge length = "
82 << sqrt(minLenSqr) << " " << sqrt(maxLenSqr)
83 << ", number too small: " << nSmall << endl;
92 Info<< " Min/max edge length = "
93 << sqrt(minLenSqr) << " " << sqrt(maxLenSqr)
102 // ************************************************************************* //