def METHOD_NAME(rmin=0.5, rmax=1.0, center=None):
    degrees = (1, 2)
    pdim    = 2
    knots = [[0.0 , 0.0 , 1.0 , 1.0],
             [0.0 , 0.0 , 0.0 , 0.25 , 0.25 , 0.5 , 0.5 , 0.75 , 0.75 , 1.0 , 1.0 , 1.0] ]
    points          = np.zeros((2,9,pdim))
    j = 0
    points[j,0,:]   = np.asarray([0.0   , -rmin])
    points[j,1,:]   = np.asarray([-rmin , -rmin])
    points[j,2,:]   = np.asarray([-rmin , 0.0  ])
    points[j,3,:]   = np.asarray([-rmin , rmin ])
    points[j,4,:]   = np.asarray([0.0   , rmin ])
    points[j,5,:]   = np.asarray([rmin  , rmin ])
    points[j,6,:]   = np.asarray([rmin  , 0.0  ])
    points[j,7,:]   = np.asarray([rmin  , -rmin])
    points[j,8,:]   = np.asarray([0.0   , -rmin])
    j = 1
    points[j,0,:]   = np.asarray([0.0   , -rmax])
    points[j,1,:]   = np.asarray([-rmax , -rmax])
    points[j,2,:]   = np.asarray([-rmax , 0.0  ])
    points[j,3,:]   = np.asarray([-rmax , rmax ])
    points[j,4,:]   = np.asarray([0.0   , rmax ])
    points[j,5,:]   = np.asarray([rmax  , rmax ])
    points[j,6,:]   = np.asarray([rmax  , 0.0  ])
    points[j,7,:]   = np.asarray([rmax  , -rmax])
    points[j,8,:]   = np.asarray([0.0   , -rmax])
    if center is not None:
        points[...,0] += center[0]
        points[...,1] += center[1]
    weights         = np.zeros((2,9))
    j = 0
    weights[j,0]   = 1.0
    weights[j,1]   = 0.707106781187
    weights[j,2]   = 1.0
    weights[j,3]   = 0.707106781187
    weights[j,4]   = 1.0
    weights[j,5]   = 0.707106781187
    weights[j,6]   = 1.0
    weights[j,7]   = 0.707106781187
    weights[j,8]   = 1.0
    j = 1
    weights[j,0]   = 1.0
    weights[j,1]   = 0.707106781187
    weights[j,2]   = 1.0
    weights[j,3]   = 0.707106781187
    weights[j,4]   = 1.0
    weights[j,5]   = 0.707106781187
    weights[j,6]   = 1.0
    weights[j,7]   = 0.707106781187
    weights[j,8]   = 1.0
    for i in range(pdim):
        points[...,i] *= weights[...]
    return degrees, knots, points, weights