View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003244||OpenFOAM||Patch||public||2019-05-21 16:23||2019-06-03 14:21|
|Fixed in Version|
|Summary||0003244: viewFactorsGen gives wrong results depending on decomposition type and number of processes|
|Description||Dumped rays show that the shadowing effect is not correctly communicated across processors. If a concave surface on one decomposed domain gets shadowed by a surface belonging to another processor domain, it’s effect won’t be accounted for, giving a wrong result.|
The issue happens in distributedTriSurfaceMesh.C where the querying procedure stops after checking the data only on one processor.
Link to the pull request fixing the issue in the first comment (removing the short-circuit querying).
|Steps To Reproduce||Run a case with two concentric spheres: |
observe the dependency of the result on decomposition type (simple -correct result; scotch -incorrect result)
and number of sub-domains (error decreases with greater number of sub-domains). (see attached document).
set 'dumpRays' to 1 in 'viewFactorsDict':
observe that the inner sphere's surface didn't 'stop' rays coming from the outer surface - resulting in the outer surface's rays incorrectly hitting the other side of the outer surface (see attached document for figures).
|Additional Information||The issue was reproduced on more complicated geometry. The fix was successfully tested on a range of cases with increasing complexity.|
|Tags||No tags attached.|
viewFactorsGen-bug.pdf (553,284 bytes)
Pull request for the fix:
||Thanks for the analysis. The 'normal' use for distributedTrisurfaceMesh is to use as a geometry. In this use case (surfaceRedistributePar) we'd first determine as set of overlapping bounding boxes and then transfer all geometry inside the bounding boxes. This would guarantee that the short-circuit test is valid. The view-factor generation is the opposite - it takes existing decomposition which now might not be continuous across the bounding box so the short-circuit test is incorrect as you've found out.|
Thanks for the proposed contribution, we have reviewed it and will merge it into OpenFOAM-dev.
Have you already signed the contributor agreement? To whom should we attribute the code?