[Paraview] Problem after updating from Paraview 3.8.1 to Paraview 3.12

Burlen Loring bloring at lbl.gov
Wed Nov 30 11:35:41 EST 2011


Hi Jorge,

You may want to take a look at vtkSQKernelConvolution filter in 
Plugins/SQToolKit of 3.12 sources. This is an example of an extent based 
filter that produces smaller WHOLE_EXTENT on its output based on user 
selection in the PV GUI. This filter is working fine in 3.12.

What's going on in this filter:

The user selects a kernel size in the GUI. The filter needs 
kernelWidth/2 ghost cells to make its computations. On the interior of 
the WHOLE_EXTENT we can generate ghost cells using communication. 
However we don't have ghost cells outside of the WHOLE_EXTENT. In order 
to overcome we shrink the WHOLE_EXTENT in the output of the 
vtkSQKernelConvolution filter using the original cells that are outside 
this smaller extent on the input as ghost data.

Any Modification to the kerneWidth in the GUI forces 
vtkSQKernelConvolution RequestInformation to run where we shrink 
WHOLE_EXTENT on the output info by the number of ghost cells we need.

vtkSQKernelConvolution RequestUpdateExtent runs next, where we grow the 
UPDATE_EXTENT going upstream to include the number of ghost cells we 
need. Upstream vtkSQImageGhosts RequestUpdateExtent will intercept and 
short circuit the larger update extent from traveling any further 
upstream. in vtkSQImageGhosts RequestData the necessary communication to 
generate the ghost cells are made. The short circuit by the 
vtkSQImageGhosts ReqquestUpdateExtent is important! if not then the new 
modified update extents continue up stream forcing the re-execution of 
the entire pipeline, including the reader which is expensive.

In vtkSQKernelConvolution RequestData, the input with ghost data is used 
to compute the convolution producing an image with smaller WHOLE_EXTENT. 
In terms of the keys etc nothing is special about our RequestData.

Hope this helps
Burlen

On 11/15/2011 07:33 AM, Jorge Gerardo Peña Pastor wrote:
> Hello,
>
> I've managed to run a Paraview based application created with Paraview
> 3.8.1 using Paraview 3.12, but one of my filters is reporting an error
> it didn't before.
>
> My vtkAlgorithm is a sub-class of vtkImageAlgorithm, which as a result
> of processing the input data generates a new vtkImageData which is
> smaller than the original one.
> Before, I managed to use that filter in my application, but now I get
> the following error:
> ERROR: src/ParaView-3.12.0/VTK/Filtering/vtkStreamingDemandDrivenPipeline.cxx,
> line 1009
> vtkPVCompositeDataPipeline (0x4c3dca0): The update extent specified in
> the information for output port 0 on algorithm
> vtkConnectedThresholdImageFilter(0x4c3c8d0) is 0 698 0 535 0 114,
> which is outside the whole extent 408 421 86 106 0 1.
>
> Inside my RequestData I've tried changing all possible combinations of
> whole extent, update extent and extent for both output and
> outputInformation without success.
>
> I've found several threads talking about changing
> StreamDrivenPipeline::WHOLE_EXTENT inside RequestUpdateExtent, but in
> order to change the value there I need to execute before at least one
> time my algorithm because the extent depends on the result of the
> algorithm.
>
> Could someone point me in the right direction to make this work with
> Paraview 3.12?
>
> Thank you for your help.
> _______________________________________________
> 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 ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview



More information about the ParaView mailing list