[vtk-developers] New nonlinear celltypes

Soeren Gebbert soeren.gebbert at inpro.de
Fri Dec 16 09:24:06 EST 2005


Dear Mr. Schroeder,
thank you for your answer, i will try to explain why i decided to extend 
VTK and not to use only the generic approach.

Will Schroeder wrote:

> Soeren -
>
> Very nice, thanks for the contribution. I am going to discuss this 
> with a couple of folks here and at Sandia Nat'l Lab who have been 
> working on higher-order cells. I do have an initial reaction and I'd 
> like to explain what I'm thinking.
>
> If you look at GenericFiltering in VTK5.0 (and I believe that you have 
> because you have created a tessellation bridge, that's very 
> impressive!) there is an elaborate adaptor mechanism for higher-order 
> cells (see the paper http://www.vtk.org/pdf/AdaptorFramework.pdf which 
> was presented at IEEE Visualization this year). 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. So another way to do 
> this is to encapsulate your elements into a library and then create 
> the bridge (which I think you have done anyway). Then the existing 
> generic filtering mechanism could handle the new cells. This would 
> minimize changes to VTK. 

We need to visualize and analyse data from a numerical simulation, which 
calculates nonlinear deforming and springback of different materials 
with linear and nonlinear elements.
The development of the numerical programm and the visulisation runs in 
parallel.

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
* 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 
...)
* 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),
   and i thought the generic aproach is not fast enough for this 
(contouring ...) and dont provide all the functionality we need. (maybe 
im wrong!)
* 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.

Because of the requirements listed above, i decided to extend VTK, to 
give us the flexiblest/fastest/definite aproach for data visualisation. 
The generic approach is realy great! and will give many people
the ability to visualize there nonlinear data. If i had only nonlinear 
data  and dont need to implement a preprocessor tool (like Paraview) for 
structural FEM analysis, the
generic aproach would be all we need.  And of course we are already 
using parts of the generic approach while tessellating the cells.

>
>
> On the other hand it looks like you've done some great work, and the 
> way you've done it provides lots of efficiencies and flexibility that 
> the generic filtering mechanism cannot provide. And the elements seem 
> to be of the useful sort.
>
> So I guess the question is: are you willing to do everything necessary 
> to fully support these new cells: modifying readers, writers, filters 
> file formats (including XML), adding tests, etc.? This is a lot of 
> work to do and the maintenance issue is the thing that is scaring me 
> here.

Because VTK has a fantastic object orientated approach and is excellent 
designed, i needed to modify only some of the VTK classes, to process 
and visualize my data.
The vtkUnstructuredGridReader is working perfectly and i had not to 
modify it. Here is the list of classes i needed to modify:

Filtering/vtkCellType.h
Filtering/vtkGenericCell .cxx and .h
Filtering/vtkUnstructuredGrid .cxx and .h
Graphics/vtkDataSetSurfaceFilter.cxx
Graphics/vtkCutter.cxx
Graphics/vtkGeometryFilter.cxx
Graphics/vtkBoxClipDataSet.cxx

You will definitely get the diffs. :)

There is a high possibility that i need to modify more classes then the 
listed above. And if you tell me which class need to be touched, i will
try to modify and test them!!

But you will understand that if this will be to much modification, my 
company is not willingly to pay me for
this kind of work. I have extendet VTK so far only for our requirements.
If it will be to much work, maybe we can make a compromise?

Best regards
Soeren Gebbert

>
> Will
>
>
> At 06:50 AM 12/14/2005, Soeren Gebbert wrote:
>
>> Dear developers,
>> i have developed new nonlinear celltypes. The company im working in 
>> and i
>> have decided to contribute this code to VTK. Im working with the VTK 5.0
>> branch
>> at Linux 32Bit Suse 8.0, 9.2 and windows XP.
>>
>> I have attached an overview of the new celltypes.
>> One file shows the description of the implementation status for each new
>> celltype and the status of changes
>> in the VTK Filtering and Graphics classes. The other file shows figures
>> (like in the VTK books) of the
>> new celltypes with numbering and the names in vtkCellType.h.
>>
>> Because i have integrated these new cells into VTK 5.0, there are some
>> changes in other VTK classes i want to provide too.
>> I have written a small interacive testprogramm, to test the abilities of
>> the new celltypes, like contouring, clipping,  tessellation  (with
>> modiefied bridge dataset), picking and so on. We are working with these
>> cells for a while, and it seems they are working very well.
>> But i was not able to test every functionality of the cells (take a look
>> at the implementation status).
>>
>> If you are interested, please tell me to who i can send the following 
>> files:
>> 1. Sources of the new celltypes
>> 2. The small interactive testprogramm with modified Bridge dataset (for
>> tessellation)
>> 3. The diffs of all VTK classes i had to modify
>> 4. The documentation, with:
>>    - figures of the cells (openoffice format)
>>    - implementation status (openoffice format)
>>    - Gnuplot files with shape functions (for 2D cells only ;) )
>>    - VTK Dataset for each new cell
>>
>> I tried to fulfil the the contribution rules (copyright and stuff) and
>> the coding standart of VTK.
>>
>> If you have any question or suggestions, feel free to contact me.
>>
>> Best regards
>> Soeren Gebbert
>>
>>
>>
>>
>>
>> _______________________________________________
>> 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