<div dir="ltr"><div><div><div>Hi Ufuk,<br><br></div>If the files are small, could you send them? I'll investigate some. Also, sending your Catalyst Python script may help clue me into what's going wrong.<br><br></div>Best,<br></div>Andy<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 19, 2018 at 4:06 PM, Ufuk Turuncoglu <span dir="ltr"><<a href="mailto:u.utku.turuncoglu@be.itu.edu.tr" target="_blank">u.utku.turuncoglu@be.itu.edu.tr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:#000000"><div><div class="m_-3599309367708978177moz-cite-prefix">Thanks for your valuable comments. Yes, for each model component has two grid 2d and 3d and they are coming from different channels. It is working under 5.4.1 but i'll check the bug and try to fix my version until 5.5 released. BTW, even if I set whole extend (to test it I hardcoded it) in the place that you indicate, the piece and whole extent is same in the files.<br></div><div class="m_-3599309367708978177moz-cite-prefix"><br></div><div class="m_-3599309367708978177moz-cite-prefix">Regards,</div><div class="m_-3599309367708978177moz-cite-prefix"><br></div><div class="m_-3599309367708978177moz-cite-prefix">--ufuk</div><br></div><div><br></div><hr id="m_-3599309367708978177zwchr"><div><b>From: </b>"Andy Bauer" <<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a>><br><b>To: </b>"Ufuk Utku Turuncoglu (BE)" <<a href="mailto:u.utku.turuncoglu@be.itu.edu.tr" target="_blank">u.utku.turuncoglu@be.itu.edu.<wbr>tr</a>><br><b>Cc: </b>"paraview" <<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>><br><b>Sent: </b>Monday, March 19, 2018 3:51:51 PM<br><b>Subject: </b>Re: [Paraview] structured to unstructured when using multiblocks filter<br></div><div><div class="h5"><br><div><div dir="ltr"><div><div><div><div>Hi Ufuk,<br><br></div>It looks like you're already using multi-channel input as you're adding since you have "
g_coprocessorData-><span class="m_-3599309367708978177gmail-pl-c1">AddInput</span>(<wbr>strarr[i]);

