xdmf-dolfin-fix

A tiny package to modify the node order of quadratic triangles and tets in a xdmf-hdf mesh to work with FEniCS/DOLFIN.


License
MIT
Install
pip install xdmf-dolfin-fix==0.6.2

Documentation

xdmf_dolfin_fix

There is an xdmf import issue in FEniCS/DOLFIN. Quadratic triangles and tetrahedrons are imported incorrectly. The CLI tool xdmf-dolfin-fix fixes this issue by reordering element numbers.

Example usage

xdmf-dolfin-fix old.xdmf            # fix old.xdmf
xdmf-dolfin-fix old.xdmf new.xdmf   # create fixed new.xdmf
xdmf-dolfin-fix old.geo -d3         # create fixed old.xdmf from gmsh
xdmf-dolfin-fix old.msh new.xdmf    # create fixed new.xdmf from gmsh

Problem

At some point of the simulation FEniCS/DOLFIN orders the vertices of all elements in numerically accending order. Nodes on the edges of elements -- as present in quadratic triangles and quadratic tetrahedrons -- are not swapped.

So internally, the node numbers of an arbitrary quadratic tetrahedron

[ vertices |    edges   ]
[ 51 74 12 | 14 72 1003 ]

would be reordered to

[ 12 51 74 | 14 72 1003 ]

Now, the vertex nodes [12 51 74] are sorted, but the edge nodes [14 72 1003] are left unchanged. This results in a twisted geometry.

Fix

xdmf-dolfin-fix sorts the vertex nodes and reorders the edge nodes accordingly. This will result in

[ 12 51 74 | 1003 14 74 ]

A further sorting within DOLFIN has no effect and, thus, will not mess up this ordering.