Instructions
Introduction / Specific Instructions / Notes / Changes from 1.0/ Changes from 2.0

Introduction
The motion of most fluid flows of engineering interest is completely described by the Navier Stokes equations. Except in very simple situations, however, these equations are too difficult to solve. At the beginning of the 20th century Ludwig Prandtl proposed a division of the problem to make it more tractable. He hypothesized that viscous effects (associated with the most troublesome terms in the Navier Stokes equations) are only important in a thin region immediately adjacent to a solid surface, termed the boundary layer. Here the velocity reduces rapidly to zero at the surface (the no-slip condition). As long as this region remains thin then a number of approximations can be made that greatly simplify the equations. This idea has turned out to be an extremely powerful one, to the extent that a huge number of engineering flow calculations today are performed by combining an inviscid solution for the outer flow with a viscous boundary layer solutions to provide the flow near the body. The present applets implement several different boundary layer calculation methods. Along with the Vortex Panel Method Applet (or another inviscid solver) they can be used to obtain complete flow solutions of the type envisaged by Prandtl.

The boundary-layer equations (the thin-layer approximation to the Navier Stokes) are partial differential equations. They can be solved directly by finite difference method. Alternatively, if the form of the boundary layer velocity and/or temperature profile is assumed, they can be reduced to ordinary differential equations with respect to distance along the body surface that can be numerically integrated. Techniques that use this second approach are termed 'integral methods'. They are more empirical (i.e. approximate) than finite difference methods but are much faster.

Boundary layers can be either laminar or turbulent. Laminar boundary layers usually form near the leading edge or nose of a body. The flow in a laminar boundary layer is smooth and steady. Turbulent boundary layers are formed when the laminar boundary reaches a certain age (Reynolds number) and becomes unstable, undergoing transition. The flow inside a turbulent boundary layer is unsteady and irregular and it is the time-averaged boundary layer equations that must be solved in this case. However, the time-averaging process (which is necessary to make the equations soluble) introduces a new term into the equations (the Reynolds stress term) that must be estimated using empirical information, known as a turbulence model. In a finite difference method an explicit turbulence model is used. In an integral method, the turbulence model is implicit in the assumed form of the velocity profile.

When a temperature difference exists between a body and the flow through which it is moving, or when compressibility effects are significant, both thermal and aerodynamic boundary layers are formed. In low-speed flow when the temperature differences do not significantly influence the boundary layer dynamics, the thermal boundary layer can be estimated through a fairly straightforward extension of a boundary layer method. In high-speed flow the thermodynamics and aerodynamics become coupled and are solved simultaneously.

Here we present nine applets for calculating boundary layer flows, four for laminar boundary layers (WALZ, ILBLI, CLBL and WALZHT), five for turbulent (MOSES, ITBL, JETMIX, CTBL and MOSESHT). Out of these, 4 employ integral methods (WALZ, MOSES, WALZHT, MOSESHT), 4 finite difference methods (ILBLI, CLBL ITBL, CTBL), 7 are for incompressible flow (WALZ, ILBLI, WALZHT, MOSES, ITBL, JETMIX and MOSESHT), 2 for compressible flow (CLBL, CTBL) and 4 have the capability of computing thermal boundary layers (WALZHT, MOSESHT, CLBL and CTBL). Detailed descriptions of the theory and methods behind the seven basic methods (WALZ, MOSES, ILBLI, ITBL, CLBL, JETMIX, CTBL), along with Fortran programs that implement these methods (except CTBL) are found in  "Boundary Layer Analysis, Revised" by J. A. Schetz, AIAA, 2010. Indeed, these applets were originally developed as supplementary material for that text, although they can be used in a stand-alone manner. Descriptions of the theory behind the extensions of WALZ and MOSES to handle heat transfer (WALZHT and MOSESHT) are provided in our paper HEAT TRANSFER CODES FOR STUDENTS IN JAVA and its references.