" unless that's always just called once. We're just trying to clarify the "inputs" by naming them channels -- I'm not sure it makes it easier to understand but it makes it easier to talk about with others that understand that concept in Catalyst.<br><br></div>Setting whole extent would look like the following at line 129 in adaptor.cpp:<br>
<table class="m_-3599309367708978177gmail-highlight m_-3599309367708978177gmail-tab-size m_-3599309367708978177gmail-js-file-line-container"><tbody><tr><td id="m_-3599309367708978177gmail-LC128" class="m_-3599309367708978177gmail-blob-code m_-3599309367708978177gmail-blob-code-inner m_-3599309367708978177gmail-js-file-line">    <span class="m_-3599309367708978177gmail-pl-k">if</span> (vtkDataSet* grid = <span class="m_-3599309367708978177gmail-pl-c1">vtkDataSet::SafeDownCast</span>(g_<wbr>coprocessorData-><span class="m_-3599309367708978177gmail-pl-c1">GetInputDescr<wbr>iptionByName</span>(name)-><span class="m_-3599309367708978177gmail-pl-c1">GetGrid</span>())<wbr>) {</td>
      </tr>
      <tr>
        </tr></tbody></table><table class="m_-3599309367708978177gmail-highlight m_-3599309367708978177gmail-tab-size m_-3599309367708978177gmail-js-file-line-container"><tbody><tr><td id="m_-3599309367708978177gmail-LC129" class="m_-3599309367708978177gmail-blob-code m_-3599309367708978177gmail-blob-code-inner m_-3599309367708978177gmail-js-file-line m_-3599309367708978177gmail-highlighted">      <span class="m_-3599309367708978177gmail-pl-c1">ParaViewCoProcessing::<wbr>ClearFieldDataFromGrid</span>(grid);<br>
g_coprocessorData-><span class="m_-3599309367708978177gmail-pl-c1">GetInputDes<wbr>criptionByName</span>(name)-><span class="m_-3599309367708978177gmail-pl-c1"></span>

SetWholeExtent(ilow, ihigh, jlow, jhigh, klow, khigh);<br></td>
      </tr>
      <tr>
        </tr></tbody></table><table class="m_-3599309367708978177gmail-highlight m_-3599309367708978177gmail-tab-size m_-3599309367708978177gmail-js-file-line-container"><tbody><tr><td id="m_-3599309367708978177gmail-LC130" class="m_-3599309367708978177gmail-blob-code m_-3599309367708978177gmail-blob-code-inner m_-3599309367708978177gmail-js-file-line">    } <span class="m_-3599309367708978177gmail-pl-k">else</span> {</td>
      </tr>
      <tr>
        </tr></tbody></table>

<br></div>Here, *low and *high are global values. For example, for a 1D case if each process has 5 points and you have 3 mpi processes ilow=jlow=jhigh=klow=khigh=0 and ihigh=12. The vtkStructuredGrid::SetExtent() would look like:<br></div>proc 0: 0, 4, 0, 0, 0, 0<br><div><div>
proc 1: 4, 8, 0, 0, 0, 0 <br>
proc 2: 8, 12, 0, 0, 0, 0

<br><br></div><div>This looks like you're doing it properly in grid.cpp though but I didn't set the SetWholeExtent() in adaptor.cpp and I'm guessing that's what's missing.<br><br></div><div>The multi-channel input should work in 5.4.1 but I found a bug that's been fixed in the upcoming 5.5 that was affecting Live. See <a href="https://gitlab.kitware.com/paraview/paraview/merge_requests/2212" target="_blank">https://gitlab.kitware.com/<wbr>paraview/paraview/merge_<wbr>requests/2212</a> for details on that. It's fairly small so you can probably backport that to your 5.4.1 build if you're more comfortable using 5.4.1.<br><br></div><div>Cheers,<br></div><div>Andy<br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 19, 2018 at 7:50 AM, Ufuk Utku Turuncoglu (BE) <span dir="ltr"><<a href="mailto:u.utku.turuncoglu@be.itu.edu.tr" target="_blank">u.utku.turuncoglu@be.itu.edu.<wbr>tr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix">Hi Andy,</div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix">Thanks for your help. Yes, each tile
      has its own grid information. The problem is that if i set whole
      extent in the adaptor side and write data to disk using
      allinputsgridwrite.py, the whole extent is same with piece extent.
      I am not sure what is going on in the background when live
      visualization activated. If you want to look at it for possible
      problem, the code is in following link (adaptor.cpp and grid.cpp),</div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><a class="m_-3599309367708978177m_7908305580367046430moz-txt-link-freetext" href="https://github.com/uturuncoglu/RegESM/tree/master/cop" target="_blank">https://github.com/<wbr>uturuncoglu/RegESM/tree/<wbr>master/cop</a><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix">The second option is also worth to try
      but first i need to look at the example. BTW, i am using 5.4.1. Do
      you think that the multi-channel input also works with 5.4.1? How
      it is handled by Catalyst in live mode? Do i have multiple
      visualization pipeline?</div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix">Regards,</div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix">--ufuk<br>
    </div><div><div class="m_-3599309367708978177h5">
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix"><br>
    </div>
    <div class="m_-3599309367708978177m_7908305580367046430moz-cite-prefix">On 19.03.2018 13:36, Andy Bauer wrote:<br>
    </div>
    <blockquote>
      <div dir="ltr">
        <div>
          <div>Hi Ufuk,<br>
            <br>
          </div>
          Currently a multipiece data set always has to be nested under
          a multiblock dataset. This definitely seems like an
          unreasonable limitation on a structured grid under a
          multipiece dataset but I suspect we just haven't had the
          resources to put into making this work properly. My suggestion
          would be to try just having your Catalyst adaptor provide a
          structured grid directly, assuming you only have one grid per
          mpi process, and then try volume rendering like that. If you
          do this though, make sure to set the whole extent with
          vtkCPInputDataDescription::<wbr>SetWholeExtent(). <br>
          <br>
        </div>
        A thought here -- instead of changing your adaptor to generate
        the structured grid directly instead of a multipiece dataset,
        maybe create a second "channel" through a second
        vtkCPInputDataDescription that provides just a structured grid.
        This way you can provide both dataset types as needed instead of
        having to modify code back and forth, recompile, etc. to get
        different functionality. See the
        Examples/Catalyst/<wbr>CxxMultiChannelInputExample in the 5.5 source
        code for some more details on this.<br>
        <div><br>
        </div>
        <div>I can't remember if you were using the editions or just the
          full ParaView Catalyst build but in 5.5 there will be a volume
          rendering Catalyst addition.<br>
        </div>
        <div><br>
          Note that the multiblock/multipiece hierarchy will be
          undergoing a significant change in the near future.<br>
          <br>
        </div>
        <div>Best,<br>
        </div>
        <div>Andy<br>
        </div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Sun, Mar 18, 2018 at 1:21 PM, Ufuk
          Turuncoglu <span dir="ltr"><<a href="mailto:u.utku.turuncoglu@be.itu.edu.tr" target="_blank">u.utku.turuncoglu@be.itu.edu.<wbr>tr</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div>
              <div style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:#000000">
                <div>Hi, <br>
                  <br>
                  I am using MPI parallel code under Catalyst
                  co-processing. In this case, i am defining data by
                  creating multi-block dataset and putting multi-piece
                  dataset into the first block (0). In this case, each
                  piece is defined as structured grid. The problem is
                  that, to create volume rendering, i need to use
                  MergeBlocks filter under ParaView but it changes data
                  type from structured grid to unstructured one. I just
                  wonder that is there any way to merge blocks without
                  changing type? Programmable filter etc.? Another
                  workaround could be defining dataset without using
                  multi block under co-processing adaptor code. So, is
                  it possible to represent multi-piece data under
                  co-processing without putting it into multi-bloack
                  dataset. <br>
                  <br>
                  Regards, <br>
                  <br>
                  --ufuk</div>
              </div>
            </div>
            <br>
            ______________________________<wbr>_________________<br>
            Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
            <br>
            Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
            <br>
            Please keep messages on-topic and check the ParaView Wiki
            at: <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/<wbr>ParaView</a><br>
            <br>
            Search the list archives at: <a href="http://markmail.org/search/?q=ParaView" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>ParaView</a><br>
            <br>
            Follow this link to subscribe/unsubscribe:<br>
            <a href="https://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">https://public.kitware.com/<wbr>mailman/listinfo/paraview</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <p><br>
    </p>
  </div></div></div>

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