MantisBT - VTK
View Issue Details
0006603VTK(No Category)public2008-03-13 21:352013-04-05 19:57
Berk Geveci 
Zhanping Liu 
highminoralways
closedopen 
 
 
0006603: Probing degenerate cells causes errors
I was given a triangle mesh with degenerate cells. Probing it with a high resolution line reveals that the interpolation near the degenerate triangles is really wrong.
* Load the attached dataset
* Probe it with a 1000 points line between (0.5, 0, 0) - (0.5, 2, 0)

The result looks like the attached image (plotting temperature).
No tags attached.
? mesh0.vtu (1,431) 2008-03-13 21:35
https://www.vtk.org/Bug/file/6351/mesh0.vtu
png bug.png (16,427) 2008-03-13 21:36
https://www.vtk.org/Bug/file/6352/bug.png
png
Issue History
2008-03-13 21:35Berk GeveciNew Issue
2008-03-13 21:35Berk GeveciFile Added: mesh0.vtu
2008-03-13 21:36Berk GeveciFile Added: bug.png
2008-03-13 21:36Berk GeveciStatusbacklog => tabled
2008-03-13 21:36Berk GeveciAssigned To => Will Schroeder
2008-03-14 07:51Berk GeveciNote Added: 0010801
2008-09-25 15:37Berk GeveciAssigned ToWill Schroeder => Zhanping Liu
2008-10-06 10:40Zhanping LiuNote Added: 0013730
2008-10-06 10:41Zhanping LiuStatustabled => @80@
2011-06-16 13:11Zack GalbreathCategory => (No Category)
2013-04-05 19:57Berk GeveciStatuscustomer review => closed

Notes
(0010801)
Berk Geveci   
2008-03-14 07:51   
I just found out that there are no degenerate triangles but lines instead. The bug is still there though. I am guessing FindCell() is choosing the line over the triangle when it shouldn't.
(0013730)
Zhanping Liu   
2008-10-06 10:40   
BUG 0006603 has been fixed. The problem was due to the inappropriate
selection of the tolerance (the initial value is too coarse), line #246 in
vtkProbeFilter::ProbeEmptyPoints(...). Now the actual sampling rate is
considered in determining the tolerance (see line #249 to line #264) and
the problem disappears.

If the squared tolerance is too large as is the case with the original code (0.005), a given sampling point, e.g., point #47 (whose coordinates are 0.47, 0.94), is mistakenly considered as grid point 8 (point Id = 8), i.e., the center of the plane because the squared distance between point #47 and the center is 0.0045. As a consequence, the proprty (temperature here) at the center point is simply taken as the one at the sample (point #47) and therefore a fluctuation occurs between point #46 and point 0000054.

Now that the bug has been fixed, point #47 is considered to be within cell (triangle here) #5 and bary-centric interpolation is accordingly applied to obtain a correct temperature value at point #47 (the same for #47 ~ #53), both visually AND in terms of the line-based profile investigation.

  Thanks.

new revision: 1.95; previous revision: 1.94