Skip to content
Lorena A. Barba edited this page Jun 2, 2025 · 6 revisions

This course consists of a set of lessons written in Jupyter notebooks. You should read the lessons, and at the same time you should write your own version of the Python codes, either in a clean Jupyter notebook or in a Python script. Experiment making changes to the parameters and observing the effect on the visualizations.

And don't forget to work out the mathematics on your own handwritten notes!

Module 1. Building blocks of potential flow

The first three lessons will show you how we can construct models of potential flow around objects using the basic solutions of potential theory.

These are:

Module 1: Potential vortices and lift

In the second section of the course (lessons 4, 5, and 6), you'll learn about one of the most important concepts in aerodynamics: lift. It turns out that aerodynamic lift is intimately related to circulation, so we need to start learning about the irrotational (potential) vortex.

The IPython Notebooks for this section are:

Module 3: source panel method for non-lifting bodies

In the third section of the course, you will learn to use all the knowledge you've gained until now to solve some interesting problems in aerodynamics! We will develop the source-panel method for non-lifting bodies, an incredibly important development in the history of computational aerodynamics. It was born in the 1960s at the Douglas Aircraft Company, and its father is A. M. O. Smith, Chief Aerodynamics Engineer.

This course section is built around the following Notebooks:

  • Method of images — This lesson (#7 of AeroPython) shows how you can get the flow around a straight solid "wall" by adding an "image" singularity on the other side of the wall. The lesson is also an opportunity to introduce the notion of classes in Python: a key way to manage more complex programs. From this point on, Python classes feature prominently in our lessons!
  • Source sheet — Lesson 8 of the AeroPython collection will teach you to build an infinite row of source singularities on a line. (You already created an infinite row of vortices in the previous section). It also introduces the concept of lambda or anonymous functions in Python. A very cool trick!
  • Flow over a cylinder with source panels — Up to now, we superposed potential-flow singularities, and got some simple-geometry flow situations (e.g., Rankine oval, circular cylinder with and without lift). In this lesson, we learn the basic method to get the flow over arbitrary geometries. We start with representing a solid body with straight segments (panels), that are little source sheets.
  • Source panel method — In this lesson, we build a source-panel representation of a NACA 0012 airfoil at zero angle of attack, and compute the potential flow solution for the flow around this airfoil. We compare with theoretical results by the so-called Theodorsen method, to confirm that the panel method works!

Note

Adding together fundamental solutions of potential flow and seeing what we get when interpreting a dividing streamline as a solid body is often called an indirect method. This method goes all the way back to Rankine in 1871! But its applicability is limited because we can't stipulate a geometry and find the flow associated to it.

In lesson 9 of AeroPython, we learned that it is possible to stipulate first the geometry, and then solve for the source strengths on a panel discretization of the body that makes the flow tangent at the boundary. This is called a direct method and it took off in the 1960s with the work of Hess and Smith at Douglas Aircraft Company.

A set of panels (line segments in 2D) can represent the surface of any solid body immersed in a potential flow by making the source-sheet strengths such that the normal velocity at each panel is equal to zero. This is a very powerful idea! But you should realize that all the panel strengths are coupled to each other, which is why we end up with a linear system of equations.

For an arbitrary geometry, we need to build a set of panels according to some points that define the geometry. In lesson 10, we read from a file a geometry definition corresponding to a NACA 0012 airfoil, create a set of panels, and solve for the source-sheet strengths to get flow around the airfoil.

Reading

The panel method: its original development

This is a fascinating account by the father of panel methods on how it was originally developed. Strongly recommended, light reading!

A.M.O Smith was Chief Aerodynamics Engineer at the Douglas Aircraft Corporation. He studied in the California Institute of Technology in the 1930s and worked with Professor Theodore von Kármán, the famous Hungarian-American aerospace engineer and physicist.

The influence of the work of Smith on the field of aerodynamics cannot be over-emphasized!

Module 4. Vortex-source panel method for lifting bodies

Sources are not enough! Remember when we learned about lift? That was in lesson 6 of AeroPython: we added a vortex to the center of a cylinder in uniform flow, and saw that a force perpendicular to the free stream appears—this is the force of lift.

Lift requires circulation! For this reason, it is not possible to model a lift-generating airfoil with only sources.

The final course module, on the vortex-source panel method, has a lot of student work. You should complete the exercise in Lesson 11, which guides you through the derivation of the vortex-source panel method, step-by-step. Then, you should complete the coding assignment, extending the vortex-source panel method to compute a 2D multi-element airfoil.

Clone this wiki locally