def METHOD_NAME(center, a, b, bc="ellipse", mat="ellipse"):
    """Creates ellipse centered at point center with principle axis a and b.
    Parameters
    ---------
    center : Vec2
      center of ellipse
    a : Vec2
      first principle axis, needs to be perpendicular to b
    b : Vec2
      second principle axis, needs to be perpendicular to a
    bc : string
      boundary name
    mat : string
      material name
    """
    if abs(a[0]*b[0] + a[1]*b[1]) > 1e-12:
        raise Exception("In Ellipse: principle axis a and b are not perpendicular")
    ellipse = Circle( center=(0,0), radius=1.0, mat=mat, bc=bc )
    alpha = math.pi/2-math.atan2(a[0],a[1])
    r_a = math.sqrt(a[0]**2+a[1]**2)
    r_b = math.sqrt(b[0]**2+b[1]**2)
    ellipse.Scale( (r_a,r_b) )
    ellipse.Rotate( alpha/math.pi*180, center=(0,0) )
    ellipse.Move( center )
    return ellipse