[vtkusers] Need to speed up stream tracing

Carsten Neumann carsten_neumann at gmx.net
Thu May 3 16:31:42 EDT 2012


	Hello,

I have a data set that contains a (fairly irregular) triangle grid, that 
is constant over all time steps and velocity vectors associated with 
each point that vary between time steps.
I have written a reader for the file format the data is stored in that 
can provide individual time steps [1] to the pipeline (it is not 
possible/desirable to load all time steps at once) as vtkPolyData.

Running vtkStreamTracer with 1000 randomly placed seed points takes too 
long to interactively change time steps (~16 secs) using the default 
settings of the stream tracer. Changing terminal speed to a much larger 
value and limiting maximum number of steps to 100 makes no significant 
difference in performance (the stream lines become too short to be 
useful though ;) ).
I had suspected that a significant amount of time was spent locating the 
cell a seed point is in and hoped setting 
SetInterpolatorTypeToCellLocator() would help [2], but that actually 
slowed things down even more (~21 secs).

I'm rather new to using vtk so it's quite possible I'm doing something 
"obviously" inefficient, especially wrt. the temporal data and ensuring 
that the pipeline understands that parts of it are not varying between 
time steps. Does anyone have ideas what I could check or how to speed up 
the stream tracing on this kind of data set?

I'm using vtk 5.8.0, on Fedora 16 x86_64, Core2 Quad 2.4 GHz, Nvidia GTX 
8800.

	Thank you & kind regards,
		Carsten


[1] In other words the reader evaluates 
vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS() information when 
processing a data request and sets vtkDataObject::DATA_TIME_STEPS() on 
the output data object.

[2] As far as I understand it using a cell locator builds a spatial data 
structure to speed up finding the cells over which to interpolate the 
vector data? In that case it looks as if the spatial data structure is 
rebuilt for each time steps although the grid does not change, only data 
point data associated with the grid points varies.



More information about the vtkusers mailing list