XDMF and vtkTriQuadraticHexahedron
I'm not sure if this is the right platform for my question, maybe discourse would be better, but since it's directly related to the code I decided to post it here. I'm trying to read an XDMF file via ParaView using the 'HEXAHEDRON_27' topology type. As far as I understand, this is getting me vtkTriQuadraticHexahedron objects. As the documentation of XDMF is very sparse on the order of the nodes, I tried the reverse approach: Create a vtkTriQuadraticHexahedron in ParaView and try to save it in an XDMF file.
Unfortunately, ParaView crashes during the conversion. Instead, I used the documentation on vtkTriQuadraticHexahedron to figure out the correct order of the HEXAHEDRON_27. But it still gave me an invalid object, see image.
So I had a look in vtk itself and found in vtkXdmf3DataSet.cxx:723
unsigned int vtkXdmf3DataSet::GetNumberOfPointsPerCell(int vtk_cell_type, bool& fail)
{
fail = false;
switch (vtk_cell_type)
{
// ...
case VTK_TRIQUADRATIC_HEXAHEDRON:
return 24;
}
fail = true;
return 0;
}
In my opinion, this should return 27. This would be an explanation why it crashes writing such an object to XDMF, and also why the right ordering gives still a defect object (only the last couple of nodes are wrong).
I would like to test my thesis, but I'm only a user of vtk, and paraview and not a developer, so it not straightforward for me.