View Issue Details

IDProjectCategoryView StatusLast Update
0003244OpenFOAMPatchpublic2019-06-03 14:21
Reporterdario-zkcAssigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformGNU/LinuxOSUbuntuOS Version16.04
Product Versiondev 
Fixed in Version 
Summary0003244: viewFactorsGen gives wrong results depending on decomposition type and number of processes
DescriptionDumped 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 ReproduceRun 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 InformationThe issue was reproduced on more complicated geometry. The fix was successfully tested on a range of cases with increasing complexity.
TagsNo tags attached.

Activities

dario-zkc

2019-05-21 16:23

reporter  

viewFactorsGen-bug.pdf (553,284 bytes)

dario-zkc

2019-05-21 16:25

reporter   ~0010483

Pull request for the fix:
https://github.com/OpenFOAM/OpenFOAM-dev/pull/19

MattijsJ

2019-05-24 10:49

reporter   ~0010487

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.

administrator

2019-05-24 11:31

administrator   ~0010488

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?

See:
https://openfoam.org/dev/how-to-contribute/
https://openfoam.org/contributor-agreement/

Issue History

Date Modified Username Field Change
2019-05-21 16:23 dario-zkc New Issue
2019-05-21 16:23 dario-zkc File Added: viewFactorsGen-bug.pdf
2019-05-21 16:25 dario-zkc Note Added: 0010483
2019-05-24 10:49 MattijsJ Note Added: 0010487
2019-05-24 11:31 administrator Note Added: 0010488