[vtkusers] Setting extent of pieces in *pvts files vtk-7.0

Philip Sakievich psakievich at gmail.com
Tue Sep 6 12:05:53 EDT 2016


All,

I am trying to integrate vtk xml files into a parallel code I am using for
research.  I am not the original developer, but I am introducing new
functionality for post processing. I am able to write the *vts files
locally on each processor, and set the grid's extent for each of these
files.  I am trying to write the *pvts file on rank 0, but I haven't
figured out how to set the extent in this file so the defined pieces match
the individual vts files.  I am probably just missing a function call, so
if someone could help me out that would be great.  I have not been able to
find any examples online thus far.

Here is a section of the c++ code with the writer objects is included
below. I am calling this as a function from fortran (the main code is all
fortran) and I am passing the MPI rank as nPartition. Right now I only get
the extent of the grid stored on rank0 because that is where I am
generating the *pvts file.  The other files/pieces totally omit the extent
parameter and it won't read into paraview unless they are correct.

///---------------CODE SNIPPET------------------------------
        //Step 5: Setup writer object and write file
        int ext[6]={7,14,0,31,0,7};
        if(*nPartition==1)
                sGrid->SetExtent(ext); //THIS WORKS FOR THE *VTS FILES
        if(*nPartition!=0)
        {
                vtkSmartPointer<vtkXMLStructuredGridWriter> writer =
                        vtkSmartPointer<vtkXMLStructuredGridWriter>::New();
                writer->SetFileName(&stFileName[0]);
                writer->SetInputData(sGrid);
                writer->Write();
        }
        //Step 6: If partition zero write pvts vile
        if(*nPartition==0)
        {
                stPFileName+=".pvts";
                vtkSmartPointer<vtkXMLPStructuredGridWriter> pwriter =
                        vtkSmartPointer<vtkXMLPStructuredGridWriter>::New();
                pwriter->SetFileName(&stPFileName[0]);
                pwriter->SetInputData(sGrid);
                pwriter->SetNumberOfPieces(8);
                //pwriter->SetUpdateExtent(1,ext); //THIS DOESN'T SEEM TO
DO ANYTHING, INHERITED FROM vtkAlgorthim
                pwriter->Write();
        }

///---------------CODE SNIPPET------------------------------
///---------------PVTS FILE OUTPUT------------------------
<?xml version="1.0"?>
<VTKFile type="PStructuredGrid" version="0.1" byte_order="LittleEndian"
header_type="UInt32" compressor="vtkZLibDataCompressor">
  <PStructuredGrid WholeExtent="0 7 0 31 0 7" GhostLevel="0"> //NEED TO
MODIFY WHOLE EXTENT TOO
    <PPointData Scalars="temperature" Vectors="velocity">
      <PDataArray type="Float64" Name="velocity" NumberOfComponents="3"/>
      <PDataArray type="Float64" Name="pressure"/>
      <PDataArray type="Float64" Name="temperature"/>
    </PPointData>
    <PPoints>
      <PDataArray type="Float32" Name="Points" NumberOfComponents="3"/>
    </PPoints>
    <Piece Extent="0 7 0 31 0 7" Source="test_0.vts"/>
    <Piece Source="test_1.vts"/>
    <Piece Source="test_2.vts"/> //MISSING EXTENT HERE!!!
    <Piece Source="test_3.vts"/>
    <Piece Source="test_4.vts"/>
    <Piece Source="test_5.vts"/>
    <Piece Source="test_6.vts"/>
    <Piece Source="test_7.vts"/>
  </PStructuredGrid>
</VTKFile>--
///---------------PVTS FILE OUTPUT------------------------

Thanks,

Phil S.

PS sorry if this is a duplicate, I'm new to the user list.  I tired to post
it before but never saw it sent to my inbox as part of the mailing list.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160906/9a57dc74/attachment.html>


More information about the vtkusers mailing list