XDMF3 fails to read Function DataItem (e.g. concatenate or interlace of arrays)
The attached file contains Function
DataItem
s which are not read correctly with the xdmf3 reader.
The error message is:
Skipping unrecognized array type [None]
The syntax was for the function definition was taken from the XDMF wiki (http://www.xdmf.org/index.php/XDMF_Model_and_Format#Function) and is in line with the only thing remotely resembling a documentation of the Xdmf format (http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADP023792).
The xdmf2 reader handles the file correctly.
The tested functions are:
<DataItem Dimensions="3 3 3" Function="$0; $1; $2; $3; $4; $5; $6; $7; $8" ItemType="Function">
and
<DataItem Dimensions="3 3 3" Function="$0, $1, $2, $3, $4, $5, $6, $7, $8" ItemType="Function">
Wrapping the JOIN keyword around these definitions (e.g. JOIN($0; $1)) does not change the situation, i.e. the xdmf2 reader handles the file correctly, while the xdmf3 reader produces the same error message.
From this mailing list thread (http://public.kitware.com/pipermail/paraview/2017-February/039301.html) and the xdmf3 source code (https://gitlab.kitware.com/vtk/vtk/blob/master/ThirdParty/xdmf3/vtkxdmf3/core/XdmfFunction.cpp#L143) it appears that the ',' and ';' operators were not implemented and instead '|' and '#' should be used. This is more than odd as it breaks backwards compatibility without an apparent reason or need! However, even if I use the new syntax, I still get the same error:
<DataItem Dimensions="3 3 3" Function="$0|$1|$2|$3|$4|$5|$6|$7|$8" ItemType="Function">
and
<DataItem Dimensions="3 3 3" Function="$0#$1#$2#$3#$4#$5#$6#$7#$8" ItemType="Function">
The obvious drawback of this is that now the file cannot be read with the xdmf2 reader either anymore. (A new test file is also attached).
This is with ParaView 5.4 installed from the binary installer (ParaView-5.4.0-Qt5-OpenGL2-MPI-Linux-64bit.tar.gz).
Ping: @demarle @AndrewBurns