-
Notifications
You must be signed in to change notification settings - Fork 849
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Illegal access to normal neighbor of halo vertex #1430
Comments
Have you checked if you ever get halo point in normal markers? |
Yes, in the testcase described here: #1362 (comment) I saw in the debugger that halo vertices occur in the loop. |
Right, in the viscous forces case, it should be ok to move the "if Domain" up and avoiding computations on halo points. |
I guess this is a problem for FULL MG only, because CPhysicalGeometry finds normal neighbors also for halo points. |
@bigfooted , I see we are skiping halo nodes when we compute TauWall via wall functions, probably also because of this PointNormal problem? |
Corrected in commit f6f986e in #1362 similar to that, moving the code depending on the nearest neighbor access (i.e. YPlus calculation) down into an "if Domain" block. Note however that after this change YPlus is not computed on halo cells any more, which might be problematic e.g. for CTurbSSTSolver::SetTurbVars_WF. |
Maybe it has something to do with the weird shapes of agglomerated volumes, which could make it difficult to find a consistent normal neighbor across ranks. When Wall Functions are used, y+ is computed elsewhere and not in Viscous forces, and that elsewhere function is already skiping halos, hence my earlier comment on potentially having to communicate tau wall, etc. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is still a relevant issue please comment on it to restart the discussion. Thank you for your contributions. |
Describe the bug
In CFVMFlowSolverBase<>::Friction_Forces, there is the following piece of code (permalink):
However, a normal neighbor exists only for vertices on the domain (see
CMultiGridGeometry::FindNormal_Neighbor
andCPhysicalGeometry::FindNormal_Neighbor
), not for halo points.Edit: The link for
CPhysicalGeometry
was wrong.CPhysicalGeometry
actually computes the normal neighbors for halo points,CMultigridGeometry
doesn't.iPointNormal
is needed to retrieveCoord_Normal
, which is needed to computeWallDist
/WallDistMod
, which are needed to computeYPlus
. To fix the above problem, I would therefore suggest to computeYPlus
only for domain points.Looking for locations where
YPlus
could be accessed (to see whetherYPlus
is needed on non-domain points), I found e.g.CTurbSSTSolver::SetTurbVars_WF
. However there again the normal neighbor is accessed without checking that we're on a domain point, so likely this should also be changed.The text was updated successfully, but these errors were encountered: