[Paraview] Problem with Xdmf/HyperSlab
Jens Kleimann
jk at tp4.rub.de
Mon Jan 31 05:30:48 EST 2011
Greetings,
after spending a couple of days trying to figure out the proper usage of XDMF HyerSlabs, and with no progress whatsoever, things are starting to get frustrating.
I have a 3-D curvilinear grid with scalar data, and I need to cut out a sub-grid (in order to discard the boundary). The HyperSlab should do this, but I fail with every try. The smallest example file which reproduces the problem is at [http://www.tp4.rub.de/~jk/science/hyperslab_mintest.xmf]. I have tried various combinations, but I get crashes on Linux, crashes on Windows (using 3.8.1. 64bit, not necessarily for the same cases), and whenever I manage to load it without a crash, the spreadsheet view indicates that the contents of the source array is just copied element-wise to the target array, disregarding the contents of the HyperSlab's first DataItem. (To verify this, increase the count values to from "2 2 2" to something like "2 2 20", and load into PV.)
The ability to extract brick-shaped subgrids from larger grids of the same type is absolutely essential to my application. I would very much like to use Paraview for my purposes, but this problem, and the apparent lack of resources which could provide at least a hint towards a solution, is a no-go.
Stripping boundary values does not seem an overly exotic task, so I guess someone must have done it in the past.
I would be particularly great if someone from the developers could be convinced to have a brief look at it.
Any hint would be most welcomed. Anyone...?
Jens.
On 26.01.2011 12:37, Jens Kleimann wrote:
> Hello,
>
> either the implementation of the HyperSlab Itemtype, or my grasp of it is corrupted. To illustrate the problem which I am getting, see the attached XDMF file (no HDF5 needed, just plain XML), which is supposed to cut a 2x2x2 cube out of a larger 3x3x3x cube. My issues:
> 1. To extract the subgrid [0,1]^3 from the larger [0,2]^3 grid, I set the start-stride-count in the first DataItem to
> 0 0 0
> 1 1 1
> 2 2 2
> in analogy to the example from [www.xdmf.org/index.php/XDMF_Model_and_Format], but this causes Paraview to crash. ("*** glibc detected *** ... realloc(): invalid next size: 0x0000000008e1a800 ***")
> The same happens if I try to access the opposite corner [1,2]^3 (the one with values in the [8,15] range) using
> 1 1 1
> 1 1 1
> 2 2 2
> 2. I can apparently avoid the crash using ranges whose count values are at least 3 (which should obviously be too large for the 2x2x2 target grid), and even grossly out-of-bound values such as
> 12 11 321
> 1 1 1
> 6 13 13
> are accepted without complaints, and result in something that from visual inspection looks like
> 1 2 0 3 4 0 0 0
> i.e. a copy of the beginning of the source array.
>
> Can anybody explain to me what is going on here?
> Any hint would be apprechiated.
>
> Best, Jens.
> PS: I have tried to get help from the Xdmf mailing list (so far without any response), but since this potentialle concerns both [Paraview] and [Xdmf] (and this list is apparently more active), I post this here again.
>
>
> <!-- BEGIN hyperslab_test.xml -->
> <?xml version="1.0" ?>
> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
> <Xdmf Version="2.0">
> <Domain>
> <Grid Name="myGrid" GridType="Uniform">
> <Topology TopologyType="3dCoRectMesh" Dimensions="2 2 2"/>
> <Geometry GeometryType="Origin_DxDyDz">
> <DataItem Dimensions="3" NumberType="Float" Format="XML">
> 0.0 0.0 0.0
> </DataItem>
> <DataItem Dimensions="3" NumberType="Float" Format="XML">
> 1.0 1.0 1.0
> </DataItem>
> </Geometry>
> <Attribute Name="dat_01" AttributeType="Scalar" Center="Node">
> <DataItem Dimensions="2 2 2" NumberType="Float" Format="XML">
> 1 2 3 4 5 6 7 8 <!-- expected in [0,1]^3 -->
> </DataItem>
> </Attribute>
> <Attribute Name="dat_12" AttributeType="Scalar" Center="Node">
> <DataItem Dimensions="2 2 2" NumberType="Float" Format="XML">
> 8 9 10 11 12 13 14 15 <!-- expected in [1,2]^3 -->
> </DataItem>
> </Attribute>
> <Attribute Name="dat_hyper" AttributeType="Scalar" Center="Node">
> <DataItem ItemType="HyperSlab" Dimensions="2 2 2" Type="HyperSlab">
> <DataItem Dimensions="3 3" Format="XML">
> 0 0 0
> 1 1 1
> 2 2 2
> </DataItem>
> <DataItem Dimensions="3 3 3" NumberType="Float" Format="XML">
> 1 2 0 3 4 0 0 0 0
> 5 6 0 7 8 9 0 10 11
> 0 0 0 0 12 13 0 14 15
> </DataItem>
> </DataItem>
> </Attribute>
> </Grid>
> </Domain>
> </Xdmf>
> <!-- END hyperslab_test.xml -->
More information about the ParaView
mailing list