<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hello,<br><br>I’m interested in pathline integration in an unsteady vector field. My idea was to construct a vtkMultiBlockDataSet (each block represents a time step) and use vtkTemporalStreamTracer for the integration.<br><br>Problem: How to set the meta information for the time values correctly?<br><br>Here's some code:<br><br><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">// Read velocity time steps (in this example reduced to 2 time steps)<br>vtkSmartPointer<vtkStructuredGridReader> velocityReader0 = vtkSmartPointer<vtkStructuredGridReader>::New();<br>velocityReader0->SetFileName(path0); // analogous for velocityReader1<br><br>// Construct multi block data set<br>vtkSmartPointer<vtkMultiBlockDataSet> velocityData = vtkSmartPointer<vtkMultiBlockDataSet>::New();<br>velocityData->SetNumberOfBlocks(2);</blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><br>velocityData->SetBlock(0, velocityReader0->GetOutput());<br>velocityData->SetBlock(1, velocityReader1->GetOutput());<br><br>// Construct temporal stream tracer<br>vtkSmartPointer<vtkTemporalStreamTracer> tracer = vtkSmartPointer<vtkTemporalStreamTracer>::New();<br>tracer->SetInputData(velocityData);<br>tracer->SetSourceConnection(points->GetOutputPort()); // some points where the integration should start</blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><br>double timeSteps[] = {0.0, 1.0};<br>tracer->GetInputInformation()->Set(vtkStreamingDemandDrivenPipeline::TIME_STEPS(), timeSteps, 2);</blockquote><br><br>Using the above code I get a runtime error stating “vtkTemporalStreamTracer: No time step info”.<div>The vtkTemporalStreamTracer.cxx source code suggests I have to set the vtkDataObject::DATA_TIME_STEP information.</div><div><br></div><div>By trial and error, I got the error gone by for example:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>tracer->GetInputInformation()->Set(vtkDataObject::DATA_TIME_STEP(), 0.0);</div><div><br></div></blockquote>However, I don’t understand why the vtkTemporalStreamTracer wants to read a single time step value from the input data (which is a multi block data set). Besides that the tracer should already know all time values from the vtkStreamingDemandDrivenPipeline::TIME_STEPS() information key, it does not make sense for me why I should assign a single time step to the multi block container, instead of assigning each block data the respective time value.<br><div><br></div><div>Of course, the application still crashes with runtime error "vtkTemporalStreamTracer: InitializeInterpolator failed”.</div><div><br></div><div><br></div><div>Thank you very much!</div><div><br></div><div>Best,</div><div>Tim</div><div><br></div><div><br><br><br><br><br></div></body></html>