Vortex Lattice Code

A vortex lattice code based on the procedure outlined in the 4th edition of Aerodynamics for Engineers by Bertin has been uploaded as Python byte code.  The program is intended for the analysis of (relatively) high aspect ratio sailboat keels and hence is limited to planar keels/wings (i.e., no camber) of trapezoidal planform.  Given that limitation, the program uses only a single horseshoe vortex in the streamwise direction.  The user may specify any number in the spanwise direction.  Download the code here.
It will come up in a new web page.  Save the page as “vortexlattice.pyc” in
a directory on your computer.

To run the byte code you must have Python installed on your computer.  Given that, and from the directory where you saved the bytecode, run the program with the command:
python “vortexlattice.pyc”

How does a sail generate lift?

Despite the vast quantities of literature in the aeronautical field, and the original work of Arvel Gentry in the 1970’s, there is still a misunderstanding among sailing enthusiasts when it comes to the mechanism by which a sail generates lift. Most sailors refer to Bernoulli’s equation which states that the sum of the flow, kinetic, and potential energies is constant along a streamline.  Then, as the flow accelerates around the leeward side of the sail, the pressure decreases and lift is generated.  However, Bernoulli’s equation alone is not sufficient to explain lift on the sail. The real question is, what is the physical mechanism for the higher velocity on the suction side of the sail?  This is where misunderstandings may still persist.

For example, and quite surprisingly, the following statement was included in material handed out during a day-long seminar on spinnaker handling I attended about 6 years ago: “Because the wing is curved on the top, the air that follows this route has a longer way to go; therefore it must travel faster to meet the air on the bottom.”  A sketch was included that showed that the path along the windward side of a sail is shorter that that over the leeward side.  Clearly, this is not the case as the sail material is so thin that it represents not much more than a discontinuity in the flow field. Hence the distance from the leading to trailing edge (luff to leech) over the windward and leeward sides of the sail is nearly identical.  Nevertheless, a sail generates lift.

Another explanation for the higher velocities on the leeward side of the sail is simply that this is the solution to the governing equations of conservation of mass and momentum, which for a Newtonian fluid are known as the Navier-Stokes equations.  However, most do not find that to be a satisfying explanation.  However, if we make some simplifying assumptions, the problem becomes much more tractable.  In particular, let us assume that the effects of viscosity are limited to a very thin region along the sail, known as a boundary layer.  Outside this region viscous forces are quite small and hence the effects of viscosity can be neglected.  Given this simplification, the nonlinear Navier-Stokes equations can be replaced by what is commonly called the potential flow equation in fluid dynamics literature.  The major advantage here is that the potential flow equation is linear, and hence solutions can be superimposed.  That is, if phi1 is a solution to the problem, and phi2 is also a solution, then phi3=phi1+phi2 is also a solution.

How does this apply to our sail problem?  Let’s consider a horizontal section out of the sail such that we have an airfoil of zero thickness, with or without camber, set at a small angle to the approach flow.  It turns out that there are an infinite number of solutions for the potential flow about this airfoil.  However, observation indicates that for an airfoil at a small angle of incidence, the flow leaves a cusped trailing edge tangentially with the velocity of the fluid leaving the upper surface matching the velocity leaving the lower surface.  If the velocities are equal, then Bernoulli’s equation reveals that the pressures are also equal.  This observation, when enforced as part of our potential flow solution, is known as the Kutta condition.  What the Kutta condition does is add sufficient “circulation” about the airfoil such that the flow leaves tangentially from the trailing edge.  Consequently, we can consider the potential flow about the airfoil to consist of two parts that may be summed, a flow without circulation (that provides no lift) and a circulatory flow (that provides lift).

This idea of circulation about an airfoil can be further understood by considering an airfoil, initially stationary, subsequently translated at a constant speed.  As the airfoil motion is initiated, a boundary layer begins to form.  This boundary layer attempts to curl around the sharp trailing edge of the airfoil.  However, this fluid movement is not sustainable, and the airfoil ends up peeling off, or shedding, a circulatory “starting” vortex from the trailing edge.  However, initially there existed no circulation about the airfoil.  As a consequence of a theorem by Kelvin, the total circulation in an inviscid region surrounding the airfoil is preserved.  The circulation was zero before motion began, and hence the shedding of a starting vortex requires the development of circulation equal in magnitude but opposite in sign.  This is the circulatory flow about the airfoil, which, if the flow were left-to-right, would be in a clockwise direction.  Again, the addition of this circulatory field to the zero circulation potential flow solution provides a result which satisfies the Kutta condition and moves the rear stagnation point that occurs on an airfoil with zero circulation to the trailing edge.

A couple of codes are available to help with these concepts.  First, a Potential Flow Sail Analysis code is available that solves for the two-dimensional flow about a main/jib combination, or a mainsail alone.  One may plot velocity vectors of the complete flow, the zero circulation flow, and the circulatory flow.  To begin with, I recommend looking at the mainsail alone, in the form of a flat plate at small angle-of-attack.  Observe the location of the stagnation points near the leading and trailing edges.  Then plot the circulatory velocity vectors that provide sufficient circulation to move the stagnation point such that the flow leaves parallel to the trailing edge (not a stagnation point since the upper and lower surface flows are parallel to each other).

To observe the circulatory flow in an experimental setting, I recommend that students view the “Bathtub” video.”  This video shows the formation of a starting vortex, and the circulatory flow about the airfoil.  The final scene in the video shows the two counter-rotating vortices; one as the starting vortex, and another resulting from the circulatory motion about the airfoil (once the airfoil is lifted from the water).

Update Potential Flow Sail Analysis Code

An error in the circulation velocity vector plot was fixed.  Added the option to plot flow about sail(s) with zero circulation.  This permits one to observe both the zero circulation flow vectors (no lift) and the circulation flow (sufficient to satisfy the Kutta condition).  Added together they comprise the potential flow solution one is interested in. Download potential flow sail analysis code.

Zero Gaussian Curvature Sail Analysis Code

Zero Gaussian Curvature Sail Analysis

The Windows-based code displays Tight Luff, Tight Leech, and Perfect Blend sail shapes as described in the text “Physics of Sailing” by John Kimball.  The sails have zero Gaussian curvature, which means they are “developable” surfaces.  Section lift coefficients from foot to head are computed using a two-dimensional, higher-order panel method.

Sailing Velocity Prediction Program

A basic velocity prediction program (VPP) has been released.  The code was developed as a teaching tool to help beginning sailors understand the influence of a number of parameters on boat speed and performance. The code is compiled for the Windows operating system and available under the Computer Codes link.  For further information the user should refer to the Help menu within the code.

Potential Flow Solver for Sail Analysis

The sail analysis code runs under Windows and is available on the Computer Codes page. The code solves the two-dimensional potential flow equation using a vortex panel method in which the vortex strength varies linearly along the panel and is continuous from one panel to the next. In addition, the code permits the specification of either rigid or flexible sails.  The intended use of the code is to help users understand the fluid flow interaction between a mainsail and a jib. Note that since this is a potential flow solution, drag cannot be predicted.