The functions GenericDofmap::vertex_to_dof_map and
GenericDofMap::dof_to_vertex_map are not properly documented (the doc
string is the same for both), and I think that they are back to front.
The docstring in DofMap has inconsistencies. I would expect that

    map0 =  GenericDofmap::vertex_to_dof_map(...)

would mean a map from vertex to dof, i.e.

    map0[vertex_index] -> dof index

and  that

    map1 =  GenericDofmap::dof_to_vertex_map(...)

would mean a map from dof index to

    map1[dof_index] -> vertex index

Tests (see below code) and the return types also indicate that things
are back to front. Can someone clarify the situation?

Garth



from dolfin import *

mesh = UnitSquareMesh(4, 4)
V = FunctionSpace(mesh, "Lagrange", 1)

dof_to_vertex = V.dofmap().dof_to_vertex_map(mesh)
vertex_to_dof = V.dofmap().vertex_to_dof_map(mesh)

for c in cells(mesh):
    print "Cell index:", c.index()

    # Get cell dofs
    dofs = V.dofmap().cell_dofs(c.index())
    print "  Cell dofs:", dofs

    # Get vertices from cell
    cell_vertices0 = sorted([v.index() for v in vertices(c)])
    print "  Cell vertex indices (from cell):", cell_vertices0

    # Get vertices from dof_to_vertex
    cell_vertices1 = sorted([dof_to_vertex[dof] for dof in dofs])
    print "  Cell vertex indices (from dof_to_vertex_map):", cell_vertices1

    # Get vertices from vertex_to_dof_map
    cell_vertices2 = sorted([vertex_to_dof[dof] for dof in dofs])
    print "  Cell vertex indices (from vertex_to_dof_map):", cell_vertices2
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to