This is a textbook problem, however, I'm having a hard time getting MMA to reproduce the result. The problem is a plane, incompressible flow around a circle. I am solving for the stream function, and the fluid is inviscid. As long as the flow is uniform, far away from the circle the vorticity vanishes, leaving the governing equation as simply Laplace's equation in polar coordinates
eq = Laplacian[\[Psi][r, \[Theta]], {r, \[Theta]}, "Polar"] == 0;
The boundary conditions are:
bc1 = \[Psi][\[Infinity], \[Theta]] == U r Sin[\[Theta]];
bc2 = \[Psi][a, \[Theta]] == 0;
And to rule out circulation, symmetry is imposed about \[Theta]==0
by:
bc3 = \[Psi][r, \[Theta]] == -\[Psi][r, -\[Theta]];
However, DSolve
doesn't like this system of equations because of the symmetry condition (specifically, I don't think it likes this term: -\[Psi][r, -\[Theta]]
.)
Running this command:
DSolve[{eq, bc1, bc2, bc3}, {\[Psi], \[Phi]}, {r, \[Theta]}]
gives the following error:
DSolve::litarg: To avoid possible ambiguity, the arguments of the dependent variable in {((\[Psi]^(0,2))[r,\[Theta]]/r+(\[Psi]^(1,0))[r,\[Theta]])/r+(\[Psi]^(2,0))[r,\[Theta]]==0,\[Psi][r,\[Theta]]==-\[Psi][r,-\[Theta]]} should literally match the independent variables.
I found a similar problem occurring when a negative sign appeared in the function discussed here: Why Can't DSolve Find a Solution for this ODE with y[-x]. I tried replace the third condition, bc3
, with a new function bcSym
, similar to the solution discussed in that thread, i.e.
bcSym = \[Psi][r, \[Theta]] == -\[Phi][r, \[Theta]];
but MMA simply returned my equations without solution (or error) when bcSym
was used.
An analytical solution exists, for example on Wikipedia however I'm following Milton van Dyke's book, which yields: $$ \psi = U \left(r-\frac{a^2}{r}\right)\sin \theta $$ Can you help me get MMA to find this solution? Is there a better way to implement the symmetry condition?
DSolve
can analytically solve PDEs where the boundaries are given by symbolic quantities (particularly $\infty$) rather than numerical quantities. For example, if you put in the boundary conditionsinfinity = 100; a = 1; bc1 = \[Psi][infinity, \[Theta]] == U infinity Sin[\[Theta]]; bc2 = \[Psi][a, \[Theta]] == 0;
then Mathematica spits out an answer that's proportional to yours (scaled by a factor ofinfinity^2/(infinity^2 - 1)
, which will approach 1 asinfinity -> ∞
.) $\endgroup$DSolve
does not require the symmetry condition to return the "correct" result in this case. I can't immediately see what solutions would be allowed if it wasn't there, given the BCs; and given that solutions to Laplace's equation are unique given a set of Dirichlet boundary conditions (as you have), I strongly suspect that it's unnecessary. $\endgroup$bc1
seems to be wrong: Left sider->Infinity
, right sider
! $\endgroup$