# 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