[vtkusers] vtkCellDerivatives
Martin Genet
martin.genet at polytechnique.edu
Fri Jan 22 09:03:33 EST 2016
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.
>
> 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
> <mailto: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> 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.
>>>>
>>>> Cheers,
>>>> Andy
>>>>
>>>> On Mon, Dec 28, 2015 at 5:50 PM, Martin Genet
>>>> <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> 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 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 VTK FAQ at:
>>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>>
>>>>> Search the list archives at:
>>>>> http://markmail.org/search/?q=vtkusers
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160122/224f3ede/attachment-0001.html>
More information about the vtkusers
mailing list