def METHOD_NAME(self, u, p=2, mtype=0, plot=True):
    from fealpy.mesh.simple_mesh_generator import triangle
    if mtype == 0:
        node = np.array([
            (-1, -1), (1, -1), (1, 1), (-1, 1)], dtype=np.float)
        cell = np.array([0, 1, 2, 3], dtype=np.int)
        cellLocation = np.array([0, 4], dtype=np.int)
        mesh = PolygonMesh(node, cell, cellLocation)
    elif mtype == 1:
        node = np.array([
            (-1, -1), (1, -1), (1, 1), (-1, 1)], dtype=np.float)
        cell = np.array([0, 1, 2, 3, 0, 2], dtype=np.int)
        cellLocation = np.array([0, 3, 6], dtype=np.int)
        mesh = PolygonMesh(node, cell, cellLocation)
    elif mtype == 2:
        h = 0.025
        mesh = triangle([-1, 1, -1, 1], h, meshtype='polygon')
    elif mtype == 3:
        node = np.array([
            (-1, -1), (1, -1), (1, 1), (-1, 1)], dtype=np.float)
        cell = np.array([[0, 1, 2, 3]], dtype=np.int)
        mesh = QuadrangleMesh(node, cell)
        mesh.uniform_refine()
        mesh = PolygonMesh.from_mesh(mesh)
    elif mtype == 4:
        node = np.array([
            (-1, -1), ( 1, -1), ( 1, 0), 
            ( 1,  1), (-1,  1), (-1, 0)], dtype=np.float)
        cell = np.array([0, 1, 2, 5, 2, 3, 4, 5], dtype=np.int)
        cellLocation = np.array([0, 4, 8], dtype=np.int)
        mesh = PolygonMesh(node, cell, cellLocation)
    if True:
        cell, cellLocation = mesh.entity('cell')
        edge = mesh.entity('edge')
        cell2edge = mesh.ds.cell_to_edge()
        bc = mesh.entity_barycenter('edge')
        uspace = ReducedDivFreeNonConformingVirtualElementSpace2d(mesh, p)
        up = uspace.project(u)
        up = uspace.project_to_smspace(up)
        print(up)
        integralalg = uspace.integralalg
        error = integralalg.L2_error(u, up)
        print(error)
        A = uspace.matrix_A()
        P = uspace.matrix_P()
        sio.savemat('A.mat', {"A":A.toarray(), "P":P.toarray()})
    if plot:
        mesh.print()
        fig = plt.figure()
        axes = fig.gca()
        mesh.add_plot(axes)
        mesh.find_node(axes, showindex=True)
        mesh.find_edge(axes, showindex=True)
        mesh.find_cell(axes, showindex=True)
        plt.show()