I am confused by the way vertex_to_dof_map and dof_to_vertex_map work for vector function spaces.
Consider the short snippet below.
from dolfin import *
mesh = UnitSquareMesh(5,5)
Q = VectorFunctionSpace(mesh, "CG", 1, dim=2)
q = Function(Q)
v2d=vertex_to_dof_map(Q)
d2v=dof_to_vertex_map(Q)
This is a 2D vector function so I expect to have 2 degrees of freedom for each vertex. When I run dof_to_vertex_map(Q) I get a list of numbers from 0 to some integer which is twice the amount of vertices (minus 1). I would think the zero'th entry of d2v would be the vertex corresponding to the zero'th degree of freedom. Vice versa for v2d. This means in the dof to vertex map the vertices should be repeated so we can know which two degrees of freedom correspond to which vertex. This is not the case. I don't know how to interpret what the values returned by the maps mean.
How should I understand what the integers in these 2 mappings mean?