Specific Instructions
The following instructions describe the six incompressible methods (WALZ, ILBLI, WALZHT, MOSES, ITBL, JETMIX, and MOSESHT). The operation of the two compressible methods (CTBL and CLBL) is very similar and can easily be inferred from the incompressible codes. Furthermore, explicit instructions for CLBL and CTBL will be added in the near future.

Any of the applets can be launched by pressing the appropriate button on the applet page. You can launch any number of the same or different applets at the same time. Each applet opens in a window that will remain open until you close it, or your browser. Otherwise this window is browser independent. All the applets have the same basic interface, illustrated on the below for ITBL.

The bulk of the applet window consists of a panel containing three graphs which display the results of or inputs to the calculation (to change the quantities plotted, simply click on the graphs). The lower of these three graphs always displays the boundary layer thicknesses and their development. The three laminar methods also include routines for estimating when transition occurs. Transition is also indicated on this graph by a vertical arrow labelled "T". All of the methods detect (and stop at) boundary layer separation. Separation is indicated on this graph by a vertical arrow labelled "S".
The lower part of the panel contains a list of all the properties/quantities that are needed to perform the boundary layer calculation. These include items such as the properties of the fluid, the reference properties of the flow (on which the inputs and outputs are scaled), the characteristics of the surface on which the boundary layer is growing, calculation parameters (step sizes etc.) and initial boundary layer parameters (for methods that do not start at the leading edge). All numerical items can be changed simply by selecting them, typing the new value into the text area to the right of the list, and clicking the "Change" button. To change a non-numerical item (e.g. anything listed under Surface Characteristics), select the item and click the "Change" button. This will bring up an appropriate dialog box. Note that items in the list in black text only serve as headings and cannot be selected.  The three laminar methods (WALZ, ILBLI and WALZHT) base their transition predictions on Michel's method (see "Boundary Layer Analysis, Revised" by J. A. Schetz, AIAA, 2010). Michel's method predicts that transition occurs when Re(theta)=2.9*(Rex)0.4. Here Re(theta) is the momentum thickness Reynolds number and Rex is the Reynolds number based on distance from the origin of the boundary layer (the leading edge), both based on the local edge velocity. The constant of 2.9 assumes that a boundary layer on a flat plate would undergo transition at Rex = 2,500,000. This value is rather high for most applications so we have included the flat plate transition Reynolds number (and therefore this constant) as an input in this list for these laminar methods.
At the bottom of the applet there are two buttons "Run" and "Step" and a slidebar. Pressing the "Run" button instructs the applet to proceed with the calculation (results are plotted as the calculation proceeds) during which the label on this button changes to "Pause". Once the calculation is complete the label changes to "Reset". Pressing "Pause" causes the calculation to pause, pressing "Reset" returns the applet to the start of the calculation. The step button causes one streamwise (x) step of the calculation to be performed before pausing. Repeatedly pressing this button allows one to proceed through the calculation step by step. The slidebar controls the speed of the calculation. It can be instructive to watch the boundary layer develop as the calculation proceeds, but on most computers the calculation speed is to fast to see this. The calculation speed can be artificially slowed by moving the slidebar to the left.
At the top of the applet window are menus each containing a list of items. The function of each of these items is explained below:

