[Paraview] Xdmf weirdness and question

Paul Melis paul.melis at surfsara.nl
Mon Jan 14 11:33:53 EST 2013


Hi all,

I have a rectilinear dataset of 4096x4096x160 floats with constant
spacing in X and Y, but varying spacing in Z. I've put the data in a
single HDF5 file (for now) with the following layout:

HDF5 "ql200.hdf" {
GROUP "/" {
   DATASET "ql" {
      DATATYPE  H5T_IEEE_F32LE
      DATASPACE  SIMPLE { ( 4096, 4096, 160 ) / ( 4096, 4096, 160 ) }
   }
   DATASET "x" {
      DATATYPE  H5T_IEEE_F32LE
      DATASPACE  SIMPLE { ( 4096 ) / ( 4096 ) }
   }
   DATASET "y" {
      DATATYPE  H5T_IEEE_F32LE
      DATASPACE  SIMPLE { ( 4096 ) / ( 4096 ) }
   }
   DATASET "zf" {
      DATATYPE  H5T_IEEE_F32LE
      DATASPACE  SIMPLE { ( 160 ) / ( 160 ) }
   }
}
}

The point coordinates per axis are in the X, Y and Z(f) datasets.

I use the following Xdmf file to read this set into PV 3.14.1:

<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
<Xdmf>
  <Domain>
    <Grid Name="TheGrid" GridType="Uniform">
      <Topology TopologyType="3DRectMesh" Dimensions="4096 4096 160"/>

      <Geometry GeometryType="VXVYVZ">
        <DataItem Dimensions="4096" NumberType="Float" Precision="4"
Format="HDF">ql200.hdf:/x</DataItem>
        <DataItem Dimensions="4096" NumberType="Float" Precision="4"
Format="HDF">ql200.hdf:/y</DataItem>
        <DataItem Dimensions="160" NumberType="Float" Precision="4"
Format="HDF">ql200.hdf:/zf</DataItem>
      </Geometry>

      <Attribute Name="ql" AttributeType="Scalar" Center="Node">
        <DataItem DataType="Float" Precision="4" Dimensions="4096 4096
160" Format="HDF">ql200.hdf:/ql</DataItem>
      </Attribute>
    </Grid>
  </Domain>
</Xdmf>

This doesn't work unfortunately, as PV turns it into a grid of
160x4096x4096 (and no data is visible at all, even though the number of
cells and points seems to be correct). I don't see where the reordering
of axes comes from. Looking at Utilities/Xdmf2/libsrc/XdmfGeometry.cxx I
think I got the Geometry stuff correct. Does anybody see what is wrong?

Secondly, for rendering this set in parallel I was wondering if PV can
automatically read in subsets of the data from the single HDF5 file per
node (i.e. hyperslab reading), or that a manual split of the data is
needed anyway?

Thanks in advance for any help,
Paul


More information about the ParaView mailing list