# File utilities/Flow.rb, line 96
  def Flow.cylinder(a = 0.125, center = GeometricPoint.new([0.375, 0]))
    return proc do |p|
      re =  0.2
      u = 1.0
      gamma = 0.57721566490153286061
      c = 2 * u / (0.5 - gamma - Math.log(re/4))
      np = p - center
      r = Math.sqrt(np.dot(np))
      if (r < a)
        v = GeometricPoint.new([0.0,0.0])
      else
        aa = a/r
        xx = np[0]/r
        yy = np[1]/r
        aasq = aa * aa
        xxsq = xx * xx
        yysq = yy * yy
        v = GeometricPoint.new([u + 0.5 * c *
                                 (gamma - 0.5 + Math.log(re/(4*aa)) +
                                  0.5 * (1-aasq)*(1-2*xxsq)),
                                 -0.5 * c * (1-aasq) * xx * yy])
      end
      v
    end
  end