• Reset. Returns the applet to the start of the calculation.
• Write parameter list. Brings up the write parameter list dialog box. This dialog enables one to save a list of parameters defining the calculation (flow properties, surface characteristics, initial profile, etc.) and its state (current x station, boundary layer parameters and state at this station, etc.). This can be useful if you wish to repeat a calculation later, document your work, or continue or repeat a calculation using one of the other applets. To create a parameter list you select the location using the controls on the bottom left of the dialog and hit "Display". The parameter list appears in the large text area. Java cannot save directly to disk, but you can copy to the clipboard and then save your work by pasting it into another text application (e.g. NotePad). Alternatively, if you wish to use the parameter list to continue or repeat a calculation using one of the other applets, simply paste the list into the Read parameter list dialog of that applet.
• Read parameter list. Brings up the read parameter list dialog box.  This dialog box enables one to read in a saved parameter list. Simply copy the parameter list to the clipboard (e.g. from NotePad or from another applet), paste it into the blank text area in this dialog box and press "Read". Pasting a list from one applet to another doesn't always make sense (e.g. pasting the parameters of a turbulent boundary layer calculation into a laminar method). If the applet detects an inconsistent input it gives a warning message describing the problem.
• Launch. Brings up the launch dialog box. Use this dialog box to launch one of the other applets using the parameters of the present calculation. Select the applet to start in the top left hand corner, select the location to start it at using the controls at the top center and right and then press "Launch". This can be very useful for, say, continuing a calculation with a turbulent boundary layer method when a laminar boundary layer method predicts transition.
• Exit. Closes the applet window.
• Plot options. Brings up the graph selection dialog box. This box enables you to change what is plotted on the three graphs (the dialog box can also be opened by clicking on the graphs). The selections available are different for different applets. Pressing "Apply" allows you to see the effects of your selection without closing the dialog box.
• Surface properties. Brings up the surface properties dialog box. This box allows you to specify the characteristics of the body surface on which the boundary layer is growing. For ILBLI, MOSES and ITBL dialogs this means prescribing the distribution of velocity U along its surface as a function of distance along the body surface (x) as obtained from an inviscid flow solution (e.g. calculated using the Vortex Panel Method Applet). To do this you can either choose 'Zero pressure gradient" (i.e. velocity doesn't change along the surface - the situation on a flat plate at zero angle of attack), or you can specify the distribution by typing, or pasting in, pairs of numbers representing x and U. Numbers can be delimited with spaces, tabs or line feeds but must be in order of increasing x.  A spline fit to the values you specify is performed to produce the continuous variations needed in the calculation. For WALZ the situation is slightly more complicated. Unlike  ILBLI, MOSES and ITBL, WALZ can be used to perform boundary layer calculations starting at a leading edge. The WALZ surface properties dialog box therefore asks you to specify whether the leading edge is sharp (initial boundary layer thickness zero) or rounded (initial non-zero boundary layer thickness computed from the inviscid velocity distribution you specify using the stagnation point solution of the Navier Stokes). WALZ will not let you specify a rounded leading edge with a zero or positive pressure gradient at the leading edge, since this is inconsistent. WALZ is also different in that it gives you the choice of computing boundary layers on axisymmetric bodies. This option is therefore included in the dialog.  In this case the leading edge is assumed rounded and you must also specify the body radius r as a function of x. The surface properties dialog boxes for WALZHT and MOSESHT are very similar to those of WALZ and MOSES. The only exception is that, since these methods also include thermal boundary layers, you must specify the distribution of temperature difference between the body surface and free stream as a function of x.
• Run options (WALZ, ILBLI, WALZHT only). Brings up the run options dialog box. By default the laminar boundary layer calculation methods stop when transition is detected, but (if, for example, you don't trust the transition calculation) this dialog allows you overide this feature.
• Initial profile (ILBLI, ITBL only). Brings up the initial profile dialog box. Since ITBL and ILBLI implement finite difference solutions of the boundary layer equations (and thus compute the velocity at every point in the boundary layer) it is necessary to specify the velocity profile at the upstream boundary of the calculation. This dialog allows you to do this by typing in pairs of points representing distance from the surface y, and velocity components u and v parallel and perpendicular to the surface. It is important to bear in mind that spline fits to these values will actually be used in the calculation. Alternatively you can choose to have the inflow profile generated automatically using the Coles profile for turbulent boundary layers (ITBL) or the Polhausen form for laminar boundary layers (ILBLI).
• Turbulence model (ITBL only). Brings up the dialog for selecting the type of turbulence model to use in ITBL.
Show
• Numerical results. Selecting this item brings up a dialog displaying the numerical results of the calculation so far, in terms of boundary layer parameters as a function of x. You can copy and paste the results that appear into other applications to save or plot them. The formatting used is compatible with Excel.
• Profile. This menu item opens a window showing the velocity profile at the current position. This window may be left open during the calculation so that you can see the profile develop as the boundary layer calculation progresses, or examine the form of an initial profile you have specified. The profile window contains menu item options that allow you to display (and copy) numerical results describing the profile shape, and (for the turbulent boundary layer applets ITBL, MOSES and MOSESHT) display the profile on linear or semilogarithmic axes. Note that for the integral calculation methods (WALZ, MOSES, WALZHT and MOSESHT) the profiles displayed are based on the computed boundary layer parameters and the profile forms assumed in formulating the integral method (Polhausen for laminar, Coles for turbulent boundary layers). For the finite difference methods (ILBLI and ITBL) the profiles show true computed values. In this case profiles of both u and v are specified.
Help
• About. Displays the current applet version.

Notes
• WALZ and WALZHT are exclusively for computing laminar boundary layers from the leading edge or stagnation point, defined as x=0. You cannot specify a non-zero starting location.
• ILBLI, ITBL, MOSES and MOSESHT must be started at a position downstream of the leading edge.
• The finite difference calculations of ITBL, JETMIX, and ILBLI are performed on uniformly spaced cartesian grids (to keep the logic and formulation simple). For laminar boundary layers (ILBLI) 100 steps in y is usually sufficient. However, because of the much higher velocity gradients in a turbulent boundary layer, at least 1000 steps in y are recommended with ITBL (10000 is often necessary for grid independent solutions).
• It is important to specify a sufficient number of streamwise (x) steps for your calculation. For simple streamwise pressure distributions usually 40 to 100 steps is adequate. Note, however, that the number of steps you specify is the number that will be taken between the starting and maximum x locations. If your calculation ends early (the boundary layer undergoes transition or separates) you may end up with only a few actual x locations computed. In this case it is wise to recompute the boundary layer with a larger number of steps, or a maximum x much closer to the separation or transition location.
• Note that there is no limit to the number of x or y steps you can specify for a calculation except the memory available in your computer. Requesting memory beyond that available does lead to an unrecoverable error, however.
• Care should be taken in interpreting predictions of laminar boundary layer separation in some circumstances. For example, the pressure peak found on the suction side of thin airfoils can cause almost immediate separation of the laminar boundary layer here. This may not be an indication that the airfoil has stalled since, in reality, only a very small laminar separation bubble may be formed after which the boundary layer reattaches and continues growing (usually as a turbulent boundary layer). Even though the boundary layer method becomes invalid when the flow separates like this, you may be able to very crudely model this situation using the applets by treating the laminar separation location as though it were a transition location, and continuing calculations from this point using one of the turbulent boundary layer applets.

Changes from Version 2.0
• Two new compressible codes have been added, CLBL and CTBL.
• It is now possible to specify an 'x' origin for the transition calculation in ILBLI and CLBL that is different from zero.
• The discretization used in ITBL has been updated and improved.

Changes from Version 1.0
The applet interfaces are quite different than in Version 1.0 :-
• the interface has been upgraded to be more intuitive and easier to use,
• more control over the applet inputs is now possible (initial profiles can be specified for ILBLI and ITBL, the flat-plate transition Reynolds number can be specified, you can step through the calculation),
• the results are properly plotted and more of them (the velocity profiles) are available in numerical form,
• it is possible to save and read the parameters and state of a calculation,
• it is possible to launch one applet from another say, to continue a boundary layer calculation with a turbulent method once transition has occured.
However, the underlying numerical methods are identical to those used in version 1.0 - the same calculation performed with the versions 1.0 and 2.1 will produce identical results. If, for some reason, you would like to run one of the applets in its version 1.0 form, they are still available here.