Flow Around a Cylinder with Circulation

    This is the sum of the two previous fields, so
        Overscript[v, ⇀] = U(1 - R^2 (x^2 - y^2)/(x^2 + y^2)^2, R (-2x y)/(x^2 + y^2)^2) + γ/(2π) (-y/(x^2 + y^2), x/(x^2 + y^2))  defined for (x^2 + y^2)^(1/2) ≥R
with the parameters
        R - radius of the obstacle,
        U - velocity of the fluid far from the obstacle, and
        γ - which represents the strength of the vortex.
As a consequence, the potential is just the sum of the two previous potentials. In particular, we can not define a single potential valid in the entire region (x^2 + y^2)^(1/2) ≥R^2, but we can define a potential in the region -π<θ<π. Indeed, adding the previous two potentials, we find
        ϕ(x, y) = U (x + R^2x/(x^2 + y^2)) - γ/(2π) tan^(-1) (x/y)               if y>0,
        ϕ(x, y) = U (x + R^2x/(x^2 + y^2)) - γ /4                               if y = 0, x>0,
        ϕ(x, y) = U (x + R^2x/(x^2 + y^2)) -γ/(2π) tan^(-1) (x/y) - γ/2        if y<0.

Here is a graph of this potential.

Off[Plot3D :: "plnc"] ;            ... sp;  On[Plot3D :: "gval"] ;          

[Graphics:../HTMLFiles/index_179.gif]

As before, we clearly see the discontinuity in the potential near θ = -π. We also note that x↦ϕ(x, 2) varies much less rapidly than x↦ϕ(x, -2).

    We can plot the vector field, together with a selection of equipotential curves as follows.

Needs["Graphics`PlotField`"] ; Needs["Graphics`ImplicitPlot`"] ; γ =  ... ge {{-3R, 3R}, {-3R, 3R}}}], ]}], ;}],         }]

[Graphics:../HTMLFiles/index_184.gif]

    Stagnation points in the flow are recognized as points where the equipotential curves cross. Indeed, consider the following.

Needs["Graphics`PlotField`"] ; Needs["Graphics`ImplicitPlot`"] ; γ =  ... ge {{-3R, 3R}, {-3R, 3R}}}], ]}], ;}],         }]

[Graphics:../HTMLFiles/index_186.gif]

We see the stagnation point at x = 0, y = (7 + (49 - 4π^2)^(1/2))/(2π) ≈1.60519.

    It is interesting to see how changes in the parameters are reflected in the behavior of the potential and the equipotential curves.

Needs["Graphics`Arrow`"] ; Needs["Graphics`PlotField`"] ; Needs["Grap ...  the size of the graphics *), , {γ, γ_min, γ_max, γ_step}}], ]}], ;}]

Varying Gamma