[Paraview] Reading xdmf in parallel

Romain Futrzynski fromain at kth.se
Sun Jul 14 15:39:49 EDT 2013


Hi,

I have data in hdf5 files which I want to process with Paraview, so I wrote an xdmf file that describes the data. I have compiled paraview 4.0.1 with MPI on a linux cluster, and paraview with Qt on windows which I use as client.

My data displays properly in the client, but since it is quite large I would like to read/process it in parallel.
However, if I color by ProcessId (either the filter or the vtkProcessId) I see that all the data is given by a single process. I believe that everything is set up properly since if I create a sphere source and apply the same filter, I can indeed see several colors. The structure of the xdmf file is as follows:

<Xdmf>
                <Domain>
                                <Grid Name="Channel" GridType="Collection" CollectionType="Temporal">
                                                <Grid Name="G at 0s" GridType="Uniform" >
                                                                <Topology ... />
                                                                <Geometry ... />
                                                                <Attribute Name="Pressure" Center="Cell" AttributeType="Scalar">
                                                                                                <DataItem ItemType="HyperSlab" Dimensions="327680" Type="HyperSlab">
                                                                                                                <DataItem Dimensions="3 2" Format="XML">
                                                                                                                                0              983040
                                                                                                                                1              1
                                                                                                                                1              327680
                                                                                                                </DataItem>
                                                                                                                <DataItem Format="HDF" Dimensions="71 1310720">
                                                                                                                                Re350_oscillating0001.h5:/snapshots_T
                                                                                                                </DataItem>
                                                                                                </DataItem>
                                                                </Attribute>
                                                </Grid>
                                                <Grid Name="G at 1s" GridType="Uniform" >
                                                                <Topology ... />
                                                                <Geometry ... />
                                                                <Attribute Name="Pressure" Center="Cell" AttributeType="Scalar">
                                                                                                <DataItem ItemType="HyperSlab" Dimensions="327680" Type="HyperSlab">
                                                                                                                <DataItem Dimensions="3 2" Format="XML">
                                                                                                                                0              983040
                                                                                                                                1              1
                                                                                                                                1              327680
                                                                                                                </DataItem>
                                                                                                                <DataItem Format="HDF" Dimensions="71 1310720">
                                                                                                                                Re350_oscillating0001.h5:/snapshots_T
                                                                                                                </DataItem>
                                                                                                </DataItem>
                                                                </Attribute>
                                                </Grid>
                                                <Time TimeType="List">
                                                                <DataItem Format="XML" NumberType="Float" Dimensions="71">
                                                                                0     1
                                                                </DataItem>
                                                </Time>
                                </Grid>
                </Domain>
</Xdmf>


After much searching it seems that one has to use Spatial collections for paraview to deal with the data in parallel. Indeed with something like:

<Xdmf>
                <Domain>
                                <Grid Name="Channel" GridType="Collection" CollectionType="Temporal">
                                                <Grid Name="foo" GridType="Collection" CollectionType="Spatial">
                                                                <Grid Name="G0 at 0s" GridType="Uniform" >
                                                                                <Topology ... *Contains a fraction of the cells* />
                                                                                <Geometry ... />
                                                                                <Attribute ... />
                                                                </Grid>
                                                                <Grid Name="G1 at 0s" GridType="Uniform" >
                                                                                <Topology ... *Contains another fraction of the cells* />
                                                                                <Geometry ... />
                                                                                <Attribute ... />
                                                                </Grid>
                                                </Grid>
...
                                                <Time TimeType="List">
                                                                <DataItem Format="XML" NumberType="Float" Dimensions="71">
                                                                                0     1
                                                                </DataItem>
                                                </Time>
                                </Grid>
                </Domain>
</Xdmf>


Paraview assigns 1 process per  sub-mesh G0, G1, ... in the spatial collection. The problem is that all these G0, G1, etc. don't appear to be connected, and when using filters like Cell Data to Point Data, contours etc., there is a discontinuity that is clearly visible between each part of the mesh so I don't think that is the way to go. Or am I missing something? What is the usual way to get parallel processing of xdmf files?

Any help would be greatly appreciated,

Romain

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20130714/466a191d/attachment-0001.htm>


More information about the ParaView mailing list