[vtkusers] vtkCellDerivatives

Andy Bauer andy.bauer at kitware.com
Wed Jan 20 13:19:09 EST 2016


I've looked at this a bit more along with others and unfortunately there's
some inconsistency in VTK for tensor ordering. If you look at the
vtkCell::Derivatives() documentation (
http://www.vtk.org/doc/nightly/html/classvtkCell.html#aff3d8332e9d7d556a9d2e9f91173d068),
it's using a C/row-major ordering. There's some places in that have done
row-major and others that have done column major. For the most part it
hasn't been an issue since many/most of the uses of tensor have been
symmetric but it should be fixed regardless.

I've entered a mantis issue for this at
http://www.paraview.org/Bug/view.php?id=15949.

Would you be willing to go in and make the change to vtkCellDerivatives?
I'm hoping to go through your changes to that class sometime today.

On Wed, Jan 20, 2016 at 7:52 AM, Andy Bauer <andy.bauer at kitware.com> wrote:

> Hmm, in fact it does. I was looking at vtkGradientFilter instead of
> vtkCellDerivatives for the ordering of the output of the gradient of a
> vector. I think the output order is supposed to be fortran/column-major
> ordering like vtkCellDerivatives instead of C/row-major ordering like
> vtkGradientFilter. Well, you can see the confusion that crops up and maybe
> that's why vtkTensors was done that way. In any case, let me verify for
> sure which way is correct and get back to you on this.
>
> On Wed, Jan 20, 2016 at 5:24 AM, Martin Genet <
> martin.genet at polytechnique.edu> wrote:
>
>> Thanks Andy.
>>
>> Well, I might be wrong but I'm under the impression that
>> vtkCellDerivatives returns [du/dx, dv/dx, dw/dx, du/dy, dv/dy, ...]. Am I
>> wrong?
>>
>> Martin
>>
>>
>> On 20/01/2016 03:07, Andy Bauer wrote:
>>
>> Hi Martin,
>>
>> I haven't looked closely enough at vtkTensors (I don't know if I even
>> knew about it before today) but indeed the ordering output in
>> vtkCellDerivatives for a velocity vector {u,v,w} needs to be [du/dx, du/dy,
>> du/dz, dv/dx, dv/dy, ...] like you have it. I'm not sure when vtkTensors is
>> ordered the way it is.
>>
>> Cheers,
>> Andy
>>
>> On Tue, Jan 19, 2016 at 5:02 PM, Martin Genet <
>> martin.genet at polytechnique.edu> wrote:
>>
>>> Thanks Andy.
>>>
>>> I need to clarify something: the Derivatives function of vtkCell objects
>>> returns a derivs vector containing the components of the gradient of some
>>> vector field defined at the cell nodes; the components are ordered in row
>>> (as usually in C, i.e., (0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0),
>>> (2,1), (2,2)). Now in the CellDerivatives filter the derivs vector is used
>>> to fill a vtkTensors, and then the filter returns the internal vector
>>> storing the data of the vtkTensors. However, the components of the
>>> vtkTensors are ordered in column (as usually in fortran, i.e., (0,0),
>>> (1,0), (2,0), (0,1), (1,1), (2,1), (0,2), (1,2), (2,2)). Is it on purpose
>>> that the vtkTensors store their data in column and not in row? Isn't it a
>>> little dangerous to mix both storage in the code? Thanks for the
>>> clarification!
>>>
>>> Martin
>>>
>>>
>>> On 18/01/2016 13:32, Andy Bauer wrote:
>>>
>>> Hi Martin,
>>>
>>> Thanks for following up on this. I found the merge request now and will
>>> look at this. In general, developers should request others to do a code
>>> review on this. This can be done via something like "@acbauer please review
>>> this" or sending an email on this VTK list with a link to the merge request.
>>>
>>> Best,
>>> Andy
>>>
>>> On Mon, Jan 18, 2016 at 6:23 AM, Martin Genet <
>>> <martin.genet at polytechnique.edu>martin.genet at polytechnique.edu> wrote:
>>>
>>>> Hi Andy,
>>>>
>>>> I followed the directions, and submitted a patch (19 days ago), but
>>>> haven't heard anything back.
>>>>
>>>> In GitLab the merge requests counter is at 0, but when I try to create
>>>> a new merge request from my commit, it tells the merge request already
>>>> exists. Is it being reviewed somewhere? Thanks!
>>>>
>>>> Martin
>>>>
>>>>
>>>> On 29/12/2015 13:22, Andy Bauer wrote:
>>>>
>>>> Hi Martin,
>>>>
>>>> This patch makes sense. It would need a test if you want to get your
>>>> changes into VTK. The directions for contributing to VTK are at
>>>> <https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/develop.md>
>>>> https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/develop.md
>>>> .
>>>>
>>>> Cheers,
>>>> Andy
>>>>
>>>> On Mon, Dec 28, 2015 at 5:50 PM, Martin Genet <
>>>> <martin.genet at polytechnique.edu>martin.genet at polytechnique.edu> wrote:
>>>>
>>>>> Thanks Andy.
>>>>>
>>>>> What about simply adding another mode, e.g.
>>>>> SetTensorModeToComputeGreenLagrangeStrain, to the vtkCellDerivatives
>>>>> filter? Would the attached patch make sense?
>>>>>
>>>>> Martin
>>>>>
>>>>> On 28/12/2015 14:12, Andy Bauer wrote:
>>>>>
>>>>> Hi Martin,
>>>>>
>>>>> Changing the name of the SetTensorModeToComputeStrain method to
>>>>> something else would break backward compatibility which is generally
>>>>> avoided in VTK. Other options for this include deriving a class to compute
>>>>> non-linear strain from vtkCellDerivatives if it shares enough of the
>>>>> algorithm with the linearized version or maybe just creating a new filter.
>>>>>
>>>>> Cheers,
>>>>> Andy
>>>>>
>>>>> On Sat, Dec 26, 2015 at 4:36 PM, Martin Genet <
>>>>> <martin.genet at polytechnique.edu>martin.genet at polytechnique.edu> wrote:
>>>>>
>>>>>> Dear VTK users:
>>>>>>
>>>>>> I realize that the vtkCellDerivatives filter, when
>>>>>> SetTensorModeToComputeStrain is activated, returns the symmetric part of
>>>>>> the gradient of the input vector field, which is the linearized strain
>>>>>> tensor, i.e., not a proper measure of deformation when large displacements
>>>>>> are involved. Would that make sense to have two different modes,
>>>>>> SetTensorModeToComputeLinearizedStrain or
>>>>>> SetTensorModeToComputeSymmetricGradient, and SetTensorModeToComputeStrain
>>>>>> or SetTensorModeToComputeGreenLagrangeStrain? Thanks!
>>>>>>
>>>>>> Martin
>>>>>> _______________________________________________
>>>>>> Powered by <http://www.kitware.com>www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> <http://www.kitware.com/opensource/opensource.html>
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Please keep messages on-topic and check the VTK FAQ at:
>>>>>> <http://www.vtk.org/Wiki/VTK_FAQ>http://www.vtk.org/Wiki/VTK_FAQ
>>>>>>
>>>>>> Search the list archives at: <http://markmail.org/search/?q=vtkusers>
>>>>>> http://markmail.org/search/?q=vtkusers
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> <http://public.kitware.com/mailman/listinfo/vtkusers>
>>>>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160120/7385d3d9/attachment.html>


More information about the vtkusers mailing list