<div dir="ltr">Hi Alejandro,<div><br></div><div>(I CCed the mailing list to share the knowledge)</div><div><br></div><div>(Note that you need VTK 6.2 or later for what I am about to describe.)</div><div><br></div><div>What you have is almost correct. You just need a way for the whole extent information to get to the writer. So do this:</div><div><br></div><div>vtkNew<vtkTrivialProducer> tp;</div><div>tp->SetOutput(imageData);</div><div>tp->SetWholeExtent(<span style="font-size:12.8000001907349px">0, msx-1, 0, msy-1,</span><span style="font-size:12.8000001907349px"> 0, msz-1);</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">writer->SetInputConnection(tp->GetOutputPort());</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">By the way, SetInputData() does almost exactly this except that it has no way of setting the whole extent.</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Best,</span></div><div><span style="font-size:12.8000001907349px">-berk</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 2, 2015 at 12:28 PM, Alejandro Fernández <span dir="ltr"><<a href="mailto:alejandro.fernandez@bsc.es" target="_blank">alejandro.fernandez@bsc.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Thanks for your answer!<br>
    <br>
    I used the vtkXMLPImageDataWriter to write my .pvti file only with
    MPI process 0. However, I can not find a way to specify the whole
    extent of the .pvti file separately from the extent of each piece.
    My domains are patitioned along the Z axis (third) component. But
    the writer seems to implicitly partition the Y axis and I do not
    know how to specify it separately. Please, can you tell me if there
    is any way to do so? Here is the structure of my code:<br>
    <br>
    vtkSmartPointer<vtkImageData> imageData =
    vtkSmartPointer<vtkImageData>::New();<br>
    imageData->SetExtent(0, msx-1, 0, msy-1, zstart, zend); // zstart
    and zend vary depending on MPI process<br>
    imageData->SetSpacing(hx, hy, hz);<br>
    <br>
    vtkSmartPointer<VtkFloatArray> sf =
    vtkSmartPointer<VtkFloatArray>::New();<br>
    sf->SetNumberOfComponents(nDims);<br>
    sf->SetNumberOfTuples(msx*msy*(zend-zstart+1));<br>
    ... loop<br>
                sf->SetTuple(tupleCount++, field_data);<br>
    ...<br>
    <br>
    imageData->GetPointData()->AddArray(sf);<br>
    <br>
    vtkSmartPointer<vtkXMLPImageDataWriter> writer =
    vtkSmartPointer<vtkXMLPImageDataWriter>::New();<br>
    <br>
    // I would expect a way to specify the "whole extent" here<br>
    // This does not work
    <a href="http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_SetWholeExtent" target="_blank">http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_SetWholeExtent</a><br>
    if (world->rank() != 0)  writer->WriteSummaryFileOff();<br>
    writer->SetNumberOfPieces(world->size());<br>
    writer->SetEndPiece(world->rank());<br>
    writer->SetStartPiece(world->rank());<br>
    <br>
    writer->SetFileName("output.pvti");<br>
    writer->SetInputData(imageData);<br>
    writer->Write();<br>
    <br>
    Thanks a lot!<span class=""><br>
    <pre cols="72">--

Alejandro Fernández Suárez
Computer Science Dept.
K2M Building - Room 104 - <a href="tel:%28%2B34%29%20934%20137%20529" value="+34934137529" target="_blank">(+34) 934 137 529</a>
Barcelona Supercomputing Center - CNS
<a href="http://www.bsc.es" target="_blank">www.bsc.es</a></pre>
    </span><div><div class="h5"><div>On 01/06/2015 19:52, Shawn Waldon
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>One of the key things to realize about the vtkXMLP*Writers
          is that the writer makes no assumptions when used in
          parallel.  The P is for Piece not Parallel, so you have to
          tell it how many pieces total are being written.  You also
          have to tell it the start and end piece numbers for each
          process (probably just the process id).  Otherwise it defaults
          to  one total piece and each process thinks it is writing
          piece 0 so the file gets clobbered when all the processes try
          to write it.  See the vtkXMLPDataWriter documentation [1] for
          details on how to set these options.<br>
          <br>
        </div>
        <div>HTH,<br>
        </div>
        Shawn<br>
        <br>
        [1]: <a href="http://www.vtk.org/doc/nightly/html/classvtkXMLPDataWriter.html" target="_blank">http://www.vtk.org/doc/nightly/html/classvtkXMLPDataWriter.html</a><br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Mon, Jun 1, 2015 at 1:15 PM, Berk
          Geveci <span dir="ltr"><<a href="mailto:berk.geveci@kitware.com" target="_blank">berk.geveci@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">The easiest thing is to
              use vtkXMLPImageDataWriter in parallel to write an example
              and then to follow that template.
              <div><br>
              </div>
              <div>Best,</div>
              <div>-berk</div>
            </div>
            <div>
              <div>
                <div class="gmail_extra"><br>
                  <div class="gmail_quote">On Thu, May 28, 2015 at 2:20
                    PM, Alejandro Fernández <span dir="ltr"><<a href="mailto:alejandro.fernandez@bsc.es" target="_blank">alejandro.fernandez@bsc.es</a>></span>
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello
                      everyone,<br>
                      <br>
                      I have a C++ MPI application that writes the
                      results of a domain-decomposed mesh in different
                      VTI files. Each process writes its own VTI file
                      with the points corresponding to its domain. In
                      order to group all VTI files into a single 3D
                      image in paraview, I want to produce a single PVTI
                      file using XMLPImageDataWriter. However, I have
                      not found any example and do not know how to
                      achieve this result with just the raw class method
                      documentation.<br>
                      <br>
                      Please, can somebody provide me a C++ example or
                      point me to the required documentation?<br>
                      <br>
                      Thank you very much, your help will be much
                      appreciated.<br>
                      <br>
                      -- <br>
                      <br>
                      Alejandro Fernández Suárez<br>
                      Computer Science Dept.<br>
                      K2M Building - Room 104 - <a href="tel:%28%2B34%29%20934%20137%20529" value="+34934137529" target="_blank">(+34) 934
                        137 529</a><br>
                      Barcelona Supercomputing Center - CNS<br>
                      <a href="http://www.bsc.es" target="_blank">www.bsc.es</a><br>
                      <br>
                      _______________________________________________<br>
                      Powered by <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">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">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">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">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
                    </blockquote>
                  </div>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            Powered by <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">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">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">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">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

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