[vtk-developers] New nonlinear celltypes

John Platt jcplatt at lineone.net
Fri Dec 16 19:04:49 EST 2005


Hi,

Personally, I would be very pleased to get my hands on 3 of Soeren's
nonlinear cell types when I move to VTK 5. In particular, it would be
interesting to convert VTK_QUADRATIC_QUAD cells to VTK_BIQUADRATIC_QUAD
to see if there is an improvement in the colour mapping.

Finite elements are peculiar in that the cell geometry and spatial
variation of the field can be approximated using different sets of
functions. I have rarely come across cell geometries higher than
quadratic and therefore Soeren's additions + a quadratic linear hex
would provide a very comprehensive set of cell geometries.

On the other hand, VTK can never handle all the different interpolations
used for the field variables (to do this it would have to become a FE
system because some elements use numerically determined shape
functions). Furthermore, the spatial gradients of the field over the
element vary in a different way again.

If it is required to minimize the number of quadratic cell types, cells
with points on a uniform grid in the cell space are quite flexible. So
in the 2D case, it is easy to convert and 8-node quad to a 9-node quad
by adding a centre point. 

One question I have on the use of a generic cell adaptor approach is the
recovery of the original cell edges for use in wire frame views. In VTK
4, I use an unstructured grid surface filter which preserves nonlinear
faces and saves Face Id's which are used in edge filters to detect
boundary edges and internally triangulated edges.

Perhaps of more general interest is the question of user contributions
which are documented and tested but not implemented in all VTK classes.
Insisting on a 100% complete implementation seems to me to be too
onerous and could potentially stifle all but the smallest of
contributions. 

John.
 
-----Original Message-----
From: vtk-developers-bounces+jcplatt=lineone.net at vtk.org
[mailto:vtk-developers-bounces+jcplatt=lineone.net at vtk.org] On Behalf Of
David C. Thompson
Sent: 16 December 2005 18:54
To: Soeren Gebbert
Cc: vtk-developers at vtk.org; Will Schroeder; Mathieu Malaterre
Subject: Re: [vtk-developers] New nonlinear celltypes

Soeren,

    It is great to see more people interested in higher order elements!
I agree with Will that it would be nice to see your new elements in VTK
if you are really willing to do all the work required to get them there.
Also, it would be great to hear specific problems you have with the
generic dataset representation. I'll try and address some of your
comments below.

	David
--
David Thompson, MS 9152                (925)294-2537
Sandia National Laboratories           dcthomp at sandia.gov
PO Box 969, Livermore, CA 94551-0969

On Fri, 2005-12-16 at 06:24, Soeren Gebbert wrote:
> Will Schroeder wrote:
> > ... One of the ideas 
> > behind this is that no new cells would be introduced into VTK,
rather 
> > an adaptor to an external "library" of elements would be created.
Part 
> > of the rational was to avoid adding lots of new cells to VTK,
because 
> > the potential list is endless and requires modifying filters,
reader, 
> > writers, file formats, etc. for each new cell. ...
> 
> When i started to implement these cells, i was thinking about to use 
> only the framework. But after a while of planing and thinking, i
decided 
> to extend VTK because:
> * we are using all kind of celltypes the VTK-unstructured-gid are 
> provides (except the pyramid) and the new cell types together
The bridge dataset is provided for testing and also as a starting point
so that you need not implement adaptors for linear cell types.

> * It was very important for us to provide data integrity while the 
> analyses/visualisation process, that mean, we need to know what kind
of 
> cells are used and
>    in which kind of cells we can convert (3D cells to 2D faces and so
on 
> ...)
I am not sure I understand this; how does the generic dataset not
provide this information? vtkGenericAdaptorCell provides cell type and
dimensionality. If you are referring to the results of tessellation, the
vtkGenericDataSetTessellator has a KeepCellIds attribute that will
generate a new "cell IDs" attribute so that you can look up which higher
order element generated a particular linear one.

> * we are working with large datasets (many 10.000 cells), the time 
> consumption to tessellate such huge datasets with 3D cells is enormus
> * We need to visualize these data as fast as possible for interactive 
> analyses (with Qt3 gui),
> We have worked very hard to make this process fast. If you have a
specific case that takes a long time, is it something you could provide
more information about so that we can find out what is impacting the
performance?

>    and i thought the generic aproach is not fast enough for this 
> (contouring ...) and dont provide all the functionality we need.
(maybe 
> im wrong!)
For contouring the generic approach introduces some additional overhead
for higher order elements because the tessellation that occurs requires
coincident points to be merged. However, for the number of cells you are
dealing with, the generic approach should not be significantly slower
than vtkUnstructuredGrid unless you put tight tolerances on the
tessellation algorithm so that many linear elements are required to
approximate a single higher order cell. If you did that it would be
slow, but it would also be unfair to compare it to a contour generated
on a vtkUnstructuredGrid because vtkCell performs a fixed subdivision of
each cell before contouring rather than an adaptive one.

> * We need more filters for the new cells than the generic aproach
provides.
>     And there are many filters for unstructured grids and datasets in 
> VTK we are happily using.
If anything, this is the Achilles heel of the generic dataset API right
now. Until we have the resources to make more filters available, you can
certainly use the dataset tessellator to create an approximation of the
higher order elements and use any VTK filter on that approximation.


_______________________________________________
vtk-developers mailing list
vtk-developers at vtk.org
http://www.vtk.org/mailman/listinfo/vtk-developers




More information about the vtk-developers mailing list