[vtkusers] vtkCellDerivatives

Andy Bauer andy.bauer at kitware.com
Fri Jan 22 10:22:07 EST 2016


It looks like vtkCellDerivates is the only class that uses vtkTensor. When
we switch vtkCellDerivatives to C ordering I think we'll just remove
vtkTensor. Less code with the same functionality and probably better
efficiency -- tough to beat that :)

On Fri, Jan 22, 2016 at 9:03 AM, Martin Genet <
martin.genet at polytechnique.edu> wrote:

> Sounds good.
>
> However, here the culprit seems to be vtkTensor, which stores the data in
> column. vtkCellDerivatives simply fills a vtkTensor (filling is storage
> independent, since one provides the actual components), and then returns
> the underlying vector.
>
> One option would be to make vtkCellDerivatives independent of vtkTensor.
>
> But I think it would be better to correct the storage in vtkTensor.
> Actually, it seems that vtkTensor is used only in vtkCellDerivatives, so it
> would not change the rest of the library.
>
> Let me know what you would prefer.
>
> Martin
>
>
> On 20/01/2016 19:19, Andy Bauer wrote:
>
> 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>
> 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>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>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/20160122/fd1674e2/attachment.html>


More information about the vtkusers mailing list