def METHOD_NAME(self):
    p = self.p
    fdof = int((p+1)*(p+2)/2)
    ldof = self.number_of_local_dofs()
    mesh = self.mesh
    N = mesh.number_of_points()
    NE = mesh.number_of_edges()
    NF = mesh.number_of_faces()
    NC = mesh.number_of_cells()
    base = N + (p-1)*NE
    if p > 2:
        base += (fdof - 3*p)*NF
    localFace = np.array([(1,2,3),(0,2,3),(0,1,3),(0,1,2)], dtype=np.int)
    cell2dof = np.zeros((NC, ldof), dtype=np.int)
    face = mesh.ds.face 
    face2cell = mesh.ds.face_to_cell()
    face2dof = self.face_to_dof()
    face1 = cell[face2cell[:,[0]], localFace[face2cell[:,2]]]
    face2 = cell[face2cell[:,[1]], localFace[face2cell[:,3]]]
    isFaceDof = self.local_dof_on_face()
    cell2dof[face2cell[:,[0]], isFaceDof[face2cell[:,2],:]] = face2dof[:, ]
    cell2dof[face2cell[:,[1]], isFaceDof[face2cell[:,3],:]] = face2dof[:, ]
    return cell2dof