[vtkusers] [NonLinearSubdivisionLevel] issue with quadratic meshes related to non-symmetric rotating triangulation algorithm
John Platt
jcplatt at dsl.pipex.com
Thu Jan 9 09:12:54 EST 2014
Hi Greg,
The copying of point global Ids should not affect the visualisation (this is
user data - node numbers in my case).
I think the problem you are describing is that VTK thinks your "internal
face" is actually two "external" faces. Is this correct?
I don't see this in a wire frame view of *_ko.vtk.
John.
----- Original Message -----
From: "Gregory Lielens" <Gregory.Lielens at fft.be>
To: "John Platt" <jcplatt at dsl.pipex.com>
Cc: "Eloi Gaudry" <Eloi.Gaudry at fft.be>; <vtkusers at vtk.org>
Sent: Thursday, January 09, 2014 12:39 PM
Subject: Re: [vtkusers] [NonLinearSubdivisionLevel] issue with quadratic
meshes related to non-symmetric rotating triangulation algorithm
> Hi John,
>
> If I get the sides effects you mention correctly, it means that the way
> duplication of cell nodes is avoided has changed from 5.8 to 5.10:
> Before, the mechanism was through copy of global ids, so that nodes
> belonging to different cells share the same global id and thus not
> duplicated, while the new way bypass this copy and rely instead on
> geometric coincidence.
>
> I understand this should have an impact on performance and memory, but I
> think it is not directly related to the problem we have here (coincident
> nodes ends up merged or not duplicated in the first place). This is
> coherent with the fact that the first example do not exhibit the problem
> (fake internal face between quad elements), while the second one does,
> even if both have the same nodes at the same position.
>
> I think the problem is inherent to the face splitting algorithm: What
> VTK do now is to split quadratic 8 node faces into 4 corner triangles
> and 2 internal triangle, which do not add nodes. Problem is that it
> breaks face symmetry (4order symmetry when face is unsplitted, i.e. one
> can choose any of the 4 nodes as first node without changing the face
> description) into a 2order symmetry (the 2 center triangles imply that
> the 4 sides/corner nodes are not equivalent, 2 sides are // to the edge
> linking the 2 center triangles, 2 sides are perpendicular).
>
> This means we have no garantee that the splitted mesh is correct, if one
> element split its quadrangle face in one way and it's neighbor in the
> other way, the splitted mesh becomes non congruent and internal boundary
> faces appear.
>
> There is two way imho to solve this problem:
> -garantee a face is always splitted in the same way.
> -add a center node so that a quadratic quadrangle face is splitted into
> 4 corner triangles and 4 center triangles. This way the splitted face
> keep an order 4 symmetry and no internal face will appear.
>
> IF the second way is choosen, the new method to avoid duplicated nodes
> may be better (using geometrical coincidence), as it will merge the new
> center node even if it does not have global id....
>
> Best regards,
>
> Greg.
>
>
> On jeu, 2014-01-09 at 11:43 +0000, John Platt wrote:
>> Hi Eloi,
>>
>> The treatment of quadratic cells in vtkDataSetSurfaceFilter appears to
>> have changed between 5.8 & 5.10.
>>
>> I have noticed two side effects -
>>
>> 1. Point Global Ids are no longer copied.
>>
>> 2. Coincident points are ALWAYS merged.
>>
>> I have not reported these as bugs yet because I would like to give a
>> suitable fix. The sticking point for me is the additional memory used
>> by vtkUnstructuredGridGeometryFilter. I would prefer the quadratic
>> cells to be treated as in 5.8.
>>
>> If you think 2 above may be causing trouble, you could changing
>> vtkDataSetSurfaceFilter::UnstructuredGridExecute()...
>>
>> uggf->SetPassThroughPointIds(this->PassThroughPointIds);
>>
>> uggf->MergingOff(); // ** JCP ** do not merge coincident points
>>
>>
>>
>> HTH
>>
>> John.
>>
>> ----- Original Message -----
>> From: Eloi Gaudry
>> To: vtkusers at vtk.org
>> Cc: Gregory Lielens
>> Sent: Thursday, January 09, 2014 9:40 AM
>> Subject: [vtkusers] [NonLinearSubdivisionLevel] issue with
>> quadratic meshes related to non-symmetric rotating
>> triangulation algorithm
>>
>>
>> Hi,
>>
>>
>>
>> I’m sending a small reproducer (made of a quadratic hexaedron
>> element connected to a quadratic wedge ) for the following
>> bug : depending on the orientation of the elements, the
>> triangulation algorithm failed to delivers an input usable by
>> the surface mapper with a NonLinearSubdivisionLevel >=1:
>>
>> - for a value of 0, the external boundaries are
>> displayed correctly,
>>
>> - for a value of 1, the shared faces/nodes between
>> the hexaedron and the wedge is displayed as an external
>> boundary (i.e. the shared faces are considered different
>> whereas they are based on the same nodes.)
>>
>> - for a value of 2 and more, the subdivision leads to
>> a buggy on-screen representation.
>>
>>
>>
>> The first file (*_ok.vtk) will show the expected behavior for
>> a NonLinearSubdvisionLevel value of 0 and 1.
>>
>> The second file (*_ko.vtk) will show the incorrect behavior
>> for a NonLinearSubdvisionLevel value 1.
>>
>>
>>
>> If you look at the subelements used for dividing each faces of
>> the hexaedron and the wedge (with a surface mapper and an
>> opacity of 0.5 for instance), you will notice a mismatch
>> between the ones created on the hexaedron and the ones created
>> on the wedge. This leads to an incorrect vizualisation of an
>> unshared face between both cells…
>>
>>
>>
>> Are you aware of this issue (present in 5.10.1 version at
>> least and still there in 6.1.0.rc1) ?
>>
>> Can this easily be fixed (the behavior seen in 5.6.1 is
>> correct for a NonLinearSubdivisionLevel value-like of 1) ?
>>
>>
>>
>> Regards,
>>
>> Eloi
>>
>>
>>
>>
>>
>> ______________________________________________________________
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
More information about the vtkusers
mailing list