<div dir="ltr"><div><div><div>Hi Martin,<br><br></div>In case you didn't receive the email notice, your changes have been merged into master. Thanks for your contribution to VTK! This looks like it was your first contribution. I hope it wasn't too onerous to get done but the community works hard to make sure that the code is high quality and well tested.<br><br></div>Best regards,<br></div>Andy<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 22, 2016 at 10:22 AM, Andy Bauer <span dir="ltr"><<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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 :)<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 22, 2016 at 9:03 AM, Martin Genet <span dir="ltr"><<a href="mailto:martin.genet@polytechnique.edu" target="_blank">martin.genet@polytechnique.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    Sounds good.<br>
    <br>
    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.<br>
    <br>
    One option would be to make vtkCellDerivatives independent of
    vtkTensor.<br>
    <br>
    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.<br>
    <br>
    Let me know what you would prefer.<span><font color="#888888"><br>
    <br>
    Martin</font></span><div><div><br>
    <br>
    <div>On 20/01/2016 19:19, Andy Bauer wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>
          <div>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 (<a href="http://www.vtk.org/doc/nightly/html/classvtkCell.html#aff3d8332e9d7d556a9d2e9f91173d068" target="_blank">http://www.vtk.org/doc/nightly/html/classvtkCell.html#aff3d8332e9d7d556a9d2e9f91173d068</a>),

            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.<br>
            <br>
          </div>
          I've entered a mantis issue for this at <a href="http://www.paraview.org/Bug/view.php?id=15949" target="_blank"></a><a href="http://www.paraview.org/Bug/view.php?id=15949" target="_blank">http://www.paraview.org/Bug/view.php?id=15949</a>.<br>
          <br>
        </div>
        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.<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, Jan 20, 2016 at 7:52 AM, Andy
          Bauer <span dir="ltr"><<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">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.<br>
            </div>
            <div>
              <div>
                <div class="gmail_extra"><br>
                  <div class="gmail_quote">On Wed, Jan 20, 2016 at 5:24
                    AM, Martin Genet <span dir="ltr"><<a href="mailto:martin.genet@polytechnique.edu" target="_blank"></a><a href="mailto:martin.genet@polytechnique.edu" target="_blank">martin.genet@polytechnique.edu</a>></span>
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div text="#000000" bgcolor="#FFFFFF"> Thanks
                        Andy.<br>
                        <br>
                        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?<span><font color="#888888"><br>
                            <br>
                            Martin</font></span>
                        <div>
                          <div><br>
                            <br>
                            <div>On 20/01/2016 03:07, Andy Bauer wrote:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="ltr">
                                <div>
                                  <div>
                                    <div>Hi Martin,<br>
                                      <br>
                                    </div>
                                    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.<br>
                                    <br>
                                  </div>
                                  Cheers,<br>
                                </div>
                                Andy<br>
                              </div>
                              <div class="gmail_extra"><br>
                                <div class="gmail_quote">On Tue, Jan 19,
                                  2016 at 5:02 PM, Martin Genet <span dir="ltr"><<a href="mailto:martin.genet@polytechnique.edu" target="_blank"></a><a href="mailto:martin.genet@polytechnique.edu" target="_blank">martin.genet@polytechnique.edu</a>></span>
                                  wrote:<br>
                                  <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div text="#000000" bgcolor="#FFFFFF"> Thanks Andy.<br>
                                      <br>
                                      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!<span><font color="#888888"><br>
                                          <br>
                                          Martin</font></span>
                                      <div>
                                        <div><br>
                                          <br>
                                          <div>On 18/01/2016 13:32, Andy
                                            Bauer wrote:<br>
                                          </div>
                                          <blockquote type="cite">
                                            <div dir="ltr">
                                              <div>
                                                <div>
                                                  <div>Hi Martin,<br>
                                                    <br>
                                                  </div>
                                                  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.<br>
                                                  <br>
                                                </div>
                                                Best,<br>
                                              </div>
                                              Andy<br>
                                            </div>
                                            <div class="gmail_extra"><br>
                                              <div class="gmail_quote">On

                                                Mon, Jan 18, 2016 at
                                                6:23 AM, Martin Genet <span dir="ltr"><<a href="mailto:martin.genet@polytechnique.edu" target="_blank"></a><a href="mailto:martin.genet@polytechnique.edu" target="_blank">martin.genet@polytechnique.edu</a>></span>
                                                wrote:<br>
                                                <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                  <div text="#000000" bgcolor="#FFFFFF">
                                                    Hi Andy,<br>
                                                    <br>
                                                    I followed the
                                                    directions, and
                                                    submitted a patch
                                                    (19 days ago), but
                                                    haven't heard
                                                    anything back.<br>
                                                    <br>
                                                    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!<span><font color="#888888"><br>
                                                        <br>
                                                        Martin</font></span>
                                                    <div>
                                                      <div><br>
                                                        <br>
                                                        <div>On
                                                          29/12/2015
                                                          13:22, Andy
                                                          Bauer wrote:<br>
                                                        </div>
                                                        <blockquote type="cite">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>
                                                          <div>Hi
                                                          Martin,<br>
                                                          <br>
                                                          </div>
                                                          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
                                                          <a href="https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/develop.md" target="_blank"></a><a href="https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/develop.md" target="_blank">https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/develop.md</a>.<br>
                                                          <br>
                                                          </div>
                                                          Cheers,<br>
                                                          </div>
                                                          Andy<br>
                                                          </div>
                                                          <div class="gmail_extra"><br>
                                                          <div class="gmail_quote">On

                                                          Mon, Dec 28,
                                                          2015 at 5:50
                                                          PM, Martin
                                                          Genet <span dir="ltr"><<a href="mailto:martin.genet@polytechnique.edu" target="_blank"></a><a href="mailto:martin.genet@polytechnique.edu" target="_blank">martin.genet@polytechnique.edu</a>></span>
                                                          wrote:<br>
                                                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                          <div text="#000000" bgcolor="#FFFFFF"> Thanks Andy.<br>
                                                          <br>
                                                          What about
                                                          simply adding
                                                          another mode,
                                                          e.g.
                                                          SetTensorModeToComputeGreenLagrangeStrain,
                                                          to the
                                                          vtkCellDerivatives
                                                          filter? Would
                                                          the attached
                                                          patch make
                                                          sense?<br>
                                                          <br>
                                                          Martin<br>
                                                          <br>
                                                          <div>On
                                                          28/12/2015
                                                          14:12, Andy
                                                          Bauer wrote:<br>
                                                          </div>
                                                          <blockquote type="cite">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>
                                                          <div>Hi
                                                          Martin,<br>
                                                          <br>
                                                          </div>
                                                          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.<br>
                                                          <br>
                                                          </div>
                                                          Cheers,<br>
                                                          </div>
                                                          Andy<br>
                                                          </div>
                                                          <div class="gmail_extra"><br>
                                                          <div class="gmail_quote">On


                                                          Sat, Dec 26,
                                                          2015 at 4:36
                                                          PM, Martin
                                                          Genet <span dir="ltr"><<a href="mailto:martin.genet@polytechnique.edu" target="_blank"></a><a href="mailto:martin.genet@polytechnique.edu" target="_blank">martin.genet@polytechnique.edu</a>></span>
                                                          wrote:<br>
                                                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear


                                                          VTK users:<br>
                                                          <br>
                                                          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!<br>
                                                          <br>
                                                          Martin<br>
_______________________________________________<br>
                                                          Powered by <a href="http://www.kitware.com" target="_blank"></a><a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
                                                          <br>
                                                          Visit other
                                                          Kitware
                                                          open-source
                                                          projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank"></a><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
                                                          <br>
                                                          Please keep
                                                          messages
                                                          on-topic and
                                                          check the VTK
                                                          FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank"></a><a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
                                                          <br>
                                                          Search the
                                                          list archives
                                                          at: <a href="http://markmail.org/search/?q=vtkusers" target="_blank"></a><a href="http://markmail.org/search/?q=vtkusers" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
                                                          <br>
                                                          Follow this
                                                          link to
                                                          subscribe/unsubscribe:<br>
                                                          <a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank"></a><a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                        </blockquote>
                                                        <br>
                                                      </div>
                                                    </div>
                                                  </div>
                                                </blockquote>
                                              </div>
                                              <br>
                                            </div>
                                          </blockquote>
                                          <br>
                                        </div>
                                      </div>
                                    </div>
                                  </blockquote>
                                </div>
                                <br>
                              </div>
                            </blockquote>
                            <br>
                          </div>
                        </div>
                      </div>
                    </blockquote>
                  </div>
                  <br>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div>
</div></div></blockquote></div><br></div>