Unable to order quadrilateral cell

Is the reordering check for quad elements completed in dolfin - 2019.1.0? The corresponding issue is marked as resolved. However I seem to get an error trying to import quad meshes (and even when trying to manually create one using MeshEditor). It is also reported here
MWE:

from dolfin import *
msh = Mesh()
f = XDMFFile(MPI.comm_world,'test_quadMesh.xdmf')
f.read(msh)

Attached is a picture of the sample mesh, if needed.

Manually creating the mesh using MeshEditor:

nodes, cells = return_points_cells(abaqus_fname)
num_nodes = nodes.shape[0]
num_elems = cells.shape[0]

msh = Mesh()
e = MeshEditor()
e.open(msh,'quadrilateral',2,2)
e.init_vertices(num_nodes)
e.init_cells(num_elems)

for i, nval in enumerate(nodes):
    e.add_vertex(i,nval)

for elem in cells:
    e.add_cell(elem[0],np.array([elem[1], elem[2], elem[4], elem[3]],int))

e.close(order=False)

with XDMFFile(comm,'trialMesh.xdmf') as wf:
    wf.write(msh)

results in the following mesh:

It does not read the complete mesh, however, at least does better than throwing a ordering exception.

Hi ! I ran into this as well ! Have you managed to solve that issue ?

Thanks

Hi, I think this will be (or is already) fixed in the dolfinx version.

There is a lot of work going on in dolfinx in quads/hexes. The idea there is to permutation the dofmap instead of ordering the mesh. I think that the permuting of quad dog maps will appear in a PR in dolfinx later this week and be merged early next week.

So this won’t be fixed in the current FEniCS ?

I can’t guarantee that it will. Most development of the FEniCS source code is happening in dolfinx (which hopefully will have a stable release during the first quarter of next year).

Pull request for dolfinx is now submitted: https://github.com/FEniCS/dolfinx/pull/654
Some minor things has to be fixed before its merged, and alleviates the ordering issue for quads and hexes for scalar function-spaces. The next step is to work on permutations of vector spaces instead of ordering the mesh. I guess @mscroggs can give more details