[Paraview] Difference between "Compute Derivatives" and "Gradient (Unstructured)"...

Stefan Melber Stefan.Melber at DLR.de
Thu Jan 8 00:39:21 EST 2009


Hi Ken,

> I took a look at this.  To answer the first question, compute 
> derivatives and gradient (unstructured) are fairly similar.  The 
> compute derivatives filter takes point scalars and computes the 
> gradient in the centroid of each cell (thus producing cell data). 
>  This is a fairly straightforward operation as the vtkCell classes can 
> compute the gradient anywhere in the cell from point data.
>
> The gradient filter can take point data and find the data at the 
> points or take cell data and find (an estimate of) the gradient at the 
> cell centroids.  The algorithm for finding the cell-centered is 
> similar to that in compute derivatives and should take about the same 
> amount of time.  The algorithm for finding point-centered data is to 
> find the gradient at each point of each cell and average the results 
> at each point.
>
> On your prompting, I can the gradient filter through a performance 
> monitor and realized that it was spending about half its time checking 
> for degenerate cells.  I just checked in a change that makes the check 
> much faster.  However, because the gradient filter is doing more 
> derivative calculations, it will always be slower than compute 
> derivatives.
>
So its possible to change the gradient-filter to get a speedup? - nice. 
Please let me know when this change is checked in into the cvs-version 
of paraview - i will check it here again.

The last statement i dont understand: using the "compute derivatives" i 
get overall a tensor with 9 derivatives, using the "gradient" filter i 
get only three. So in my case, because i need the complete tensor (to 
compute the strain-rate of the flow) i have to call three times the 
"gradient"-filter. So overall, in both cases 9 derivatives are 
calculated - or am i wrong?
> That said, I think it should be fairly easy to add a mode that 
> approximates point gradients by computing cell gradients using the 
> point data and then doint a point-to-cell conversion much like you 
> were doing.  Would anyone want that?
I have done it by combining both steps in a custom filter ... so thats 
enough for me. If other users need it - why not.

Yust a small remark regarding paraview overall: its really a nice tool! 
I currently do much comparison work between paraview, fieldview and 
ensight. We have all packages here at DLR (the german aerospace center) 
and i want to find out if all features we need from fv and ensight can 
be done although in pv ... it seems, thats the case. And pv is much more 
flexible then the other packages. Further on, the speed is critical, 
because we have huge unstructured datasets (typical: > 20e6 points up to 
50e6, sometimes time dependend). So the complete parallel setup of pv 
can be a great help here - with (serial) fv for example we run all the 
time on the limits of our workstations (16 GB main memory, 4 cores) ...

Best regards,

      Stefan

>
> -Ken
>
>
> On 1/7/09 2:44 AM, "Stefan Melber" <Stefan.Melber at DLR.de> wrote:
>
>     Hi,
>
>     i have a question regarding the filters "Compute Derivatives" and
>     "Gradient (Unstructured)". I have to calculate a equation on an
>     unstructured data set with some derivatives of the velocity.
>
>     Using the "Gradient (Unstructured)" it works, but it is really slow.
>     Using the "Compute Derivatives" and the convert the result back from
>     cell centers to points i can get nearly the same results - but much
>     faster (the most time takes the conversion from cell center to
>     points!).
>
>     So i made a comparison of both results with an isosurface of the
>     magnitude of the difference between both gradients an i can only find
>     minor changes. So my question to the developers: Where is the
>     difference
>     between both filters? Why is the "Gradient (Unstructured)" so much
>     slower?
>
>     Best regards and thank you in advance,
>
>          Stefan
>



More information about the ParaView mailing list