essential data

Preparation of SWAN runs

When you are preparing a set of Swan computations for a project be sure to devote considerable time to the preliminary phase. If you don′t you will have to pay later because you may have to repeat a whole series of production runs.
The first thing that you do in the preliminary phase is checking whether Swan is able to reproduce the present situation with reasonable accuracy. In order to verify you should assemble as much information about the existing situation as you can, observations by wave measuring equipment, but also experience from locals. Try to visit the area if you can, and have a good look; e.g. do you see certain vegetation that indicate that a certain wave height is not or only rarely exceeded?
If you are producing data for a new situation, e.g. for design of a breakwater or navigation channel, make some runs for one representative case of the new situation. All this in order to prevent surprises during the production runs.

Essential data

Essential data for a Swan run are:

  1. Bathymetry for a sufficiently large area
  2. incoming wave fields (unless you are computing waves in a lake or a completely isolated sea, such as the Black Sea)
  3. wind field (essential if you are computing waves in a lake or a completely isolated sea, such as the Black Sea)
In the case of an area where waves enter from sea or ocean it is often difficult to decide what “a sufficiently large area” is. This very much depends on the way the incoming wave field is obtained.
If the incoming waves are computed by another wave model such as Wavewatch III or WAM we are in fact dealing with nesting; there is a separate section on nesting that also explains how nesting within the Swan environment can be done.
A more difficult situation occurs when (buoy) observations have to be used to determine the incoming wave field. Incoming waves have to be applied on the whole open boundary of the computational grid while the waves are known at only one location. We distinguish the seaward boundary which is ususally more or less parallel to the coast and the two lateral boundaries which are perpendicular to the seaward boundary.
On the seaward boundary a constant incoming wave field is chosen. Therefore it is important that the seaward boundary is chosen such that the differences between wave parameters along this boundary are small. A seaward boundary is to be in sufficiently deep water (say 20 m or more) and preferably roughly parallel to a depth contour. If the buoy is not in suffiently deep water it is better to choose the seaward boundary in deeper water and estimate the wave conditions on this boundary. After the computation it can be decided by comparing the results at the buoy location with the observations whether the estimation was accurate enough.
Wave conditions on the seaward boundary are often difficult to determine, on the lateral boundaries they are completely unknown. Therefore these boundaries must be sufficiently far away from the region of interest so that their influence there is negligible. This is easily verified: apply two different incoming wave fields; a. no incoming waves on the lateral boundary (i.e. no BOUNDARY command for this side), b. the same incoming wave field as on the seaward boundary. The second option is physically unrealistic, the waves will be too high near the coast. Swan will reduce the wave height near to the boundary by means of the dissipation in the model. Click to see an example.
Note that in a nesting situation there is no need to choose a seaward boundary parallel to the coast. Exercise: explain why this is so.

go to top

The boundaries determine the size and the location of the computational grid. The resolution of the grid depends on the variations in the wave field. See the section on numerical modelling for more information. It is discussed here also whether the computation has to be stationary or non-stationary. A section on nesting explains the practicalities of nesting Swan models.

go to top

Depending on the situation other input fields have to be applied, e.g. current field, wind field, or variable bottom friction. A wind field is essential in the case of a lake or closed sea because then this is the only mechanism that will generate wave energy. In a coastal region where waves enter from sea or ocean the influence of wind is often minor. The dominant wave frequency is low and with such waves the wind needs a large distance to cause significant changes in the wave height and frequency. A constant wind field often suffices.
In the case of the current field a constant field is not an option. So experimenting with the current field is not as easy as with the wind. Gradients in the current velocity influence the propagation direction of the waves; the value of the velocity itself is not the only factor. The current field can often be ignored if the current velocity is very small compared with the group velocity of the dominant wave components.

go to top


This section discusses the choice of the various physical effects that can be included in a Swan model. Many users tend to include all physics that could possibly have any effect on the results. However, it is better to start with the most simple model, retaining only the physics that is essential to obtain a realistic result. The reason is that analysing and explaining the result is simpler. Further physical effects can be added one by one to find out whether they are relevant. In the case of diffraction this procedure is strongly recommended because diffraction can make the model unstable.

go to top


Obstacles in Swan are narrow artificial objects such as breakwaters that partly or wholly block wave propagation. Swan is often used to optimize breakwater design (location, cross-section). The location has to be given by means of coordinates of points along the axis of the structure; unfortunately errors easily occur when determining coordinates.
The Graphical User Interface can be helpful in this. The user can point and click on a map of the area. The GUI only defines obstacles that totally block the waves. After the GUI has generated the control file the user can modify the properties of the obstacle using a simple ASCII editor such as Notepad. The computation with the modified obstacle cannot be done with the GUI; it has to be done with the stand-alone Swan.

go to top


Swan will not produce any output, apart from error messages, unless it is instructed to do so. Two categories of output commands are needed in order to get output:

  1. commands defining output point sets:
    • FRAME, defining a rectangular area, covered by a regular grid
    • CURVE, defining a curve (in fact a broken line)
    • POINT, defining a set of individual output locations
    Each set of output points is characterized by a name.
  2. output commands proper:
    • BLOCK, output of numerical data in the form of an array
    • TABLE, output of a table where each column holds a different variable
    • SPECOUT, output of spectra, either 1-dimensional (energy density as function of f) or 2-dimensional (energy density as function of f,θ)
    • PLOT (only Swan-DHH) geographical and spectral plots
    Each output command refers to the name of a frame, curve or set of individual points
Two frames have been predefined, i.e. no FRAME commands are needed to define them: ′COMPGRID′ and ′BOTTGRID′ (computational grid and bottom grid resp.). Plots can be a combination of color bands (for scalar quantities) and vectors (for average direction or energy transport) or stars (giving the directional distribution of energy transport).

The following output is recommended, in addition to the output that is required specifically for the project:

  • for the whole computational grid:
    • bottom together with location of output points, obstacles etc.
    • bottom together with current velocities (if current is taken into account)
    • significant wave height together with plot of the directional distribution
    • average or peak period
  • spectra for a few points in the area of interest
A more detailed description of the output facilities is found in the separate page on output.

go to top

It is possible to check the input fields (bathymetry, current field etc.) without making a wave field computation; you can do this by setting the number of iterations in SWAN to zero, i.e.:

Also the boundary conditions will be read by SWAN, so it is possible to check these as well, e.g. by making spectral plots for output locations on the boundary.

© 2012: Nico Booij