def METHOD_NAME(self):
    p = self.p
    mesh = self.mesh
    cell = mesh.ds.cell
    point = mesh.point
    dim = mesh.geom_dimension()
    N = point.shape[0]
    dim = point.shape[1]
    NC = cell.shape[0]
    ldof = self.number_of_local_dofs()
    gdof = self.number_of_global_dofs()
    ipoint = np.zeros((gdof, dim), dtype=np.float)
    ipoint[:N, :] = point
    if p > 1:
        NE = mesh.number_of_edges()
        edge = mesh.ds.edge
        w = np.zeros((p-1,2), dtype=np.float)
        w[:,0] = np.arange(p-1, 0, -1)/p
        w[:,1] = w[-1::-1, 0]
        ipoint[N:N+(p-1)*NE, :] = np.tensordot(w, point[edge,:], axes=(1,1)).reshape((-1,dim), order='F')
    if p > 2:
        isEdgeDof = self.is_on_edge_local_dof()
        isInCellDof = ~(isEdgeDof[:,0] | isEdgeDof[:,1] | isEdgeDof[:,2])
        w = idx[isInCellDof,:]/p
        ipoint[N+(p-1)*NE:, :] = np.tensordot(w, point[cell,:], axes=(1,1)).reshape((-1,dim), order='F')
    return ipoint  