From 06ade28f9367e17c0b7c524bd15d0a71e873b5db Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Tue, 1 May 2018 11:26:29 +0100 Subject: [PATCH] blockMesh: Stabilised arc-cosine argument for 180 degree arcs --- src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.C | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.C b/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.C index c2843f8b8..3bca3691b 100644 --- a/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.C +++ b/src/mesh/blockMesh/blockEdges/arcEdge/arcEdge.C @@ -72,7 +72,8 @@ Foam::cylindricalCS Foam::blockEdges::arcEdge::calcAngle() vector r3(p3_ - centre); // find angles - angle_ = radToDeg(acos((r3 & r1)/(mag(r3) * mag(r1)))); + const scalar cosAngle = (r3 & r1)/(mag(r3) * mag(r1)); + angle_ = radToDeg(acos(max(-1, min(cosAngle, 1)))); // check if the vectors define an exterior or an interior arcEdge if (((r1 ^ r2) & (r1 ^ r3)) < 0.0)