def METHOD_NAME(plot=True):
    import time
    cell = np.array([[0,1,2,3],[1,4,5,2]],dtype = np.int_)
    node = np.array([[0,0],[1,0],[1,1],[0,1],[2,0],[2,1]], dtype = np.float_)
    mesh = QuadrangleMesh(node, cell)
    mesh = HalfEdgeMesh2d.from_mesh(mesh)
    mesh.init_level_info()
    NE = mesh.ds.NE
    r, h, N = 0.5, 1e-3, 10
    fig = plt.figure()
    axes = fig.gca()
    c = np.array([2*(2/N), 0.8])
    while True:
        s = time.time()
        halfedge = mesh.ds.halfedge
        pre = halfedge[:, 3]
        node = mesh.entity('node')
        flag = np.linalg.norm(node-c, axis=1)<r
        flag1 = flag[halfedge[:, 0]].astype(int)
        flag2 = flag[halfedge[pre, 0]].astype(int)
        isMarkedHEdge = flag1+flag2==1
        NC = mesh.number_of_cells()
        isMarkedCell = np.zeros(NC, dtype=np.bool_)
        isMarkedCell[halfedge[isMarkedHEdge, 1]] = True
        isMarkedCell = isMarkedCell & (mesh.cell_area()>h**2)
        if (~isMarkedCell).all():
            break
        mesh.refine_poly(isMarkedCell)
        e = time.time()
        print(e-s, "\n")
        mesh.add_plot(axes, linewidths = 0.4, aspect=0.5)
        #mesh.find_cell(axes, showindex=True)
        plt.pause(0.001)
    plt.show()