I know I already posted this question and I thank you for your answers, but unfortunately I didn't find what I was looking for among them. Anyway now I'll rewrite the question more clearly, because before perhaps I've not been specific enough.

I've seen that there is a way to use the finite differences method, on a cartesian orthogonal grid, to perform calculations on potential flow about an obstacle without using the Neumann conditions, but only Dirichlet conditions. It is done using the stream function, i tested it and it seem to work. This method works this way: You take a rectangular box, then you put two arbitrary values of the stream function (but the same in all the side) in the upper and lower side; then you linearly vary it along the lateral sides (so there is continuity with the potential on the upper and lower sides). In this way you define the undisturbed flow far from the obstacle. Then you place the symmetric obstacle right in the middle of the box, so you know for sure there is an horizontal streamline that divides the box in two and follows the obstacle boundary, so its potential is exactly the average value between the upper and lower side. So you have defined the Dirichlet conditions in all the box boundaries and in the obstacle boundary, and the problem is well defined and can be easily solved by using the finite difference scheme: you solve the Laplace equation for the stream function.

But this method I used has a big drawback: it can be used only with obstacles that are symmetric along an horizontal axis (the direction of the undisturbed stream). If the obstacle is asymmetric, the streamline that follows the obstacle is no longer horizontal outside the obstacle, and I don't know where it hits the box wall; then I don't know what is the stream function value that I have to put in the obstacle boundary.

Do you now any workaround or method to use only Dirichlet conditions, but on an arbitrary shaped obstacle (a wing, for example) ?

Before, someone advised me to use panel methods, coordinate transformations, etc. It would be good, but I'm looking for something simpler, if possible. It's just for demonstration of the finite differences method, it doesn't have to be particularly efficient of fast; I'd prefer just the simplest solution you can think. Something I can possibly add to my program editing it the less possible. If instead you know a simple way to implement the Neumann conditions, it would also be good.

Thank you in advance, your help would be greatly appreciated.

  • 1
    $\begingroup$ John, you should edit your previous question rather than ask a new one, explaining how the answers fail to help you. This avoids duplicate effort. (Iterative refinement of question and answers is a standard StackExchange procedure. Remember, your question is not only meant to solve your problem, but also to contribute an "article" for future readers.) $\endgroup$ – Christian Clason May 30 '13 at 13:27
  • $\begingroup$ Also, please don't open new accounts - that makes it difficult to find out about the context of this question. (For example, I had to search a bit before finding the previous question you refer to, because you asked it under a different account.) $\endgroup$ – Christian Clason May 30 '13 at 13:28
  • $\begingroup$ I agree with ChristianClason here. It's much better if you update your old question rather than post a new one, especially since you're essentially asking the same question again. $\endgroup$ – Paul May 30 '13 at 14:35