nearestPoint的问题
-
注意到壁面函数中基本都会计算近壁面距离nearWallDist,追踪了下发现有一个关键函数smallestDist()应该是用于计算的,其描述为Return smallest true distance from p to any of wallFaces。
Foam::scalar Foam::cellDistFuncs::smallestDist ( ... ) const { ... for (label wallFacei = 0; wallFacei < nWallFaces; wallFacei++) { label patchFacei = wallFaces[wallFacei]; `pointHit curHit = patch[patchFacei].nearestPoint(p, points);` if (curHit.distance() < minDist) { minDist = curHit.distance(); minFacei = patch.start() + patchFacei; } } return minDist; } 看起来里面真正干活的是nearestPoint,但是继续深入看nearestPoint的代码我就看不懂了。想请问一下大家有对nearestPoint有过研究的么。
-
-
此贴基本完结,按着源代码琢磨了一下午,基本弄清楚了是如何计算的。nearestPoint()主要使用了
实时碰撞检测算法
,可以计算出网格中心点到一个面的最短距离。这个最短距离是通过寻找面上离网格中心点的最近点来计算的。等我过段时间总结好了,到时候再补充到这个贴子下面。
2019年10月29日 02:21
2/4
2019年10月29日 11:08