Professional Documents
Culture Documents
Swashuse
Swashuse
USER MANUAL
website : http://www.tudelft.nl/swash
Permission is granted to copy, distribute and/or modify this document under the terms of
the GNU Free Documentation License, Version 1.2 or any later version published by the
Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-
Cover Texts. A copy of the license is available at http://www.gnu.org/licenses/fdl.html#TOC1.
iv
Contents
4 Description of commands 21
4.1 List of available commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Sequence of commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Command syntax and input / output limitations . . . . . . . . . . . . . . . 24
4.4 Start-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
PROJECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
v
vi
SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
COORDINATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.5 Model description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.5.1 Computational grid . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
CGRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
READGRID COORDINATES . . . . . . . . . . . . . . . . . . . . . 30
READGRID UNSTRUCTURED . . . . . . . . . . . . . . . . . . . 31
VERTICAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5.2 Input grids and data . . . . . . . . . . . . . . . . . . . . . . . . . . 32
INPGRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
READINP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
INPTRANS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
READTRANS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5.3 Initial and boundary conditions . . . . . . . . . . . . . . . . . . . . 43
INITIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
BOUND SHAPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
BOUNDCOND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
SOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
SPONGE LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5.4 Physics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
WIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
FRICTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
VISCOSITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
POROSITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
VEGETATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
TRANSPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
BREAKING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.5.5 Numerics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
NONHYDROSTATIC . . . . . . . . . . . . . . . . . . . . . . . . . 69
DISCRETIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . 74
BOTCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
TIME INTEGRATION . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.6 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6.1 Output locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
FRAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
CURVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
RAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
ISOLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
POINTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.6.2 Write or plot computed quantities . . . . . . . . . . . . . . . . . . . 85
vii
QUANTITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
BLOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.6.3 Write or plot intermediate results . . . . . . . . . . . . . . . . . . . 100
TEST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.7 Lock-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
COMPUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Bibliography 141
Index 142
Chapter 1
The information about the SWASH package is distributed over two different documents.
This User Manual describes the specifications for the input of the SWASH model. The
Implementation Manual explains the installation procedure and the usage of SWASH on a
single- or multi-processor machine with distributed memory. Apart from these documents,
programmers who want to further develop SWASH can also consult the Programming rules
as applied for SWAN; see http://www.swan.tudelft.nl for further details.
In Chapter 2 general description of the model and some instructions concerning the usage
of SWASH, the treatment of grids, boundary conditions, etc. are given. It is advised to
read this chapter before consulting the rest of the manual. Chapter 3 gives some remarks
concerning the input and output files of SWASH. Chapter 4 describes the complete set of
commands of the program SWASH. In Chapter 5 some guidelines for setting up a command
file is outlined.
Before start using the SWASH package, it is suggested to first read Chapters 2 and 3. Also,
Chapter 5 is recommended.
This manual also contains some appendices. In Appendix A definitions of some parameters
are given. Appendix B outlines the syntax of the command file (or input file). A complete
set of all the commands use in SWASH can be found in Appendix C.
1
2 Chapter 1
Chapter 2
2.1 Introduction
The purpose of this chapter is to provide the user with relevant background information
on SWASH and to give some general advice in choosing the basic input for SWASH com-
putations.
A general suggestion is: start simple. SWASH helps in this with default options. Moreover,
it is a good idea to read Chapter 5 first when setting up a command file for the first time.
Furthermore, suggestions are given that should help the user to choose among the many
options conditions and in which mode to run SWASH (1D or flume-like, 2D or basin-like,
depth-averaged or multi-layered, etc.). In addition, the way you need to specify the para-
meters and options resembles to that of SWAN. Hence, those users who are familiar with
SWAN should be able to use SWASH without much effort. It is recommended to carry out
some available test cases first to get acquaint with the program.
• wave transformation in both surf and swash zones due to nonlinear wave-wave inter-
actions, interaction of waves with currents, interaction of waves with structures, wave
damping due to vegetation, and wave breaking as well as runup at the shoreline,
3
4 Chapter 2
• complex changes to rapidly varied flows typically found in coastal flooding resulting
from e.g. dike breaks, tsunamis, and flood waves,
• density driven flows in coastal seas, estuaries, lakes, and rivers, and
• large-scale ocean circulation, tides and storm surges.
The model is referred to as a wave-flow model and is essentially applicable in the coastal
regions up to the shore. This has prompted the acronym SWASH for the associated code,
standing for Simulating WAves till SHore. The basic philosophy of the SWASH code is to
provide an efficient and robust model that allows a wide range of time and space scales
of surface waves and shallow water flows in complex environments to be applied. As a
result, SWASH allows for the entire modelling process to be carried out in any area of
interest. This includes small-scale coastal applications, like waves approaching a beach,
wave penetration in a harbour, flood waves in a river, oscillatory flow through canopies,
salt intrusion in an estuary, and large-scale ocean, shelf and coastal systems driven by
Coriolis and meteorological forces to simulate tidal waves and storm surge floods.
SWASH is close in spirit to SWAN (Simulating WAves Nearshore) with respect to the
pragmatism employed in the development of the code in the sense that comprises are
sometimes necessary for reasons of efficiency and robustness. On the one hand, it provides
numerical stability and robustness, and on the other hand it gives accurate results in a
reasonable turn-around time.
• For accuracy reason, the pressure is split-up into hydrostatic and non-hydrostatic
parts. Time stepping is done in combination with a projection method, where cor-
rection to the velocity field for the change in non-hydrostatic pressure is incorporated.
Moreover, space discretization precedes introduction of pressure correction, so that
no artificial pressure boundary conditions are required.
• With respect to time integration of the continuity and momentum equations, the
second order leapfrog scheme is adopted, as it does not alter the wave amplitude while
its numerical dispersion is favourable. This will prove beneficial to wave propagation.
• Alternatively, time discretization may take place by explicit time stepping for ho-
rizontal advective and viscosity terms and semi-implicit time stepping using the
θ−method for both surface level and pressure gradients as well as the free-surface
condition. As a consequence, unconditional stability is achieved with respect to the
celerity of gravity waves. The enhanced stability of this time stepping allows larger
time steps, by a factor of five to ten, compared to the leapfrog scheme, and may
thus be beneficial to large-scale applications such as tidal flow, and wind and density
driven circulation.
• The physical domain can be discretized by subdivision of the continuum into cells of
arbitrary shape and size. Furthermore, a distinction is made between the definition of
the grid in the horizontal and vertical direction. In general, we consider two types of
grids: structured and unstructured. A structured grid is employed where each interior
cell is surrounded by the same number of cells. In unstructured grids, however,
this number can be arbitrarily. For this reason, the level of flexibility with respect
to the grid point distribution of unstructured grids is far more optimal compared
to structured grids. In the horizontal planes, rectilinear, orthogonal curvilinear,
boundary-fitted, (non)uniform grid or unstructured grid can be considered. In the
current version of SWASH (since 7.01) only triangular meshes can be employed.
Either Cartesian coordinates on a plane or spherical coordinates on the globe can be
defined. In the vertical direction, the computational domain is divided into a fixed
number of layers in a such a way that both the bottom topography and the free
surface can be accurately represented. In this way, it permits more resolution near
the free surface as well as near the bed.
phase velocity of primary waves (k and d are the wave number and still water depth,
respectively). The model improves its frequency dispersion by simply increasing the
number of vertical layers.
• For a proper representation of the interface of water and land, a simple approach is
adopted that tracks the moving shoreline by ensuring non-negative water depths and
using the upwind water depths in the momentum flux approximations.
• Since version 7.01, the wave-flow model SWASH has been extended to unstructured
triangular meshes. The main motivation for the application of such meshes is the
ease of local grid refinements for the simulation of wave dynamics. The covolume
method has been adopted for the spatial discretization of the shallow water equations
with the primitive variables. The velocity components normal to the cell faces are
employed as the primary unknowns in the discretization, whereas the water level
and non-hydrostatic pressure are resided at cell centers. Although the covolume
method is free of spurious pressure modes, it is practically limited to Delaunay-
Voronoi meshes. This may impede the user flexibility to generate adequate grids
comprising the necessary refinements. Nevertheless, the associated orthogonality
requirement is found not to be a limiting factor in wave-related applications. This
is explained by the fact that the required mesh resolution is reasonably non-uniform
for the scale of wave dynamics across the entire domain. The unstructured version
of SWASH is applicable to a wide range of wave-flow problems to investigate the
nonlinear dynamics of free surface waves over varying bathymetries.
Like SWAN, the software package of SWASH includes user-friendly pre- and post-processing
and does not need any special libraries (e.g. PETSc, HYPRE). In addition, SWASH is
highly flexible, accessible and easily extendible concerning several functionalities of the
model. As such, SWASH can be used operationally and the software can be used freely
under the GNU GPL license (http://swash.sourceforge.net).
General description and instructions for use 7
• wave breaking,
• moving shoreline,
• bottom friction,
• wave-current interaction,
• wave-induced currents,
• subgrid turbulence,
• turbulence anisotropy,
• tidal waves,
• transport of tracer.
The model has been validated with a series of analytical, laboratory and field test cases.
Overall, the level of agreement between predictions and observations is quite favourable,
particularly in view of the fact that a wide range of wave conditions and topographies were
modelled.
SWASH is proved to reproduce the main features of surf zone dynamics, such as nonlinear
shoaling, wave breaking, wave runup and wave-driven currents. For instance, considering
a typical surf zone where the dominant processes of triad interaction and depth-induced
breaking can be isolated, it was found that the model yields a realistic representation of
the observed frequency spectra, including the overall spectral shape at frequencies above
the spectral peak, and the inclusion of subharmonics. This is followed by a transformation
toward a broadband spectral shape as the waves approach the shoreline.
Such phenomena appear to be rooted in the ability of the staggered (covolume) momentum-
conservative scheme to mimic the dynamics within travelling bores associated with wave
breaking across the surf zone. In addition, because of the use of discrete analogs of the
physical properties of the governing PDEs (e.g. topology, flux conservation) the effect of
discretization error originated from the discretization approximations is thus limited, in
that the numerical solution is merely influenced by the mesh resolution and mesh quality.
Also, the employed SWASH scheme rules out non-physical artefacts that can occur when
using a traditional discretization approach (e.g. finite volume methods).
approximations are at most second order accurate in both time and space.
In addition, SWASH does not have any numerical filter nor dedicated dissipation mech-
anism to eliminate short wave instabilities. Neither does SWASH include other ad-hoc
measures like the surface roller model for wave breaking, the slot technique for moving
shoreline, and the alteration of the governing equations for modelling wave-current inter-
action. As such, SWASH is very likely to be competitive with the extended Boussinesq-type
wave models in terms of robustness and the computational resource required to provide
reliable model outcomes in challenging wave and flow conditions. Therefore, it can be seen
as an attractive alternative to the Boussinesq-type wave models.
The need to accurately predict small-scale coastal flows and transport of contaminants
encountered in environmental issues is becoming more and more recognized. The afore-
mentioned models, however, are orginally designed to simulate large-scale circulation. The
development of these models is often dictated by model limitations, numerical techniques
and computer capabilities. For instance, the hydrostatic pressure assumption prohibits
the models to appropriately simulate surface waves, internal waves, and small-scale flows
around hydraulic structures.
In principle, SWASH has no limitations and can capture flow phenomena with spatial
scales from centimeters to kilometers and temporal scales from seconds to hours. Yet, this
model can be employed to resolve the dynamics of wave transformation, buoyancy flow
and turbulent exchange of momentum, salinity, heat and suspended sediment in shallow
seas, coastal waters, surf zone, estuaries, reefs, rivers and lakes.
Examples are:
• The minimum depth for checking drying and flooding may be adapted as soon as the
water level is below the bottom.
• A dynamically adjusted time step controlled by the Courant number in a user pre-
scribed range is implemented. This time step control for a particular SWASH run is
provided in the PRINT file.
• Based on a stability criterion due to the explicit treatment of the horizontal eddy
viscosity term in the momentum equations, a maximum of the eddy viscosity is
determined at each time step. The user will be informed about this measure by
means of a warning in the PRINT file when the number of instable points is more
than 1% of the total number of grid points.
Some other problems which the SWASH user may encounter are due to more fundamental
shortcomings, e.g., turbulence modelling, and unintentional coding bugs.
Because of the issues described above, the results may look realistic, but they may (locally)
not be accurate. Any change in these scenarios or shortcomings, in particular newly dis-
covered coding bugs and their fixes, are published on the SWASH website and implemented
in new releases of SWASH.
In the input and output of SWASH the direction of wind, (incident) wave and current are
defined according to either
• the Cartesian convention, i.e. the direction to where the vector points, measured
counterclockwise from the positive x−axis of this system (in degrees) or
• a nautical convention (there are more such conventions), i.e. the direction where the
wind or the waves come from, measured clockwise from geographic North.
All other directions, such as orientation of grids, are according to the Cartesian convention!
For regular grids, i.e. uniform and rectangular, Figure 4.1 (in Section 4.5) shows how the
locations of the various grids are determined with respect to the problem coordinates. All
grid points of curvilinear and unstructured grids are relative to the problem coordinate
system.
The spatial grids that need to be defined by the user are (if required):
• one (or more) spatial input grid(s) for the bottom, (initial) current field, (initial)
water level, bottom friction, wind, atmospheric pressure, porosity regions, grain sizes
of armour rocks, heights of breakwaters and quays, vegetation density and drafts of
floating objects (each input grid may differ from the others),
• one (or more) spatial input grid(s) for transport of constituents to define initial and
stationary boundary conditions for constituents, and
• one (or more) spatial output grid(s) on which the user requires output of SWASH.
Wind, bottom friction, grain sizes, heights of porous structures and vegetation density do
not require a grid if they are uniform over the area of interest.
If a uniform, rectangular computational grid is chosen in SWASH, then all input and output
grids must be uniform and rectangular too, but they may all be different from each other.
If an orthogonal curvilinear computational grid is chosen in SWASH, then each input grid
12 Chapter 2
If an unstructured computational spatial grid is chosen in SWASH, then each input grid
should be either uniform, rectangular or identical to the used unstructured grid.
Also, SWASH may operate with different time windows with different time steps (each
may have a different start and end time and time step):
• one (or more) input time window(s) in which wind and pressure field (if present) are
given by the user (each input window may differ form the others) and
• one (or more) output time window(s) in which the user requires output of SWASH.
During the computation SWASH obtains bottom, current, water level, wind, pressure,
bottom friction, porosity, grain size, structure height and vegetation density information
by tri-linear interpolation from the given input grid(s) and time window(s). The output is
in turn obtained in SWASH by bi-linear interpolation in space from the computational grid;
there is no interpolation in time, the output time is shifted to the nearest computational
time level. Interpolation errors can be reduced by taking the grids and windows as much
as equal to one another as possible (preferably identical). It is recommended to choose
output times such that they coincide with computational time levels.
If the computational grid extends outside the input grid, the reader is referred to Sec-
tion 2.5.3 to find the assumptions of SWASH on depth, current, water level, wind, bottom
friction, porosity, grain size, structure height and vegetation density in the non-overlapping
area.
The spatial resolution of the computational grid should be sufficient to resolve relevant de-
tails of the wave field. Usually a good choice is to take the resolution of the computational
grid approximately equal to that of the bottom or current grid. See Chapter 5 for further
details.
Alternatively, the user may apply a curvilinear, boundary-fitted grid. This grid must be
orthogonal, but may either be uniform or nonuniform. The domain boundaries may be
curved. The exception is when a wave spectrum is imposed, in which case the wavemaker
boundaries must be non-curved.
If necessary, an unstructured triangular grid may be used for a further extensive local mesh
General description and instructions for use 13
SWASH may not use the entire user-provided computational grid if the user defines ex-
ception values on the bottom grid (see command INPGRID BOTTOM) or on the curvilinear
computational grid (see command CGRID). A computational grid point is either
• wet, i.e. the grid point is included in the computation since it represents water or
• dry, i.e. the grid point is excluded from the simulation since it represents land which
may vary as moving shoreline or
• exceptional, i.e. the grid point is permanently excluded from the computations since
it is so defined by the user. This provides a means to make a line of dams or screens
through the computational domain, separating the flow on both sides. This line
of thin dams may represent a small obstacle with subgrid dimensions that possibly
influence the local flow (e.g. breakwater, jetty, or small harbour).
It must be noted that for parallel runs using MPI the user must indicate an exception value
when reading the bottom levels (by means of command INPGRID BOTTOM EXCEPTION), if
appropriate, in order to obtain good load balancing.
For further suggestions regarding choice of the resolution and orientation of the computa-
tional grid the user is kindly referred to Chapter 5.
The computational time window must be defined by the user. The computational win-
dow in time must start at a time that is early enough that the initial state of SWASH has
propagated through the computational area before reliable output of SWASH is expected.
Before this time the output may not be reliable since usually the initial state is not known.
The computational time step must be given by the user. Since, SWASH is based on explicit
schemes, it is limited by a Courant stability criterion (which couples time and space steps).
Moreover, the accuracy of the results of SWASH are obviously affected by the time step.
Generally, the time step in SWASH should be small enough to resolve the time variations
of computed wave field itself. Usually, it is enough to consider the time variations of the
wave boundary conditions.
When the atmospheric pressure is included, it must be combined with space varying wind.
14 Chapter 2
They may be read from a meteorological file. Space varying wind and pressure is of par-
ticular importance for the simulation of storm surges.
In the region outside the input grid SWASH assumes that the bottom level, the water level,
bottom friction, atmospheric pressure, stone diameter and vegetation density are identical
to those at the nearest boundary of the input grid (lateral shift of that boundary). In the
regions not covered by this lateral shift (i.e. in the outside quadrants of the corners of the
input grid), a constant field equal to the value at the nearest corner point of the input
grid is taken. For the current and wind velocity, SWASH takes 0 m/s for points outside
the input grid, while for porosity and structure height, SWASH takes 1 and 99999 (i.e.
emerged), respectively, for points outside the input grid.
One should choose the spatial resolution for the input grids such that relevant spatial de-
tails in the bathymetry, current, bottom friction, wind and pressure and floating objects
are properly resolved. Special care is required in cases with sharp and shallow ridges (sand
bars, shoals, breakwaters) in the sea bottom and extremely steep bottom slopes. Very
inaccurate bathymetry can result in very inaccurate wave transformation or flooding and
drying. In such cases the ridges are vitally important to obtain good SWASH results. This
requires not only that these ridges should be well represented on the input grid but also
after interpolation on the computational grid. This can be achieved by choosing the grid
lines of the input grid along the ridges (even if this may require some slight ”shifting” of the
ridges) and choosing the computational grid to be identical to the input grid (otherwise the
ridge may be ”lost” in the interpolation from the bottom input grid to the computational
grid). An alternative is to smooth the bottom gradients. But this should be done in a way
that the quality and feature of the bathymetric data is more or less the same.
In SWASH, wind, pressure and bottom friction may be time varying. In that case they
need to be provided to SWASH in so-called input time windows (they need not be identical
with the computational, output or other input windows). It is best to make an input win-
dow larger than the computational time window. SWASH assumes zero values at times
before the earliest begin time of the input parameters (which may be the begin time of any
input parameter such as wind). SWASH assumes constant values (the last values) at times
after the end time of each input parameter. The input windows should start early enough
so that the initial state of SWASH has propagated through the computational area before
reliable output of SWASH is expected.
Finally, one should use a time step that is small enough that time variations in the wind,
pressure and bottom friction are well resolved.
will influence the density of water and consequently, they will induce flow through the
baroclinic pressure gradient. In this way, transport of constituents and water flow are
coupled. Examples are salt intrusion in an estuary, sediment transport in turbidity flows
and transport of dissolved matter in lakes and rivers.
Only the background temperature is considered in the model, and the heat exchange flux
at the air-water interface is not taken into account.
With respect to the sediment transport, the following assumptions are made.
• Only suspended load is modelled; bed load is not taken into account.
• In the depth-averaged mode, there is no mass exchange of suspended sediment
between the bed and the flow.
• The intergranular interactions are excluded.
The inclusion of transport of constituent in SWASH must be done by means of an input
grid for each constituent. Such an input grid represents the ambient or background concen-
tration of the corresponding constituent as an initial state, while it provides information
along the open boundaries of the computational domain. The use of this information to
impose a boundary condition for constituent depends on the flow direction. At inflow, the
concentration is prescribed using this information delivered by the input grid. At outflow,
the concentration is determined solely by the concentration in upstream part of the do-
main due to pure advection. It is assumed that the area of interest in which transport
phenomena occur is far away from the open boundaries. The ambient concentration at
open boundaries is therefore supposed to be steady state. However, for unsteady salt in-
trusion in a tidal inlet, the concentration is prescribed at inflow by means of a so-called
Thatcher-Harleman boundary condition. In this way, a smooth (sinusoidal) transition from
the outflow concentration to the inflow boundary condition can be described; see also com-
mand TRANSPORT.
It is advised to make an input grid so large that it completely covers the computational
grid. Otherwise, SWASH assumes that in the region outside the input grid, the constituent
equals to the value at the nearest boundary of the input grid (lateral shift of that bound-
ary).
Finally, both the initial state and boundary conditions of any constituent may be vary in
the vertical direction. This needs to be provided to SWASH with an input grid for each
vertical layer.
grid has to be specified by the user with an arbitrary resolution, but it is of course wise to
choose a resolution that is fine enough to show relevant spatial details. It must be poin-
ted out that the information on an output grid is obtained from the computational grid
by bi-linear interpolation (output always at computational time level). This implies that
some inaccuracies are introduced by this interpolation. It also implies that bottom or wind
information on an output plot has been obtained by interpolating twice: once from the
input grid to the computational grid and once from the computational grid to the output
grid. If the input, computational and output grids are identical, then no interpolation
errors occur.
In the regions where the output grid does not cover the computational grid, SWASH as-
sumes output values equal to the corresponding exception value. For example, the default
exception value for the surface elevation is −9. The exception values of output quantities
can be changed by means of the QUANTITY command.
Output can be requested at regular intervals starting at a given time always at computa-
tional times.
• different wavemakers:
• velocity or discharge,
• Riemann invariants,
• sponge layers.
SWASH has the option to make a computation that is nested in SWAN. In such a run,
SWASH interpolates the locations, as specified in the SWAN run with POINTS or CURVE,
to the user-defined boundary, either side or segment (see command BOUNDCOND), of the
concerning SWASH run. The SWAN spectra are written to those locations using the
SWAN command SPECOUT. These wave spectra are employed as boundary conditions us-
ing the SPECSWAN command. It is assumed that the wave spectra are stationary. Also,
both SWASH and SWAN runs must used the same coordinate system, either Cartesian or
spherical.
• between the years 0 and 9999, if ISO-notation is used in the input (recommended)
or
• between the years 1931 and 2030 if two-digit code for years is used (formats 2-6 in
every command that contains moments in time).
2.8 Troubleshooting
Sometimes SWASH produces an error message concerning an instability due to the fact
that the water level is below the bottom level and stops. It is general difficult to find the
cause of this problem. However, some suggestions about possible reasons and what to do
in such cases are given below.
• Checking of the input should always be done at first. It is important that dimensions,
model parameters, numerical parameters and boundary conditions are given in a
correct manner. Also, consult Chapter 5, if necessary. In any case, check the PRINT
file.
• If all input is correct and the model is supposed to converge then the common measure
is always to reduce the time step (see command COMPUTE). Especially in the case of
a transient or spin up a small time step may be necessary. Since this is the easiest
way to overcome problems, it is always a good practice to start with this measure.
18 Chapter 2
Note that sometimes the maximum Courant number should be decrease as well (see
command TIMEI EXPL [cflhig]).
• Sometimes the solution of the Poisson pressure equation can not be found as the
BiCGSTAB solver did not converged. This may happen, for instance, when a con-
siderable number of layers (∼ 30) is involved. In such a case the choice for the
ILU preconditioner might be a good alternative (see command NONHYDrostatic ...
PRECond ILU).
Chapter 3
3.1 General
SWASH is one single computer program. The names of the files provided by the user should
comply with the rules of file identification of the computer system on which SWASH is run.
In addition: SWASH does not permit file names longer than 36 characters. Moreover,
the maximum length of the lines in the input files for SWASH is 180 positions.
The user should provide SWASH with a number of files (input files) with the following
information:
• a file containing the instructions of the user to SWASH (the command file),
• file(s) containing: grid, bottom, (initial) current and water level, friction, porosity,
and wind and pressure (if relevant) and
SWASH is fairly flexible with respect to output processing. Output is available for many
different quantities. However, the general rule is that output is produced by SWASH only
at the user’s request. The instructions of the user to control output are separated into
three categories:
19
20 Chapter 3
• Definitions of the geographic location(s) of the output. The output locations may be
either on a grid, or along user specified lines (e.g., a given depth contour line) or at
individual output locations.
The print file contains an echo of the command file, an overview of the actual physical
and numerical parameters to be used in the simulation run, and possibly warning and
error messages. These messages are usually self-explanatory. The print file also contains
computational results if the user so requests (with command BLOCK or TABLE).
Description of commands
Start-up commands
(a) Start-up commands:
21
22 Chapter 4
Output commands
Lock-up commands
Many commands provide the user with the opportunity to choose an option (e.g. discretiz-
ation scheme) or assign values to coefficients (e.g. bottom friction coefficient). If the user
does not use such option SWASH will use a default value.
Some commands cannot be used in 1D-mode and in case of unstructured grids (see indi-
vidual command descriptions below).
Limitations:
• The maximum number of file names is 99. This can be extended (edit the file
swashinit to change highest unit number of 99 to a higher number).
4.4 Start-up
’title1’
’title2’
’title3’
With this required command the user defines a number of strings to identify the SWASH
run (project name e.g., an engineering project) in the print and plot file.
| NAUTical |
CORIolis < > [outlev]
| -> CARTesian |
With this optional command the user assigns values to various general parameters.
| | |-> TWODimensional |
MODE < NONSTationary > < >
| | | ONEDimensional |
With this optional command the user indicates that the run will be either one-dimensional
(1D-mode, flume) or two-dimensional (2D-mode, basin).
| -> CARTesian
COORDINATES < | -> CCM
| SPHErical <
| QC
Command to choose between Cartesian and spherical coordinates (see Section 2.4).
CARTESIAN all locations and distances are in m. Coordinates are given with respect
to x− and y−axes chosen by the user in the various commands.
SPHERICAL all coordinates of locations and geographical grid sizes are given in degrees;
x is longitude with x = 0 being the Greenwich meridian and x > 0 is East of
this meridian; y is latitude with y > 0 being the Northern hemisphere. Input
and output grids have to be oriented with their x−axis to the East; mesh sizes
are in degrees. All other distances are in meters.
CCM defines the projection method in case of spherical coordinates. CCM means
central conformal Mercator. The horizontal and vertical scales are uniform
in terms of cm/degree over the area shown. In the center of the scale is
identical to that of the conventional Mercator projection (but only at that
center). The area in the projection center is therefore exactly conformal.
28 Chapter 4
QC the projection method is quasi-cartesian, i.e. the horizontal and vertical scales
are equal to one another in terms of cm/degree.
Note that spherical coordinates can also be used for relatively small areas, say 10 or 20
km horizontal dimension. This may be useful if one obtains the boundary conditions by
nesting in an oceanic model which is naturally formulated in spherical coordinates.
Note that in case of spherical coordinates regular grids must always be oriented E-W, N-S,
i.e. [alpc]=0, [alpinp]=0, [alpfr]=0 (see commands CGRID, INPUT GRID and FRAME,
respectively). In addition, spherical coordinates are not supported in case of unstructured
grids.
| -> X
REPeating <
| Y
With this required command the user defines the geographic location, size, resolution and
orientation of the computational grid in the problem coordinate system (see Section 2.5.2)
in case of a uniform, rectilinear computational grid, an orthogonal curvilinear grid or an
unstructured triangular mesh. The origin of the regular grid and the direction of the
positive x−axis of this grid can be chosen arbitrary by the user.
REGULAR this option indicates that the computational grid is to be taken as uniform and
rectangular.
CURVILINEAR this option indicates that the computational grid is to be taken as curvilinear.
The user must provide the coordinates of the grid points with command
READGRID COOR.
UNSTRUCTURE this option indicates that the computational grid is to be taken as unstructured.
The user must provide the coordinates of the vertices and the numbering of
triangles with the associated connectivity table with vertices with command
Description of commands 29
READGRID UNSTRUC.
[xpc] geographic location of the origin of the computational grid in the problem
coordinate system (x−coordinate, in m). See command COORD.
Default: [xpc] = 0.0 (Cartesian coordinates).
In case of spherical coordinates there is no default, the user must give a value.
[ypc] geographic location of the origin of the computational grid in the problem
coordinate system (y−coordinate, in m). See command COORD.
Default: [ypc] = 0.0 (Cartesian coordinates).
In case of spherical coordinates there is no default, the user must give a value.
[alpc] direction of the positive x−axis of the computational grid (in degrees, Cartesian
convention). In 1D-mode, [alpc] should be equal to the direction [alpinp]
(see command INPGRID).
Default: [alpc] = 0.0
[xlenc] length of the computational grid in x−direction (in m). In case of spherical
coordinates [xlenc] is in degrees.
[ylenc] length of the computational grid in y−direction (in m). In 1D-mode, [ylenc]
should be 0. In case of spherical coordinates [ylenc] is in degrees.
[mxc] number of meshes in computational grid in x−direction for a uniform, rectilinear
grid or ξ−direction for a curvilinear grid (this number is one less than the
number of grid points in this domain!).
[myc] number of meshes in computational grid in y−direction for a uniform, rectilinear
grid or η−direction for a curvilinear grid (this number is one less than the
number of grid points in this domain!). In 1D-mode, [myc] should be 0.
EXCEPTION only available in the case of a curvilinear grid. If certain grid points are to be
ignored during the computation (e.g. land points that remain dry i.e. no
flooding; saving computer time and memory), then this can be indicated by
identifying these grid points in the file containing the grid point coordinates
(see command READGRID). For an alternative, see command INPGRID BOTTOM.
[xexc] the value which the user uses to indicate that a grid point is to be ignored
in the computations (this value is provided by the user at the location of the
x−coordinate considered in the file of the x−coordinates, see command
READGRID COOR). Required if the option EXCEPTION is used.
Default: [xexc] = 0.0
[yexc] the value which the user uses to indicate that a grid point is to be ignored
in the computations (this value is provided by the user at the location of the
y−coordinate considered in the file of the y−coordinates, see command
READGRID COOR). Required if the option EXCEPTION is used.
Default: [yexc] = [xexc]
REPEATING this option indicates that the grid is repeated in one specific direction.
It means that information leaving at one end of the domain enters at
the opposite end. So, the current or wave field is periodic in one direction
with the length of the domain in that direction.
NOT FOR 1D-MODE AND UNSTRUCTURED GRIDS.
30 Chapter 4
For illustration of a regular grid with its dimensions, see Figure 4.1.
problem
coordinates
yp−axis
(mxc,myc)
yc−axis
xc−axis
(0,myc) computational grid
(mxc,0)
alpc
ypc (0,0)
Figure 4.1: Coordinates of the origin [xpc] and [ypc], the orientation [alpc] and the
grid point numbering of the computational grid with respect to the problem coordinates
system. Note that in case of spherical coordinates the xc− and xp−axes both point East.
| -> FREe |
| |
| | ’form’ | |
< FORmat < > >
| | [idfm] | |
| |
| UNFormatted |
This command READGRID COOR must follow a command CGRID CURV. With this command
Description of commands 31
(required if the computational grid is orthogonal curvilinear; not allowed in case of a regu-
lar grid) the user controls the reading of the coordinates of the computational grid points.
These coordinates must be read from a file as a vector (x−coordinate, y−coordinate of
each single grid point). See command READINP for the description of the options in this
command READGRID. SWASH will check whether all angles in the grid are > 0 and < 180
degrees. If not, it will print an error message giving the coordinates of the grid points
involved. It is recommended to use grids with angles between 45 and 135 degrees.
| -> TRIAngle |
READgrid UNSTRUCtured < > ’fname’
| EASYmesh |
This command READGRID UNSTRUC must follow a command CGRID UNSTRUC. With this com-
mand (required if the computational grid is unstructured which must be Delaunay; not
allowed in case of a regular or curvilinear grid) the user controls the reading of the (x, y) co-
ordinates of the vertices including boundary markers and a connectivity table for triangles
(or elements). This table contains three corner vertices around each triangle in counter-
clockwise order. This information should be provided by a number of files generated by
one of the following grid generators currently supported by SWASH:
• Triangle (http://www.cs.cmu.edu/afs/cs/project/quake/public/www/triangle.html)
• Easymesh (http://www-dinma.univ.trieste.it/nirftc/research/easymesh/easymesh.html)
These generators produce Delaunay-type grids. After setting up the vertices and the
connectivity tables for cells and faces (automatically done in SWASH), SWASH will print
some information concerning the used mesh, among others, number of vertices, cells and
faces and minimum and maximum gridsizes.
TRIANGLE the necessary grid information is read from two files as produced by Triangle.
The .node and .ele files are required. The basename of these files must be
indicated with parameter ’fname’.
EASYMESH the necessary grid information is read from two files as produced by
Easymesh. The .n and .e files are required. The basename of these files
must be indicated with parameter ’fname’.
’fname’ basename of the required files, i.e. without extension. Only meant for
Triangle and Easymesh.
32 Chapter 4
| M
VERTical [kmax] < [thickness] < >
| -> PERC
With this optional command the user indicates that the run will be in multi-layered mode
and controls the distribution of vertical layers.
Notes:
• The layers interfaces are equivalent to the well-known sigma planes, if all the layers
have a variable thickness.
• For short wave simulations, it is advised to choose variable thicknesses only, preferably
equidistantly distributed.
• Layers with a fixed thickness are not supported in case of unstructured grids.
| BOTtom |
| |
| WLEVel |
| |
| | CURrent |
| < |
| | VX |
| | VY |
| |
Description of commands 33
| FRiction |
| |
| | WInd |
INPgrid (< < >) &
| | WX |
| | WY |
| |
| PRessure |
| |
| POROsity |
| |
| PSIZe |
| |
| HSTRUCture |
| |
| NPLAnts |
| |
| FLOAT |
| -> Sec |
(NONSTATionary [tbeginp] [deltinp] < MIn > [tendinp])
| HR |
| DAy |
With this required command the user defines the geographic location, size and orientation
of an input grid and also the time characteristics of the variable if it is not stationary. If
this is the case (the variable is not stationary), the variable should be given in a sequence
of fields, one for each time step [deltinp]. The actual reading of values of bottom, wind,
pressure, etc. from file is controlled by the command READINP.
This command INPGRID must precede the following command READINP.
There can be different grids for bottom level (BOTTOM), current (CURRENT), bottom friction
34 Chapter 4
If the current velocity components are available on different grids, then option VX, VY can
define these different grids for the x− and y−component of the current, respectively (but
the grids must have identical orientation). Different grids for VX and VY may be useful if
the data are generated by a circulation model using a staggered grid. The same holds for
the wind velocity components, i.e. WX and WY.
In the case of a regular grid (option REGULAR in the INPGRID command) the current and
wind velocity vectors are defined with the x− and y−component of the current or wind
vector with respect to the x−axis of the input grid. In case of an orthogonal curvilinear
grid (option CURVILINEAR in the INPGRID command) the current and wind velocity vectors
are defined with the x− and y−component of the current or wind vector with respect to
the x−axis of the problem coordinate system.
In case of an unstructured grid (option UNSTRUC in the INPGRID command) the current and
wind velocity vectors are defined with the x− and y−component of the current or wind
vector with respect to the x−axis of the problem coordinate system.
Porosity layers can be placed inside the computational domain to simulate reflection and
transmission effects of porous structures such as rubble mound breakwaters and jetties.
Porosity is defined as the volumetric porosity of the structures and its value is in between
0 and 1. A porosity value of 0.45 is typically used for breakwaters. A small value (< 0.1)
should be interpreted as impermeable, like walls and dams. Also structure heights (relat-
ive to the bottom) can be specified so that both submerged and emerged breakwaters is
allowed.
If the user specifies an input grid for the atmospheric pressure, then an input grid for
wind must be included as well. Both space varying wind and pressure may be read from a
meteorological file.
For wind velocity, friction coefficient, grain size, height of porous structures and vegetation
density it is also possible to use a constant value over the computational field (see com-
mands WIND, FRICTION, POROSITY and VEGETATION, respectively). No grid definition for
wind, friction, grain size, structure height or vegetation density is then required.
Note that in case of options BOTTOM, POROSITY, PSIZE, HSTRUCTURE and NPLANTS only
stationary input field is allowed.
If the computational grid is unstructured, the input grids can be either regular or identical
to the used computational grid.
Description of commands 35
If land points remain dry during the computation (no flooding!), then these points can
be ignored. In this way, simulation time and internal memory can be saved. This can be
done by indicating bottom level in these points as exception value. See command INPGRID
BOTTOM EXCEPTION. For parallel runs using MPI, an exception value for bottom levels
should be prescribed in order to have a good load-balancing!
Exception value for bottom levels can also be used to take into account dams, screens,
quays or jetties in the domain. In addition, they may represent small obstacles with sub-
grid dimensions that possibly influence the local flow pattern. In this way, the user can
defined a line of thin dams that separate the flow on both sides.
| BOTtom |
| |
| WLEVel |
| |
| CURrent |
| |
| FRiction |
| | | ’fname1’ |
READinp < WInd > [fac] < > [idla] &
| | | SERIes ’fname2’ |
38 Chapter 4
| PRessure |
| |
| POROsity |
| |
| PSIZe |
| |
| HSTRUCture |
| |
| NPLAnts |
| |
| FLOAT |
| -> FREe |
| |
| | ’form’ | |
[nhedf] ([nhedt]) ([nhedvec]) < FORmat < > >
| | [idfm] | |
| |
| UNFormatted |
With this required command the user controls the reading of values of the indicated vari-
ables from file. This command READINP must follow a command INPGRID.
If the variables are in one file, then the READINP commands should be given in the same
sequence as the sequence in which the variables appear in the file.
BOTTOM with this option the user indicates that bottom levels (in m) are to be read from
file (bottom level positive downward relative to an arbitrary horizontal datum
level). The sign of the input can be changed with option [fac] = −1. (see below).
WLEV with this option the user indicates that water levels (in m) are to be read from
file (water level positive upward relative to the same datum level as used in
option BOTTOM). Sign of input can be changed with option [fac] = −1. If the
water level is constant in space and time, the user can use the command SET
to add this (still) water level to the still water depth.
CURRENT rectilinear (curvilinear) input grid: with this option the user indicates that
the x− and y−component (ξ− and η−component) (in m/s) are to be read from
one and the same file (with one READINP command). With this option SWASH
reads first all x−components (ξ−components), and then all y−components
(η−components) (see [idla]). The first component (x− or ξ−component) is
always eastward oriented and the second one (y− or η−component) is always
northward oriented. There is one exception: in case of rotated rectilinear grid,
the x− and y−components are taken along the direction of the grid lines.
unstructured input grid: with this option the user indicates that the x− and
Description of commands 39
y−component (in m/s) are to be read from one and the same file (with one
READINP command). With this option SWASH reads first all x−components,
and then all y−components. The order of these values to be read is identical
to that of the unstructured computational grid.
FRICTION with this option the user indicates that friction coefficient is to be read from
file for Manning or Chezy formula’s or Nikuradse roughness height. If the
coefficients are constant in space and time: see command FRICTION.
WIND rectilinear (curvilinear) input grid: with this option the user indicates that
the x− and y−component (ξ− and η−component) (in m/s) are to be read from
one and the same file (with one READINP command). With this option SWASH
reads first all x−components (ξ−components), and then all y−components
(η−components) (see [idla]). The first component (x− or ξ−component) is
always eastward oriented and the second one (y− or η−component) is always
northward oriented. There is one exception: in case of rotated rectilinear grid,
the x− and y−components are taken along the direction of the grid lines.
If the wind is constant, see command WIND.
PRESSURE with this option the user indicates that atmospheric pressures (in N/m2 ) are
to be read from file. Unit can be changed with option [fac] (see below).
POROSITY with this option the user indicates that volumetric porosity is to be read from
file. Porosity values less than 1 indicates the location of porous structures. A
value of 1 represents water points. Regions with small porosity values (< 0.1)
will be treated as impermeable regions, i.e. land points.
PSIZE with this option the user indicates that grain sizes (in m) of porous structures
are to be read from file. If the grain size is constant for all porous structures
then see command POROSITY for specification.
HSTRUCTURE with this option the user indicates that heights (in m) of porous structures
(relative to the bed level) are to be read from file. If the height is constant
for all porous structures then see command POROSITY for specification.
NPLANTS with this option the user indicates that horizontally varying vegetation
density (per m2 ) is to be read from file. If the density is constant then
see command VEGETATION for specifcation.
FLOAT with this option the user indicates that the draft of floating object (in m) is
to be read from file (draft positive downward relative to an arbitrary horizontal
datum level). The sign of the input can be changed with option [fac] = −1.
(see below).
[fac] SWASH multiplies all values that are read from file with [fac]. For instance
if the bottom levels are given in unit decimeter, one should make [fac]=0.1 to
obtain levels in m. To change sign of bottom level use a negative value of [fac].
Note that [fac] = 0 is not allowed!
Default: [fac]=1.
’fname1’ name of the file with the values of the variable.
SERIES with this option (only for MODE NONSTATIONARY) the user indicates that the
names of the files containing the nonstationary variable(s) are located in a
40 Chapter 4
=2: as [idla]=1 but a new line in the map need not start on a new line in
the file.
=3: SWASH reads the map from left to right starting in the lower-left-hand
corner of the map. A new line in the map should start on a new line in
the file. The lay-out is as follows:
=4: as [idla]=3 but a new line in the map need not start on a new line
in the file.
=5: SWASH reads the map from top to bottom starting in the lower-left-hand
corner of the map. A new column in the map should start on a new line in
the file. The lay-out is as follows:
=6: as [idla]=5 but a new column in the map need not start on a new line
in the file.
Default: [idla]=1
Description of commands 41
[nhedf] is the number of header lines at the start of the file. The text in the header
lines is reproduced in the PRINT file created by SWASH (see Section 3.3). The
file may start with more header lines than [nhedf] because the start of the
file is often also the start of a time step and possibly also of a vector
variable (each having header lines, see below, [nhedt] and [nhedvec]).
Default: [nhedf]=0
[nhedt] only if variable is time dependent: number of header lines in the file at the
start of each time level. A time step may start with more header lines than
[nhedt] because the variable may be a vector variable which has its own header
lines (see below [nhedvec]).
Default: [nhedt]=0
[nhedvec] for each vector variable: number of header lines in the file at the start of
each component (e.g., x− or y−component).
Default: [nhedvec]=0
FREE With this option the user indicates that the values are to be read with free
format. Free format is a standard of the computer programming language
FORTRAN. The free format conventions in reading from a file are almost the
same as the conventions for the command syntax given elsewhere in this manual;
the most important differences are:
1. There are no continuation marks, reading continues until the required
number of data has been read, or until a slash (/) is encountered.
2. Input lines can be longer than 80 characters (depending on the operating
system of the computer).
3. Comment is not allowed.
With free format empty fields, repetition factors, and closure of a line by a slash,
can be used.
FORMAT with this option the user indicates that fixed format (FORTRAN convention) is
to be used when reading the values from file. The format can be defined in one
of two ways, by giving the format number [idfm] or the format string ’form’.
’form’ a user−specified format string according to Fortran convention, e.g.
’(10X,12F5.0)’.
[idfm] this format number is interpreted as follows:
=1: Format according to BODKAR convention (a standard of the Ministry
of Transport and Public Works in the Netherlands).
Format string: (10X,12F5.0).
=5: Format (16F5.0), i.e. an input line consists of 16 fields of 5 places each.
=6: Format (12F6.0), i.e. an input line consists of 12 fields of 6 places each.
=8: Format (10F8.0), i.e. an input line consists of 10 fields of 8 places each.
UNFORMATTED is a form of reading without conversion (binary files). Not recommended for
ordinary use.
If the file does not contain a sufficient number of data (i.e. less than the number of grid
42 Chapter 4
points of the input grid), SWASH will write an error message to the PRINT file, and if
[itest]>0 (see command TEST) it will reproduce the data in the PRINT file, using the
lay-out according to [idla]=1. This echo of the data to print file is also made if the
READINP command is embedded between two TEST commands in the command file as
follows:
TEST 120
READINP ....
TEST 0
| SALinity |
| |
INPtrans < TEMPerature > &
| |
| SEDiment |
(NONUNIForm [kmax])
With this command the user defines the geographic location, size and orientation of a
stationary input grid for the transport of constituent. This input grid thus supplies initial
and stationary boundary conditions for the considered constituent. The actual reading of
constituent values from file is controlled by the command READTRANS.
This command INPTRANS must precede the following command READTRANS.
There can be different grids for salinity (SALINITY), temperature or heat (TEMPERATURE)
and suspended sediment load (SEDIMENT).
See command INPGRID for the description of the options in this command INPTRANS.
See Section 2.5.4 for more information on (input) grids for transport of constituents.
[kmax] the number of layers representing the number of input fields as given in
a sequence (see command READTRANS). This number must be equal to the
number of vertical layers in multi-layered mode (see command VERTICAL)
or 1 (i.e. uniform in vertical).
Default: [kmax] = 1
| SALinity |
| | | ’fname1’ |
READtrans < TEMPerature > [fac] < > [idla] &
| | | LAYers ’fname2’ |
| SEDiment |
| -> FREe |
| |
| | ’form’ | |
[nhedf] < FORmat < > >
| | [idfm] | |
| |
| UNFormatted |
With this command the user controls the reading of initial and boundary values of trans-
port constituents from file. This command READTRANS must follow a command INPTRANS.
The constituents that can be read are salinity (SALINITY) (in ppt, psu or kg/m3 ), temper-
ature (TEMPERATURE) (in o C) and suspended sediment load (SEDIMENT) (in kg/m3 ).
See command READINP for the description of the options in this command READTRANS.
LAYERS with this option (only for multi-layered mode) the user indicates that the
names of the files containing the nonuniform constituent are resided in a
separate file with name ’fname2’ (see below).
’fname2’ name of file that contains the names of the files where the constituents
are given. These names are to be given in proper sequence, i.e. from top
(first layer) to bottom (last layer). SWASH reads the next file when the
previous file end has been encountered. In these files the input should be
given in the same format as in the above file ’fname1’.
This command can be used to specify the initial values for flow variables.
CONSTANT the initial flow and turbulence quantities are set to a constant.
[wlev] the water level.
[vx] the u−component of velocity.
[vy] the v−component of velocity.
[tke] the turbulent kinetic energy.
[epsilon] the dissipation rate of turbulent kinetic energy.
ZERO Both the initial water level and velocity components are set to zero.
STEADY If this option is specified, the initial velocities will be derived from
the water levels using the Chezy formula for steady flow. This can
shorten the spin-up time of the SWASH run and can be meaningful
in the case of quasi-steady flow condition (e.g. flow in a river).
| PM |
| | | -> SIG | | -> PEAK |
BOUnd SHAPespec < -> JONswap [gamma] > < > < > &
| | | RMS | | MEAN |
| TMA |
| -> POWer |
DSPR < >
| DEGRees |
This command BOUND SHAPESPEC defines the shape of the spectra (both in frequency and
direction) at the boundary of the computational grid or in the computational domain using
source function for internal wave generation in case of parametric spectral input (see either
command BOUNDCOND or command SOURCE).
SIG The significant wave height (for definition, see Appendix A) is used as
the characteristic wave height.
This is default.
RMS The RMS wave height (for definition, see Appendix A) is used as
the characteristic wave height.
PEAK The peak period is used as the characteristic wave period.
This is default.
MEAN Tm01 (for definition, see Appendix A) is used as the characteristic wave period.
DSPR option for expressing the width of the directional distribution; the distribution
function itself is cosm (θ).
POWER the directional width is expressed with the power m itself.
This option is default.
DEGREES the directional width is expressed in terms of the directional standard deviation
of the cosm (θ) distribution (for definition, see Appendix A).
If this command is not used, the JONSWAP option will be used with [gamma]=3.3 and POWER
for the directional width.
| North |
| NW |
| West |
| SW | | -> CCW |
| -> SIDE < South > < > |
| | SE | | CLOCKWise | |
| | East | |
| | NE | |
| | | |
BOUndcond < | [k] | > &
| |
| |
| | -> XY < [x] [y] > | |
| | | |
| SEGMent < | < [i] [j] > | > |
| IJ < > |
| | < [k] > | |
ADDBoundwave &
This command BOUNDCOND defines a boundary condition at the boundary. It consists of two
parts, the first part defines the boundary side or segment where the boundary condition
will be given, the second part defines the parameters.
There are two ways to define the part of the boundary at which the boundary condition is
imposed. The first (SIDE) is easiest if the boundary is one full side of the computational
grid, although it should not be used for curvilinear grids. The second (SEGMENT) can be
used if the boundary segment goes around the corner of the grid, or if the segment is only
part of one side of the domain.
This BOUNDCOND command can be given a number of times, i.e. to define boundary condi-
tions on various sides or segments of the boundary. One BOUNDCOND command can be used
for only one side or one contiguous segment.
Note that command BOUNDCOND can not be combined with the application of mass source
function for internal wave generation (see command SOURCE).
Note that only incident wave direction perpendicular to the boundary is allowed in case of
unstructured grids.
SIDE the boundary is one full side of the computational grid (in 1D cases either
of the two ends of the 1D grid).
SHOULD NOT BE USED IN CASE OF CURVILINEAR GRIDS!
NORTH, ... indicates on which side the boundary condition is applied. N means the
boundary is the north edge (if present) of the computational area, likewise
for W is west, S is south, E is east, NW is northwest, NE is northeast,
SW is southwest and SE is southeast. The side does not have to face exactly
Description of commands 47
the given direction (the nearest direction of the normal to the side is taken;
this direction is determined as the normal to the sum of the vectors joining
the grid points on the boundary; there is an interruption in the boundary
(due to the occurrence of exception values) then this interruption is ignored
in the summation).
Note: in case of Cartesian coordinates, the direction of the problem coordinate
system must be defined by the user (see the SET ...[north] command), by
default the positive x−axis points East.
ONLY MEANT FOR STRUCTURED GRIDS.
[k] indicates on which side of the unstructured grid the boundary condition is
applied. The value of [k] corresponds to the boundary marker as indicated in
file(s) produced by a grid generator (such as in the last column of the Triangle
.node file and the Easymesh .n file or the last part of file fort.14). Boundary
markers are tags to identify which vertices occur on a boundary of the mesh.
It is assumed that the full side in question is represented by a single
boundary marker.
ONLY MEANT FOR UNSTRUCTURED MESHES.
CCW, see description of [len] below; these option are only effective if the
CLOCKWISE option VARIABLE is used (see below).
SEGMENT is used if SIDE is not used, i.e. either the boundary segment goes
around a corner of the grid, or the segment is only part of one side of the
grid. The distance along the segment (see [len] below) is measured
from the first point of the segment (see XY or IJ).
XY the segment is defined by means of a series of points in terms of problem
coordinates; these points do not have to coincide with grid points. The
(straight) line connecting two points must be close to grid lines of the
computational grid (the maximum distance is one hundredth of the length of
the straight line).
This option is default.
[x], [y] problem coordinates of a point of the boundary segment (see command COORD).
IJ the segment is defined by means of a series of computational grid points
given in terms of grid indices; not all grid points on the segment have to be
mentioned. If two points are on the same grid line, intermediate points are
assumed to be on the segment as well.
[i], [j] grid indices of a point of the segment. Values of [i] range from 1 to [mxc]+1
and values of [j] from 1 and [myc]+1 ([mxc] and [myc] as defined in the
command CGRID).
ONLY MEANT FOR STRUCTURED GRIDS.
[k] index of boundary vertex of the segment. This can be obtained in a grid
generator file (.node and .n files of Triangle and Easymesh, respectively).
The order must be counterclockwise!
ONLY MEANT FOR UNSTRUCTURED MESHES.
BTYPE with this option the type of boundary condition is given.
48 Chapter 4
HR unit hours
DAY unit days
ADDBOUNDWAV with this option second order bound long wave is added to the first order,
irregular waves.
CONSTANT with this option the boundary condition is constant along the side or segment.
FOURIER the Fourier series is defined by means of the following parameters:
[azero] the amplitude for zero frequency is given (in m).
[ampl] the amplitudes for a number of components are given (in m).
[omega] the angular frequencies for a number of components are given (in rad s−1 ).
[phase] the phase for a number of components are given (in degrees).
REGULAR monochromatic, long-crested wave is defined with the following parameters:
[h] the wave height (in m).
[per] the wave period (in s).
[dir] the wave direction (in degrees; Cartesian or Nautical convention, see
command SET).
Default: no specification of [dir] means incident direction is perpendicular
to the boundary (only in case of rectilinear grid).
SPECTRUM the wave spectrum is defined by means of the following spectral parameters
(see command BOUND SHAPE for spectral shape):
[h] the characteristic wave height (in m).
[h] is the value of the significant wave height, if option SIG was chosen
in command BOUND SHAPE or
[h] is the value of the RMS wave height, if option RMS was chosen
in command BOUND SHAPE.
[per] the characteristic wave period (in s).
[per] is the value of the peak period, if option PEAK was chosen
in command BOUND SHAPE or
[per] is the value of the mean period Tm01 , if option MEAN was chosen
in command BOUND SHAPE.
[dir] the peak wave direction (in degrees; Cartesian or Nautical convention, see
command SET).
Default: no specification of [dir] means incident direction is perpendicular
to the boundary (only in case of rectilinear grid).
[dd] coefficient of directional spreading; a cosm (θ) distribution is assumed.
[dd] is interpreted as the directional standard deviation in degrees,
if the option DEGREES is chosen in the command BOUND SHAPE.
[dd] is interpreted as the power m, if the option POWER is chosen
in the command BOUND SHAPE.
Default: [dd] = 0., i.e. no directional spreading.
[cycle] the cyclic period of the time series of surface elevation to be synthesized.
This may correspond to the time period over which surface elevation is
outputted after steady-state condition has been established. The
corresponding unit is indicated in the next option:
50 Chapter 4
000000.000 0.0000000E+00
000001.000 4.2307975E-08
000002.000 1.6923190E-07
000003.000 3.8077177E-07
000004.000 6.7692758E-07
000005.000 1.0576993E-06
000006.000 1.5230870E-06
000007.000 2.0730906E-06
SPEC1D
Description of commands 51
3.8602E-03 5.2168E-01
5.7903E-03 1.0230E+00
7.7204E-03 1.4567E+00
9.6505E-03 1.7232E+00
1.1581E-02 1.8832E+00
1.3511E-02 1.7570E+00
1.5441E-02 1.3429E+00
1.7371E-02 9.8666E-01
[cycle] the cyclic period of the time series of surface elevation to be synthesized.
This may correspond to the time period over which surface elevation is
outputted after steady-state condition has been established. The
corresponding unit is indicated in the next option:
SEC unit seconds
MIN unit minutes
HR unit hours
DAY unit days
Note that by specifying regular or irregular waves at the boundary, the vertical hyperbolic
cosine velocity profile is assumed. Hence, no type of boundary condition should be spe-
cified, except BTYPE WEAKREFL if a weakly reflective boundary is assumed.
| X |
| |
SOURce < -> Y > [centre] [width] [depth] [delta] &
| |
| [k] |
This command SOURCE activates the generation of waves within the computational domain
using the spatially distributed mass source function. This command can not be combined
with the specification of boundary conditions at the boundaries (see BOUNDCOND).
The user specifies a so-called source area, i.e. a rectangular area within the computational
domain, and subsequently a wave signal that will be generated in the source area. The
computational domain itself is assumed to be rectangular as well. The user is advised to
combine this internal wave generation with sponge layers to absorb waves at boundaries
effectively (see command SPONGE).
The source area is a rectangle and is determined by means of its centroid (or the centre of
gravity) and its width. This rectangle is parallel either to the xc−axis or to the yc−axis
of the (rotated) rectilinear computational domain; see Figure 4.1. In the first case the
Description of commands 53
centroid is with respect to the xc−axis and the width is parallel to the yc−axis, and in the
second case it is the other way around. Alternatively, the centroid is with respect to one
side of the unstructured grid as specified by the boundary marker. Note that the length
of the source area extends along the whole rectangular domain.
The waves to be generated are either regular or irregular as defined by means of a wave
spectrum. Note that a typical still water depth is required (for the calculation of wave
energy velocity).
Note that only incident wave direction perpendicular to the boundary is allowed in case of
unstructured grids.
X source area is parallel to xc−axis of the rectilinear grid.
Y source area is parallel to yc−axis of the rectilinear grid.
This is default.
[k] indicates from which side of the unstructured grid [centre] is measured.
The value of [k] corresponds to the boundary marker as indicated in file(s)
produced by a grid generator (such as in the last column of the Triangle
.node file and the Easymesh .n file or the last part of file fort.14). Boundary
markers are tags to identify which vertices occur on a boundary of the mesh.
It is assumed that the full side in question is represented by a single
boundary marker.
ONLY MEANT FOR UNSTRUCTURED MESHES.
[centre] the centre of gravity of source area in meters.
[width] the width of source area in meters.
[depth] the still water depth at source area in meters.
[delta] shape parameter for the source function.
Default: [delta] = 0.5
REGULAR regular waves will be generated. See command BOUNDCOND for the
specification of their parameters.
SPECTRUM irregular waves will be generated. See command BOUNDCOND for the
specification of their parameters. See also command BOUND SHAPE
for spectral shape.
SMOOTHING with this option a ramp function is applied to start up the simulation smoothly.
[period] the smoothing period of which the unit is indicated in the next option:
SEC unit seconds
MIN unit minutes
HR unit hours
DAY unit days
| North |
| |
54 Chapter 4
| West |
SPONgelayer < > [width] | < [k] [width] >
| South |
| |
| East |
This command can be used to specify the sponge layers around the computational domain.
Sponge layers are very effective in absorbing wave energy at open boundaries where waves
are supposed to leave the computational domain freely. So, they prevent reflections at
open boundaries. A sponge layer may have a width of 1 to 3 typical wave lengths.
Note that by including a sponge layer of [width] meters, the computational domain needs
to be extended with [width] meters as well (see command CGRID).
To specify the sponge layers, a distinction is made between structured and unstructured
meshes. The keywords NORTH, WEST, SOUTH and EAST are meant for the structured grid
only. The variable [k] is to be used for the unstructured mesh (see below) and can be
repeated as many sponge layers to be chosen.
NORTH sponge layer is placed at the north edge of the domain.
WEST sponge layer is placed at the west edge of the domain.
SOUTH sponge layer is placed at the south edge of the domain.
EAST sponge layer is placed at the east edge of the domain.
ONLY MEANT FOR STRUCTURED GRIDS.
[k] indicates on which side of the unstructured grid the sponge layer is applied.
The value of [k] corresponds to the boundary marker as indicated in file(s)
produced by a grid generator (such as in the last column of the Triangle
.node file and the Easymesh .n file or the last part of file fort.14). Boundary
markers are tags to identify which vertices occur on a boundary of the mesh.
It is assumed that the full side in question is represented by a single
boundary marker.
ONLY MEANT FOR UNSTRUCTURED MESHES.
[width] the width of sponge layer in meters.
With this optional command the user can specify some parameters in case of floating
objects or pressurized flow. See commands INPGRID FLOAT and READINP FLOAT in order
Description of commands 55
to define floating objects. If these commands are not used, SWASH will not account for
effects of floating structures on the (pressurized) flow.
[alpha] compressibility factor for flow beneath fixed floating object.
This option is meant for academic purposes only.
Note: 0 ≤ [alpha] ≤ 1.
Default: [alpha] = 0.
[theta] parameter for the θ−method applied beneath floating object.
[theta] = 0.5 corresponds to the Crank-Nicolson scheme and
[theta] = 1 to the implicit Euler scheme.
Default: [theta] = 1.
4.5.4 Physics
With this optional command the user can specify wind speed, direction and wind drag.
Wind speed and direction are assumed constant. If this command is not used, SWASH
will not account for wind effect.
This command is usually meant for large-scale wind driven circulation, tides and storm
surges. Inclusion of wind effects may also be beneficial to buoyancy driven flows in coastal
seas, estuaries and lakes. However, this option may also be useful for applications concern-
ing wind effects on wave transformation in coastal waters, ports and harbours.
In SWASH seven different wind drag formulation are available, i.e., constant, linear on
wind speed, Charnock, Wu, Garratt, Smith and Banke and the second order polynomial
56 Chapter 4
fit. The Charnock drag formulation is based on an implicit relationship between the wind
and the roughness, while the other formulations, those of Wu, Garratt and Smith and
Banke, express a linear relationship between the drag and the wind speed.
Recent observations indicate that these linear parameterizations overestimate the drag
coefficient at high wind speeds (U10 > 20 m/s, say). Based on many authoritative studies
it appears that the drag coefficient increases almost linearly with wind speed up to approx-
imately 20 m/s, then levels off and decreases again at about 35 m/s to rather low values
at 60 m/s wind speed. We fitted a 2nd order polynomial to the data obtained from these
studies, and this fit is given by
where Ũ = U10 /Uref , and the reference wind speed Uref = 31.5 m/s is the speed at which
the drag attains its maximum value in this expression. These drag values are lower than
in the expression of Wu (1982) by 10% − 30% for high wind speeds (15 ≤ U10 ≤ 30 m/s)
and over 30% for hurricane wind speeds (U10 > 30 m/s).
Usually, the wind stress depends on the drag and the wind speed at a height of 10 m,
U10 . However, it might be obvious that the influence of wind stress will reduce if the
water is flowing in the same direction and it will decrease when the water flow and wind
are in opposite directions. This may lead to a smaller wind setup on very shallow areas.
Hence, the wind stress may be dependent on the wind velocity relative to the water,
i.e. U10 − u, instead of the wind velocity as such. Here, u is either the depth-averaged
flow velocity in the depth-averaged mode or the surface flow velocity in the multi-layered
mode. Experiments have shown that the eigenfrequencies damp out much faster when this
alternative is employed.
The considered wind is at 10 m above the surface. However, it might be better to consider
the wind at the surface in order to relate this wind to the flow velocity. A factor α
(0 < α ≤ 1) is introduced that take into account the difference between the wind velocity
at 10 m height and the wind velocity at the surface, Us = α U10 . With the use of α in this
formulation the influence of the flow velocity becomes even stronger. However, the exact
value of α is yet unknown; further research on this parameter is needed. Therefore, this
parameter is optionally and should be used with care.
Wave growth due to wind in shallow areas is included in the model. It is based on a
parameterization of the momentum flux transferred from wind to surface waves similar to
the well-known sheltering mechanism of Jeffreys (1925) as described in Chen et al. (J.
Waterwy, Port, Coastal, Ocean Engng., 130, 312-321, 2004). The wind stress is expressed
by
τw = ρair Cd |U10 − c| (U10 − c)
where ρair is the air density and c is the wave celerity. Hence, the wind velocity is taken
relative to the wave celerity. The wind stress may vary over a wave length with a larger
Description of commands 57
wind drag on the wave crest than that in the trough (Chen et al., 2004). This effect is
implemented in the model by applying the wind stress on the wave crest only.
The default option is a constant wind drag coefficient, while the wind stress is related to
the wind velocity at 10 m height only.
[vel] wind velocity at 10 m height (in m/s).
[dir] wind direction at 10 m height (in degrees; Cartesian or Nautical
convention, see command SET).
CONSTANT this option indicates that a constant drag coefficient will be adopted.
[cd] dimensionless coefficient.
Default: [cd] = 0.002
CHARNOCK indicates that the Charnock drag formulation will be adopted.
[beta] dimensionless Charnock coefficient.
Default: [beta] = 0.032
[height] height (in m) above the free surface where the wind speed has been measured.
Default: [height] = 10.
LINEAR indicates that the wind drag depends linearly on wind speed.
For this, both lower and upper bounds of the wind speed, [wlow], [whigh],
and two coefficients, [a1], [b], need to be specified as follows:
cd = 0.001 ( [a1] + [b] U10 ), with cd the drag coefficient and U10 the wind
speed in between [wlow] and [whigh].
[a1] coefficient in the above linear function.
[a2] not used.
[b] coefficient in the above linear function.
[wlow] lower bound of wind speed.
[whigh] upper bound of wind speed.
WU indicates that the drag formulation of Wu will be adopted.
GARRATT indicates that the drag formulation of Garratt will be adopted.
SMITHBANKE indicates that the drag formulation of Smith and Banke will be adopted.
FIT drag coefficient is based on the 2nd order polynomial fit.
RELATIVE indicates that the wind stress depends on the wind velocity relative to the water.
[alpha] parameter to relate the wind velocity at 10 m height to wind velocity at surface.
Note: 0 < [alpha] ≤ 1.
Default: [alpha] = 1.
RELWAVE indicates that the wind stress depends on the wind velocity relative to the
wave celerity. This option enables to include wind effects on the nearshore
wave transformation.
[crest] free parameter representing a ratio of the forced crest height to maximum
surface elevation. Use of this parameter implies that the wind stress is only
applied on wave crests of which the surface elevation is larger than the given
fraction [crest] of the maximum elevation with respect to the datum level.
Note: 0 ≤ [crest] ≤ 1.
Default: [crest] = 0.4
58 Chapter 4
The quantities [vel] and [dir] are required if this command is used except when the
command READINP WIND is specified.
| CONstant [cf]
|
| CHEZy [cf]
|
| -> MANNing [cf]
FRICtion <
| COLEbrook [h]
|
| | -> SMOOTH
| LOGlaw <
| ROUGHness [h]
With this optional command the user can activate bottom friction. If this command is not
used, SWASH will not account for bottom friction.
For typically depth-averaged calculations, four different bottom friction values are avail-
able, i.e., constant, Chezy, Manning and Colebrook-White values. Note that the Colebrook-
White friction value equals the Nikuradse roughness height. Although they are associated
with depth-averaged flow velocities, they may be applied in the multi-layered mode as well.
However, some inaccuracies may occur in the vertical structure of the velocity, in particular
when the depth-averaged velocity is zero. Alternatively, the logarithmic wall law may be
applied. In this case, a distinction is made between smooth and rough beds. For rough
beds, the user must apply a Nikuradse roughness height.
The aforementioned friction formulations are usually derived for quasi-steady flow con-
dition (e.g. flow in a river). However, numerical experiments have indicated that the
Manning formula provides a good representation of wave dynamics in the surf zone, and
even better to that returned by other friction formulations.
CONSTANT this option indicates that a dimensionless friction coefficient will be adopted.
[cf] dimensionless coefficient.
Default: [cf] = 0.002
Note that [cf] is allowed to vary over the computational region; in that
case use the commands INPGRID FRICTION and READINP FRICTION to
Description of commands 59
define and read the friction data. The command FRICTION is still required
to define the type of friction expression. The value of [cf] in this command
is then not required (it will be ignored).
CHEZY indicates that the Chezy formula will be activated.
[cf] Chezy coefficient (in m1/2 /s).
Default: [cf] = 65.
Note that [cf] is allowed to vary over the computational region; in that
case use the commands INPGRID FRICTION and READINP FRICTION to
define and read the friction data. The command FRICTION is still required
to define the type of friction expression. The value of [cf] in this command
is then not required (it will be ignored).
MANNING indicates that the Manning formula will be activated.
[cf] Manning coefficient (in m−1/3 s).
Default: [cf] = 0.019
Note that [cf] is allowed to vary over the computational region; in that
case use the commands INPGRID FRICTION and READINP FRICTION to
define and read the friction data. The command FRICTION is still required
to define the type of friction expression. The value of [cf] in this command
is then not required (it will be ignored).
COLEBROOK indicates that the Colebrook-White formula will be activated.
[h] Nikuradse roughness height (in m).
Note that [h] is allowed to vary over the computational region; in that case
use the commands INPGRID FRICTION and READINP FRICTION to define
and read the roughness heights. The command FRICTION is still required to
define the type of friction expression. The value of [h] in this command is
then not required (it will be ignored).
LOGLAW indicates that the logarithmic wall law will be activated.
ONLY MEANT FOR STRUCTURED GRIDS.
SMOOTH indicates that the bottom is smooth, i.e. the roughness height is zero.
This option can be used in the depth-averaged mode (a logarithmic velocity
profile is then assumed). Note that this option must be combined with the
standard k − ε model in the multi-layered mode (see command VISC).
This option is default.
ROUGHNESS indicates that the bottom is rough and is determined by the roughness height.
This option can be used in the depth-averaged mode (a logarithmic velocity
profile is then assumed). Note that this option must be combined with the
standard k − ε model in the multi-layered mode (see command VISC).
[h] Nikuradse roughness height (in m).
Note that [h] is allowed to vary over the computational region; in that case
use the commands INPGRID FRICTION and READINP FRICTION to define
and read the roughness heights. The command FRICTION is still required to
define the type of friction expression. The value of [h] in this command is
60 Chapter 4
With this optional command the user can activate turbulent mixing. If this command is
not used, SWASH will not account for turbulent mixing.
The turbulence structure of the flow in shallow water is characterized by the coexist-
ence of three-dimensional turbulence, having length scales less than the water depth, and
horizontal two-dimensional eddies with much larger length scales. Such a non-isotropic
character of shallow water turbulence may produce a large difference between horizontal
and vertical eddy viscosity coefficients.
In estuaries and coastal seas the large-scale flow patterns are usually determined by tidal
forcing, the baroclinic pressure gradient, wind and bottom friction, whereas the horizontal
turbulent stresses have little impact. Hence, for far field calculations the use of an hori-
zontal eddy viscosity model has a negligible role. On the other hand, for near field flows,
horizontal large-scale eddies generated by lateral shear may have a significant role in hori-
zontal mixing. Examples are mixing layers developing at harbour entrances, along groyne
fields and floodplains, separation flows, wakes and jets, and flows near discharges. The ho-
rizontal exchange of turbulent momentum need to be modelled properly, since a constant
Description of commands 61
value for the horizontal eddy viscosity is too crude as an assumption for such near field
predictions.
In SWASH both the horizontal and vertical eddy viscosities can be specified, either separ-
ately or combined. In such cases, the pressure is assumed to be hydrostatic. In addition,
the Boussinesq hypothesis is applied that basically assumes the isotropy of turbulence.
Three different horizontal eddy viscosity models are available, i.e., a constant viscosity,
the Smagorinsky model and the Prandtl mixing length hypothesis. Vertical mixing can be
modelled by using the standard k − ε model, with k the turbulent kinetic energy per unit
mass and ε the dissipation rate of turbulent kinetic energy per unit mass (Launder and
Spalding, 1974).
Within the vegetation canopy, it is assumed that all energy of the mean flow is converted to
turbulent energy due to the plant drag (see command VEGETATION). This process is mod-
elled by means of the vegetation-induced turbulence production terms in the k − ε model.
They are accompanied with two empirical constants [cfk] and [cfe] associated with k
and ε, respectively. We have selected the values as suggested by Shimizu and Tsujimoto
(1994), i.e. [cfk] = 0.07 and [cfe] = 0.16 (see also Defina and Bixio, 2005).
SWASH offers the user the possibility to simulate a full three-dimensional turbulent flow
where both non-hydrostatic pressure and anisotropic state of turbulent stresses becomes
important. Additionally, the length scales in all directions can be in the same order.
Examples are curved open channel flows with heterogeneous roughness conditions and
compound channel flows with different floodplains. Their flow characteristics are repres-
ented by, amongst others, secondary currents (of Prandtl’s second kind) generated due to
anisotropy of turbulence.
For such cases a three-dimensional turbulence model should be activated, where the Reyn-
olds stresses in all directions are equally important. These turbulent stresses are supposed
to be linearly related to the deformation rates of the mean flow. This Boussinesq hypothesis
introduces the concept of eddy viscosity that can be computed by means of a two-equation
model. The standard k −ε model of Launder and Spalding (1974) is employed, whereas the
eddy viscosity is applied to all directions. The Boussinesq hypothesis can be considered as
the leading term in a series expansion of products of strain and rotation tensors implying
isotropy of turbulence. This works quite well for many flows where the primary shear stress
is the dominant one. This is, however, not the case when secondary shear stresses and nor-
mal stresses become relevant. Hence, the Boussinesq hypothesis may not be suitable for
turbulent flows involving strong three-dimensional effects. This weakness can potentially
be removed by expanding the stress-strain relationship to include the quadratic terms of
the mean velocity gradient tensor. These terms approximate the deviations from the iso-
tropic state of the turbulent normal stresses. To this end, the nonlinear k − ε model of
Speziale (1987) is applied.
62 Chapter 4
This command indicates the use of porosity layers inside the computational domain to
simulate full/partial reflection and transmission through porous structures such as break-
waters, quays and jetties. Also the interaction between waves and porous coastal structures
can be simulated in this way. The mean flow through porous medium is described by the
volume-averaged Reynolds-averaged Navier-Stokes (VARANS) equations. The laminar and
Description of commands 63
turbulent frictional forces in porous medium is modelled by means of the empirical for-
mula’s of Van Gent (1995). In the case of an oscillatory wave motion the turbulent loss
will enhance, which depends on the Keulegan-Carpenter number.
See commands INPGRID POROSITY and READINP POROSITY in order to define porosity lay-
ers. If neither of this command nor the command READINP POROSITY is used, SWASH will
not account for wave interactions with porous structures.
VEGEtation < [height] [diamtr] [nstems] [drag] > INERtia [cm] POROsity Vertical
With this optional command the user can activate wave damping induced by aquatic
vegetation. If this command is not used, SWASH will not account for vegetation effects.
The vegetation (rigid plants) can be divided over a number of vertical segments and so, the
possibility to vary the vegetation vertically is included. Each vertical segment represents
some characteristics of the plants. These variables as indicated below can be repeated as
many vertical segments to be chosen.
The vegetation effect is due to the drag force on a fixed body in an oscillatory flow which
64 Chapter 4
can be determined using the well-known Morison equation. In this case only vertical
cylinders are considered and the direction of the drag force is horizontal. Apart from the
drag force, the inertia force can be optionally included, which is specified by means of the
added mass coefficient. Note that this coefficient is one less than the inertia coefficient
(=Froude-Krylov force + added mass) and is uniform over the plant.
For the case of densely spaced cylinders, like dense mangrove fields and porous brushwood
groins, the effect of porosity can be optionally included. This porosity depends on the
spatial occupation of vegetation per unit volume.
In case horizontal cylinders are included (e.g. box filled with branches or mangrove with
both horizontal and vertical roots), the drag forces in both the horizontal and vertical
directions must be modelled.
[height] the plant height per vertical segment (in m).
[diamtr] the diameter of each plant stand per vertical segment (in m).
[nstems] the number of plant stands per square meter for each segment.
Note that [nstems] is allowed to vary over the computational region to
account for the zonation of vegetation. In that case use the commands
INPGRID NPLANTS and READINP NPLANTS to define and read the vegetation
density. The (vertically varying) value of [nstems] in this command will
be multiplied with this horizontally varying plant density.
Default: [nstems] = 1
[drag] the drag coefficient per vertical segment.
INERTIA indicates that the inertia force will be included.
[cm] the added mass coefficient.
POROSITY indicates that the porosity effect will be included.
VERTICAL indicates that the drag force in vertical direction will be included.
| -> Yes |
[fall] [snum] [ak] DENSity < >
| No |
With this optional command the user can specify some relevant parameters in case of
transport of constituent. These parameters are only relevant when transport of salinity,
temperature, or suspended sediment load is included.
The first parameter that may be specified in this command is the horizontal eddy diffusivity.
A uniform eddy diffusivity value may be chosen that can be used as a calibration parameter
to account for all forms of unresolved horizontal mixing. This parameter may be chosen
independently from the eddy viscosity (see command VISCOSITY HOR). The eddy diffusivity
depends on the flow and the grid size used in the simulation. A typical small-scale model
with grid sizes of tens of meters or less, the eddy diffusivity typically ranges from 1 to
10 m2 /s. For a large-scale (tidal) areas with grid sizes of at least hundreds of meters, the
parameter is typically in the range of 10 to 100 m2 /s. Alternatively, when not specified, the
eddy diffusivity is related to the eddy viscosity that is determined by either the Smagorinsky
model or the Prandtl mixing length model. Otherwise it is zero.
Note that in 3D simulations the vertical eddy diffusivity is automatically included and is
related to the vertical mixing (see command VISCOSITY VERT).
The second parameter in this command is the return time for unsteady salt intrusion in
a tidal flow. A boundary condition at the seaward side is required. This is usually the
ambient or background concentration of salt sea water. However, at the transition between
sea and river, alternating conditions hold regarding inflow of salt sea water during flood tide
and outflow of fresh river water during ebb tide. Immediately after low water, the salinity
of the inflowing water will not be equal to the salinity of the sea water. It will take some
time before this happens at the boundary. This time lag is the return time for salinity
from its value at the outflow depending on conditions in the interior of model domain
relative to its background value specified at the inflow, see Figure 4.2. This memory effect
is characterised by the so-called Thatcher-Harleman condition that specifies an appropriate
time lag. The return time depends on the tidal flow conditions outside the estuary.
concentration at opening
outflow inflow outflow
background concentration
return time
time (s)
the bed surface into the flow. The following pickup function is used (Van Rijn, 1984):
!3/2
νt ∂c θ − θcr (s − 1)0.6 g 0.6 d0.8
50
− = 0.00033 0.2
, θ > θcr
σc ∂z θcr ν
with c the (volumetric) sediment concentration, νt the vertical eddy viscosity (see command
VISCOSITY VERT), σc the Schmidt number for sediment, θ the Shields parameter related
to the bed shear stress, θcr = 0.05 the critical Shields parameter, s = 2.65 the sediment
specific gravity (see command SET [rhosed]), d50 the median sediment diameter, and ν
the kinematic viscosity of water. Sediment deposition is determined by the downward flux
related to the settling velocity ws . If this fall velocity is not specified by the user, then the
fall velocity will be calculated by SWASH depending on the particle size (Rubey, 1933):
v v
u2 36ν 2 36ν 2
q u u
u
ws = (s − 1)gd50 t +
− t
3 (s − 1)gd350 (s − 1)gd350
Note that if the sediment diameter is not specified by the user, then no mass exchange
between the bed and the flow will be taken into account.
For cohesive sediment the mass exchange of suspended load between the bed and the flow
are calculated with the well-known Partheniades-Krone formulations, which include the
erosion and deposition fluxes:
νt ∂c
− = Se − Sd
σc ∂z
The sediment flux for erosion is given by
τb
Se = E −1 , if τb > τce
τce
Description of commands 67
where E is the entrainment rate for erosion flux, τce is the critical bed shear stress for
erosion and τb is the actual bed shear stress. The sediment flux for deposition is given by
τb
Sd = c b w s 1− , if τb < τcd
τcd
where cb is the (volumetric) sediment concentration near the bed and τcd is the critical bed
shear stress for sedimentation. Here, the critical bed shear stresses for erosion, τce , and
sedimentation, τcd , the sediment erosion rate E and the fall velocity ws must be specified
by the user.
It is assumed that the interaction between sediment and turbulent flow is mainly governed
by sediment-induced buoyancy effects. In this respect, the standard k − ε model and the
logarithmic wall law near the bed surface must be applied. This wall law is used to cal-
culate the bed shear stress τb , which in turn serves as one of the parameters for the mass
exchange between the bed and the flow. For sand transport the roughness height may
depend on the sediment diameter (if the user wants so) and is determined as 5.5 d50 .
Because of the assumption of the upward sediment flux being equal to the pickup rate,
the Schmidt number σc for sediment becomes a free parameter. Experiences have shown
that sediment diffusivity is rather sensitive to this parameter. The sediment diffusivity is
usually larger than the eddy viscosity, and so σc < 1.
The turbidity flow is usually considered as a mixture of water and sediment with a mix-
ture density, i.e. the effect of sediment on the density of (salt) water is included. However,
in some cases it may be desirable not to include this effect. In this case the density of
water remains unchanged, while the sediment transport is only influenced by the flow and
(turbulent) dispersion. Also, there is no sedimentation and erosion near the bed. Hence,
sediment can be considered here as a passive tracer.
SWASH makes use of the terrain-following coordinates of which the advantages are a better
representation of bottom topography and a better resolution in shallow areas. A disad-
vantage is the transformation of the transport equation due to the geometrical properties
of the curved z-planes, so that the curvature terms are involved, which may complicate the
computation. However, when these curvature terms are neglected, this may lead to a false
generation of vertical mixing. This effect, known as the artificial creeping, becomes evident
when the bottom slope is relatively large in regions of strong stable stratification. Hence,
in such as case, inclusion of the curvature terms, known as the anti-creepage terms, may
reduce significantly the artificial creeping. The standard method is based on the actual
transformation. An alternative is the method of Stelling and Van Kester (1994), which
computes the horizontal diffusion along strictly horizontal planes.
With this optional command the user can control wave breaking in the case of relatively
coarse resolution in the vertical. If this command is not used, SWASH will not account for
this control. Note that SWASH will account for energy dissipation due to wave breaking
Description of commands 69
anyhow!
By considering the similarity between breaking waves and bores or moving hydraulic jumps,
energy dissipation due to wave breaking is inherently accounted for. However, when a
few vertical layers are to be employed, the amount of this energy dissipation may be
underestimated due to the inaccuracy with which the phase velocity at the front face of
the breaking wave is approximated. To initiate the wave breaking process correctly, steep
bore-like wave fronts need to be tracked and this can be controlled by the vertical speed
of the free surface. When this exceeds a fraction of the shallow water celerity, as follows,
∂ζ q
> α gh
∂t
the non-hydrostatic pressure in corresponding grid points is then neglected and remains
so at the front face of the breaker. The parameter α > 0 represents the maximum local
surface steepness and determines the onset of the breaking process. A threshold value of
α = 0.6 is advised. (This corresponds to a local front slope of 25o .) This single value is
not subject to calibration and seems to work well for all the test cases we have considered,
both regular and irregular waves.
√
To represent persistence of wave breaking (even if ∂t ζ < α gh), we also label a grid point
for hydrostatic computation if a neighbouring grid point has been labelled for hydrostatic
computation and the local steepness is still high enough, i.e.,
∂ζ q
> β gh
∂t
with β < α. In all other grid points, the computations are non-hydrostatic.
This approach combined with a proper momentum conservation leads to a correct amount
of energy dissipation on the front face of the breaking wave. Moreover, nonlinear wave
properties such as asymmetry and skewness are preserved as well.
Note that by taking a sufficient number of vertical layers (10 or so) the phase velocity at
the breaking front will be computed accurately enough and hence, this option should not
be activated.
[alpha] threshold parameter at which to initiate wave breaking.
Note: [alpha] > 0.
Default: [alpha] = 0.6
[beta] threshold parameter at which to stop wave breaking.
Note: 0 < [beta] < [alpha].
Default: [beta] = 0.3
4.5.5 Numerics
70 Chapter 4
With this optional command the user can include the non-hydrostatic pressure in the
shallow water equations. If this command is not used, SWASH will not account for non-
hydrostatic pressure, i.e. pressure is assumed to be hydrostatic.
Hydrostatic pressure assumption can be made in case of propagation of long waves, such
as large-scale ocean circulations, tides and storm surges. This assumption does not hold
in case of propagation of short waves, flows over a steep bottom, unstable stratified flows,
and other small-scale applications where vertical acceleration is dominant.
In SWASH two different schemes for the vertical pressure gradient are available, i.e., the
classical central differencing (option STANDARD) and the Keller-box scheme (option BOX).
The former approximation is particularly meant for applications where vertical structures
are important, e.g. stratified flows with density currents, undertow and flows over steep
and rapidly varying bottoms, while the latter will be mainly used for accurate short wave
propagation with two or three layers employed. In addition, when applying the Keller-box
scheme, it is advised to choose an equidistant layer distribution (variable thicknesses only)
in order to get the optimal linear frequency dispersion accuracy (i.e. the relative error of
the phase speed predicted by the model compared to that from the linear dispersion theory
is minimal).
The time integration of the vertical pressure gradient is the so-called θ−scheme (a mix of
explicit and implicit Euler schemes). With [theta] = 0.5 we have the well-known second
order accurate Crank-Nicolson scheme with the smallest truncation error, while [theta]
= 1 indicates the first order implicit Euler scheme. Note that only values of [theta] in
the range [0.5,1] are allowed for stability reasons.
The number of vertical layers is chosen sufficiently large to resolve the vertical structure of
the flow field (see command VERTICAL). However, this grid resolution in the vertical is also
employed in the discretization of the non-hydrostatic pressure field, whereas a few number
of layers usually suffices to compute wave dispersion without deteriorating accuracy. With
a subgrid approach the user has an option to resolve the flow and pressure field with a
different resolution in the vertical. The vertical is equidistantly divided into a few number
Description of commands 71
of layers for the non-hydrostatic pressure and a relative large number of (non-equidistant)
layers for the horizontal velocities and turbulent stresses. In this way, the solution for the
non-hydrostatic pressure and vertical acceleration can be obtained on a relatively coarse
vertical grid, while on a subgrid with a high vertical resolution the vertical structure of
turbulent flow is resolved. Note this subgrid approach cannot be applied in the case of
pressurized flow.
Since most of the computational effort is devoted to inverting the Poisson pressure matrix,
an effective way to minimize this effort is by reducing the rank of the Poisson matrix. This
leads to less computational cost and memory. With the keyword REDUCED the dimension
of the Poisson equation, i.e. the number of pressure unknowns per water column, can be
diminished. Note this option must be combined with the BOX scheme. In spite of this
reduction it can still provide an accurate description of dispersive waves. For instance,
a model with two layers but one reduced pressure layer, the so-called reduced two-layer
model, has more or less the same linear dispersion accuracy as the full two-layer model but
saves about 30% CPU time. Note this option cannot be applied in the case of pressurized
flow. The stencil of the pressure equation can be reduced by assuming a constant pressure
in the vertical near the bottom. This is determined by the parameter [qlay] which indic-
ates the number of layers, started from the bottom, where the pressure is constant. In this
way, it is possible to eliminate the pressure in these layers from the set of equations. As an
example, we have a model with five pressure layers ([pmax] = 5) and we assume that the
pressure is constant in the two lowest layers ([qlay] = 2). So there are effectively three
(upper) layers in which the pressure need to be computed. An important remark needs
to be made. Although this reduced pressure equation method is more efficient in terms
of CPU time, it is less so concerning the dispersion accuracy. To optimize this accuracy
often a different than equidistant layer distribution needs to be sought. For instance, the
optimal linear dispersion relation of the reduced two-layer model ([kmax] = [pmax] = 2,
[qlay] = 1) is obtained by setting the following layer distribution: the top layer has a
relative thickness of 84% whereas the thickness of the bottom layer is 16% of the total
depth.
ILU preconditioner. Note this ILU preconditioner will be chosen automatically in the case
of pressurized flow. The weighting parameter α, as indicated by [relax], may improve
the rate of convergence. With this parameter a combination of the classical ILU and the
modified ILU (MILU) can be given. This combination is given by (1-α)ILU + αMILU,
and is also hold for ILUD and its modified variant (MILUD). Based on several numerical
experiments, an optimum in the convergence rate is found by taking 55% of MILU and
45% of ILU in case of the Keller-box scheme, and 99% of MILUD and 1% ILUD for the
same scheme, while for the standard discretization of the vertical pressure gradient, a com-
bination of 90% of MILU(D) and 10% of ILU(D) is chosen.
It is common to use the reduction of the residual as a stopping criterion, because the BiCG-
STAB method requires calculation of the residual. When solving the system Ax = b, after
m iterations we have an approximate solution xm and the residual rm = b − Axm is related
to the convergence error em = x − xm by Aem = rm , so the reduction of the residual results
in the reduction of the convergence error. This does not necessarily mean that the relative
error of the solver is identical to the decrease of the residual. The iteration process stops at
each time step if the ratio of the 2-norm of the residual and of the right-hand side or initial
residual is less than a given accuracy: krm k2 /kbk2 < ǫ and krm k2 /kr0 k2 < ǫ, respectively.
They are indicated by the parameters [rhsaccur] and [initaccur], respectively. If both
these accuracies are given, the sum of the two is used as termination criterion. Often, the
stopping criterion for the iterative methods is basically a compromise between efficiency
and accuracy. Decreasing the required accuracy can save a considerable amount of CPU
time. Numerical experiments showed ǫ = 0.01 gives the optimum.
The Poisson pressure equation is obtained by means of the pressure correction method of
Van Kan (1986). This method is second order accurate in time and thus appropriate for
the simulation of wave transformation, or in general, free surface flows. To deal with the
pressurized flow underneath a floating object, the user is advised to choose the first order
pressure projection method of Chorin (1968). However, to retain the second order accuracy
and to avoid wave damping when simulating free surface flows, the accuracy of the pressure
projection method can be improved. This is accompanied by an iteration process to solve
the global continuity equation containing the contribution of the non-hydrostatic pressure.
This equation is then consistent with the divergence-free velocity field obtained after the
pressure projection step (Vitousek and Fringer, 2013).
The default option is the Keller-box scheme with [theta] = 1.0, while the Poisson
pressure equation obtained with the second order pressure correction technique is solved
with either SIP with [rhsaccur]=0.01, in the case of depth-averaged mode, or ILUD-
BiCGSTAB with [rhsaccur]=0.01 and [initaccur]=0, in the case of multi-layered mode.
STANDARD this option indicates that the classical central differencing for the
vertical pressure gradient will be employed.
BOX this option indicates that the Keller-box scheme will be adopted.
This is the default.
Description of commands 73
| NONe |
| |
| FIRstorder |
| |
| HIGherorder [kappa] |
| |
| | -> SWEBy [phi] |
| | |
| LIMiter < RKAPpa [kappa] |
| | |
| | PLKAPpa [kappa] [mbound] |
| FROmm |
| |
| -> BDF|LUDs |
| |
< QUIck >
| |
| CUI |
| |
| MINMod |
| |
| SUPerbee |
| |
| VANLeer |
| |
| MUScl |
| |
| KORen |
| |
Description of commands 75
| SMArt |
With this optional command the user can influence the space discretization.
For convection-dominated flows it is possible that wiggles in the solution arise. In that case
upwind discretization may be necessary. At this moment, three types of upwind schemes
are implemented:
• the standard first order upwind scheme
– Sweby Φ−limiter
– R−κ limiter
– PL−κ limiter
The water depth in velocity points is not uniquely defined. An appropriate approximation
is based on first order upwinding instead of the usual interpolation. To achieve second or-
der accuracy in space, we add a higher order interpolation augmented with a flux limiter.
See keyword CORRDEP.
Conservation properties become crucial for rapidly varied flows. These properties are often
sufficient to get solutions that are acceptable in terms of local energy losses, location of in-
cipient wave breaking, propagation speed of a bore, etc. In flow expansions, the horizontal
advective terms in u− and v−momentum equations are approximated such that they are
consistent with momentum conservation; see option MOMENTUM. In flow contractions, the
approximation is such that constant energy head is preserved along a streamline, i.e. the
Bernoulli equation; see option HEAD.
The default option is the second order backward difference (BDF) scheme (κ = −1) for
76 Chapter 4
all horizontal advective terms in both u/v−momentum and w−momentum equations, and
first order upwinding for the vertical term in the u/v−momentum equation and in the
w−momentum equation. The exception is when the BREAK command is employed, which
in that case the central differences (κ = 1) are applied to all horizontal advective terms
in the u/v−momentum equations. In addition, the water depth in velocity points is ap-
proximated with the MUSCL limiter. All the advection terms in any transport equation
are approximated with the second order Van Leer limiter. By default, SWASH decides
whether energy head or momentum conservation is to be applied. In principle, energy
head conservation will be applied only in strong flow contractions, while elsewhere the
momentum conservation is applied.
The several options described above are exclusively meant for structured grids. With re-
spect to unstructured meshes, however, a robust and efficient upwind-biased scheme for
the horizontal advection terms in the momentum equation has been implemented. The
scheme complies with the Rankine-Hugoniot jump relations and is specifically designed
with a view to preserving the local momentum flux. This is crucial to the simulation of
breaking waves and unsteady bores. This method is generally first order accurate on non-
uniform meshes. In spite of the low-order accuracy of the employed scheme, unstructured
meshes easily allow for local refinement in a way that retains the desired accuracy. Note
that the options with respect to vertical discretizations can still be applied.
UPWIND indicates the type of discretization for momentum equations.
UMOM indicates the discretization employed for u/v−momentum equation.
MOMENTUM indicates that momentum must be conserved everywhere.
HEAD indicates that energy head must be conserved everywhere.
HORIZONTAL indicates the discretization of the horizontal advective terms.
VERTICAL indicates the discretization of the vertical advective terms.
WMOM indicates the discretization employed for w−momentum equation.
CORRDEP indicates the type of discretization for water depth in velocity points.
TRANSPORT indicates the discretization employed for transport equation(s).
NONE indicates that no upwinding is applied, hence the standard
central difference scheme is used.
This is the default in case of vertical advective terms.
FIRSTORDER indicates that the standard first order upwind scheme is used.
HIGHERORDE a higher order upwind κ−scheme is activated.
[kappa] parameter defining the type of κ−scheme used.
For instance, [kappa] = 0.5 gives the QUICK scheme
and [kappa] = 0 the Fromm’s scheme.
Note: −1 ≤ [kappa] ≤ 1.
LIMITER indicates that a TVD scheme with flux limiter must be applied.
SWEBY a Sweby limiter is activated.
[phi] parameter defining the type of Sweby limiter used. For instance,
[phi] = 1 defines the minmod limiter.
Note: 1 ≤ [phi] ≤ 2.
Description of commands 77
| MIN
|
| -> MEAN
BOTCel <
| MAX
|
| SHIFt
With this optional command the user can determine how the bottom levels need to be
computed in cell centers.
The bottom levels are usually defined in the corners of computational cells. These bottom
levels have been extracted from the input grid (see command INPGRID BOTTOM). Neverthe-
less, SWASH uses a staggered grid and to determine the total water depth at water level
points, a bottom level in the cell center is then required. As a rule, we take the average
bottom level from the surrounding bottom corners to determine the total depth at cell
center. This is fine for many cases. However, in the vicinity of steep bottom slopes, use
of the average bottom level may lead to an inaccurate flooding and drying process (e.g.
too much or too less volume of water left on tidal flats or flood plains) or inaccurate tide
propagation. Another example is the inaccurate computation of pressure in front of the
vertical wall which may negatively affect wave overtopping. For those situations it is more
appropriate to take the bottom level at cell center being equal to the minimum of the
78 Chapter 4
surrounding bottom levels at the corner points. This so-called tiled bottom approach is
also suitable to represent a small channel of one grid cell width.
Alternatively, it is possible to specify the bottom level at cell center as the maximum of the
surrounding bottom levels or being shifted from the upper-right corner of the computational
cell. This latter implies that, if the bottom input grid is identical to the computational
grid in terms of resolution and orientation, the user-defined bottom values are specified on
input at cell centers (instead of upper-right corners).
Note that for determining the bottom level in cell centers the positive downwards orienta-
tion is considered. So the minimum operation results into the shallowest bottom level. As
a consequence, when the bottom level is above the reference level, i.e. a negative value,
the maximum operation should be chosen, instead of the minimum one, in the context of
the tiled bottom approach.
With this optional command the user can influence the time integration.
If time integration is explicit, a time step restriction must be applied based on a Courant
number associated with the long wave speed. For definition, see Appendix A. Note that
a maximum Courant number of 0.5 is advised in case of high waves, nonlinearities (e.g.
wave breaking, wave-wave interactions), and wave interaction with structures with steep
slopes (e.g. quays, piers).
An automatic time step control is implemented as follows. The actual maximum of the
Courant number over all wet grid points is determined. The time step is halved when this
number becomes larger than a preset constant [cflhig] < 1, and the time step is doubled
Description of commands 79
when this number is smaller than another constant [cfllow], which is small enough to be
sure the time step can be doubled. Information on the actual time step changes is provided
in the PRINT file.
If time integration is semi-implicit, then the gradient of the water level in the momentum
equations and the velocity divergence in the (global) continuity equation are discretized
implicitly by means of the θ−method, while both the horizontal advective and viscosity
terms are discretized explicitly. As a consequence, the stability of the method will not
depend upon the long wave speed. However, the time step will be restricted owing to the
explicit treatment of the horizontal advective terms, although this restriction is mild. This
method is particular useful and efficient for the simulation of three-dimensional circulation
driven by buoyancy, tides and winds, as the Courant number can easily be larger than 1
while still providing sufficiently accurate solution.
This semi-implicit time stepping requires the solution of a system of linear equations to
obtain the water levels. This system is symmetric and positive definite and can be solved
efficiently by using a preconditioned conjugate gradient method. The keyword SOLVER
controls the use of this iterative method. The iteration process stops if the norm of the
residual falls below a small fraction of the initial residual; this small fraction is the user
prescribed error tolerance [tol]. The preconditioner is a weighted combination of ILUD
and its modified variant MILUD. For details on the weighting parameter α, which may
improve the convergence, see command NONHYDROSTATIC. This parameter is indicated by
[weight].
When dealing with floating objects interacting with waves (e.g. a moored ship), the flow is
locally pressurized. In this case explicit methods cannot be employed. Instead, the semi-
implicit approach must be applied which amounts to the solution of a piecewise linear
system of equations to obtain the water levels for free surface flow and the piezometric
head for pressurized flow. Since each grid point is labeled with either free surface or
pressurized in a proper way, this system can still be solved efficiently by the same solver;
see command SOLVER.
In the multi-layered mode, the vertical advective and viscosity terms in the momentum
and transport equations are discretized implicitly by means of the θ−method.
4.6 Output
There are two categories of output commands:
1. Locations
commands defining sets of output locations at which the user requires output. Each
set is indicated with a name (’sname’ in this manual) which must be unique and not
more than 8 characters long.
Commands RAY and ISOLINE cannot be used in 1D-MODE. If one gives one name for
two sets of output locations, the first set is lost (first in the sequence in the command
file). Three special names BOTTGRID, COMPGRID and NOGRID are reserved for use by
SWASH (see below). The user may not define sets with these names.
2. Write / plot
commands defining data file output (write) at the above defined set(s) of output
locations:
With this optional command the user defines output on a rectangular, uniform grid in a
regular frame.
If the set of output locations is identical to a part of the computational grid, then the user
can use the alternative command GROUP.
[alpfr] direction of the x−axis of the frame (in degrees, Cartesian convention; must be
0 in case of spherical coordinates)
[xlenfr] length of the frame in x−direction
if Cartesian coordinates are used in m
if spherical coordinates are used in degrees (see command COORD)
[ylenfr] length of the frame in y−direction
if Cartesian coordinates are used in m
if spherical coordinates are used in degrees (see command COORD)
[mxfr] number of meshes in x−direction of the rectangular grid in the frame (one less
than the number of grid points in this direction)
Default: [mxfr]=20
[myfr] number of meshes in y−direction of the rectangular grid in the frame (one less
than the number of grid points in this direction)
Default: [myfr]=20
Some output may be required on a frame that is identical with the bottom input grid
or with the computational grid. These frames need not be defined by the user with this
command FRAME; the frames are always generated automatically by SWASH under the
names ’sname’ = ’BOTTGRID’ (for the bottom grid) and ’sname’ = ’COMPGRID’ (for the
computational grid).
With this optional command the user defines a group of output locations on a rectangular
or curvilinear grid that is identical with (part of) the computational grid (rectilinear or
curvilinear). Also, the flow variables (surface elevation, velocity components and pressure)
will be outputted in their points of definition according to the Arakawa C-grid staggering.
Such a group may be convenient for the user to obtain output that is not affected by in-
terpolation errors.
The subgrid contains those points (ix,iy) of the computational grid for which:
[ix1] ≤ ix ≤ [ix2] and [iy1] ≤ iy ≤ [iy2]
For convenience the size of the group, the corner coordinates and the angle with the
problem coordinate system are written to PRINT file. The origin of the computational grid
is (ix=1,iy=1)!
Description of commands 83
Limitations:
[ix1]≥1, [ix2]≤[mxc]+1, [iy1]≥1, [iy2]≤[myc]+1 ([mxc] and [myc] as defined in
the command CGRID).
With this optional command the user defines output along a curved line. Actually this
curve is a broken line, defined by the user with its corner points. The values of the output
quantities along the curve are interpolated from the computational grid. This command
may be used more than once to define more curves.
RAY ’rname’ [xp1] [yp1] [xq1] [yq1] < [int] [xp] [yp] [xq] [yq] >
With this optional command the user provides SWASH with information to determine out-
put locations along the depth contour line(s) defined subsequently in command ISOLINE
(see below).
The locations are determined by SWASH as the intersections of the depth contour line(s)
and the set of straight rays defined in this command RAY. These rays are characterized by a
84 Chapter 4
set of master rays defined by their start and end positions ([xp],[yp]) and ([xq],[yq]).
Between each pair of sequential master rays thus defined SWASH generates [int]−1 in-
termediate rays by linear interpolation of the start and end positions.
Note that the rays thus defined have nothing in common with wave rays (e.g. as obtained
from conventional refraction computations).
| -> DEPth |
ISOline ’sname’ ’rname’ < > [dep]
| BOTtom |
With this optional command the user defines a set of output locations along one depth or
bottom level contour line (in combination with command RAY).
The set of output locations along the depth contour lines created with this command is of
the type CURVE.
Description of commands 85
With this optional command the user defines a set of individual output locations (points).
The coordinates of these points are given in the command itself or read from a file (option
FILE).
| .......... |
QUANTity < > ’short’ ’long’ [lexp] [hexp] [excv] &
| .......... |
[xcom] [ycom] [zcom] (for output quantities MOMX, MOMY, MOMZ) &
|-> PROBLEMcoord |
< > (for directions and vectors, e.g. VDIR and VEL)
| FRAME |
• the duration over which wave parameters and mean current are calculated,
• the center of gravity and rotation angle of floating body for computing hydrodynamic
loads, and
|...|
< > the output parameters as given in commands BLOCK and TABLE.
|...|
‘short’ user preferred short name of the output quantity (e.g. the name appearing in
the heading of a table written by SWASH). If this option is not used, SWASH
will use a realistic name.
‘long’ long name of the output quantity (e.g. the name appearing in the heading of a
block output written by SWASH). If this option is not used, SWASH will use a
realistic name.
[lexp] lowest expected value of the output quantity.
[hexp] highest expected value of the output quantity; the highest expected value is
used by SWASH to determine the number of decimals in a table with heading.
So the QUANTITY command can be used in case the default number of decimals
in a table is unsatisfactory.
[excv] in case there is no valid value (e.g. wave height in a dry point) this
exception value of the output quantity is written in a table or block output.
The following data are accepted only in combination with some specific output quantities.
Examples:
QUANTITY Xp hexp=100. for simulations of lab. experiments
QUANTITY WLEV VX excv=-9. to change the exception value for
water level and u−component
QUANTITY HSIG SETUP dur 30 min to compute wave height and setup
by averaging surface elevation over
the last 30 minutes of the simulation.
QUANTITY MVEL MSALK dur 1 hr to compute depth-averaged mean velocity
88 Chapter 4
This command enables the user to influence the format of block and table output.
| -> HEADer |
BLOck ’sname’ < > ’fname’ (LAYout [idla])
| NOHEADer |
| DEP |
| |
| BOTL |
| |
Description of commands 89
| WATL |
| |
| DRAF |
| |
| VMAG |
| |
| VDIR |
| |
| VEL |
| |
| VKSI |
| |
| VETA |
| |
| PRESS |
| |
| NHPRES |
| |
| QMAG |
| |
| QDIR |
| |
| DISCH |
| |
| QKSI |
| |
| QETA |
| |
| VORT |
| |
| WMAG |
| |
| WDIR |
| |
| WIND |
| |
| FRC |
| |
| USTAR |
| |
| UFRIC |
| |
| SAL |
90 Chapter 4
| |
| TEMP |
| |
| SED |
| |
| HRUN |
| |
| BRKP |
| |
| SETUP |
| |
| HS |
| |
| HRMS |
| |
| MVMAG |
| |
| MVDIR |
| |
| MVEL |
| |
| MVKSI |
| |
| MVETA |
| |
| MSAL |
| |
| MTEMP |
| |
| MSED |
| |
| ZK |
| |
| HK |
| | | -> Sec |
< < VMAGK > [unit] > (OUTput [tbegblk] [deltblk]) < MIn >)
| | | HR |
| VDIRK | | DAy |
| |
| VELK |
| |
| VKSIK |
| |
Description of commands 91
| VETAK |
| |
| VZ |
| |
| VOMEGA |
| |
| SALK |
| |
| TEMPK |
| |
| SEDK |
| |
| TKE |
| |
| EPS |
| |
| VISC |
| |
| QMAGK |
| |
| QDIRK |
| |
| DISCHK |
| |
| QKSIK |
| |
| QETAK |
| |
| PRESSK |
| |
| NHPRSK |
| |
| MVMAGK |
| |
| MVDIRK |
| |
| MVELK |
| |
| MVKSIK |
| |
| MVETAK |
| |
| MSALK |
92 Chapter 4
| |
| MTEMPK |
| |
| MSEDK |
| |
| MTKE |
| |
| MEPS |
| |
| MVISC |
| |
| TIME |
| |
| TSEC |
| |
| XP |
| |
| YP |
| |
| DIST |
| |
| FORCEX |
| |
| FORCEY |
| |
| FORCEZ |
| |
| MOMX |
| |
| MOMY |
| |
| MOMZ |
| |
| RUNUP |
With this optional command the user indicates that one or more spatial distributions
should be written to a file.
Basically, the output files generated by SWASH are human-readable files that
use ASCII character encoding. Such files can be open and edit in any text editor
or can be viewed in Matlab or Excel. However, if the user specifies the extension
of the output file as ‘.mat’, a binary MATLAB file will be generated. This file
requires less space on your computer and can be loaded in MATLAB much faster
than an ASCII file. Also note that the output parameters are stored as single
precision. (Hence, use the Matlab command double for conversion to double
precision, if necessary.) Binary MATLAB files are particularly useful for the
computation with unstructured grids. A number of MATLAB scripts are
provided with the SWASH source code that can be used to plot wave parameters
as maps in a simple way.
Since version 8.01, SWASH can generate VTK files that can be viewed in
Paraview, an open-source, general-purpose visualization package, available for
Windows, Mac and Linux (see https://www.paraview.org). The basic extension
is ‘.vtk’, but SWASH will generate various XML-based file formats depending
on the grid types (*.vts associated with structured grids and *.vtu containing
unstructured mesh data). The VTK XML files are binary, self-descriptive
(include plain text metadata) and portable (cross-platform). In addition, a
key benefit is that there is no need to collect VTK files residing on separate
processes of a distributed memory machine (after execution of SWASH in
parallel). Paraview can simply visualize the whole domain that consists of
several subdomains.
LAY-OUT with this option the user can prescribe the lay-out of the output to file with
the value of [idla].
[idla] see command READINP (options are: [idla]=1, 3, 4). Option 4 is recommended
for postprocessing by MATLAB, however, in case of a generated binary
MATLAB file option 3 is recommended.
Default: [idla] = 1
DEPTH water depth (in m) (not the still water depth!).
BOTLEV bottom level or still water depth (in m).
Output is in both active and non-active points.
Note: exception value for bottom levels must be given!
(See command INPGRID BOTTOM EXCEPTION).
94 Chapter 4
4 : 15:30:00
5 : 87/05/30 15:30:00’
6 : as in WAM 8705301530
7 : 153000.000
This format is installation dependent. See Implementation Manual or ask the
person who installed SWASH on your computer. Default is option 7.
[deltblk] time interval between fields, the unit is indicated in the next option:
SEC unit seconds
MIN unit minutes
HR unit hours
DAY unit days
Notes:
• The x− and y−components of the vectorial quantities VEL, DISCH, UFRIC, etc. are
always given with respect to the problem coordinate system.
• For a proper use of the quantity HRUN, take into account the following notes:
1. Quantity HRUN indicates the maximum horizontal runup that occur during the
whole simulation. So, it should be plotted at the final time step.
2. The correct values for HRUN are 0 and 1 only. To prevent interpolation, use the
command GROUP.
3. The horizontal runup is associated with the inundation depth. The default value
is the threshold water depth; see command SET. Otherwise it is determined by
the user using the command QUANTITY HRUN depth.
4. To determine the (vertical) runup height with respect to the still water level,
also plot the quantity BOTLEV. At those locations where HRUN is for the first time
zero, the corresponding value of −1× BOTLEV indicates the runup height.
5. To find and plot the location of inundation use the following Matlab script:
BWs=edge(Hrunup,’sobel’);
hrp=zeros(size(BWs,1),size(BWs,2));
hrp(BWs==1)=1;
hrp(hrp==0)=NaN;
x=Xp(find(hrp==1));
y=Yp(find(hrp==1));
98 Chapter 4
| -> HEADer |
| |
TABle ’sname’ < NOHEADer > ’fname’ &
| |
| SWASH |
With this optional command the user indicates that for each location of the output location
set ’sname’ (see commands POINTS, CURVE, FRAME or GROUP) one or more variables should
be written to a file. Some quantities are space independent and vary in time only. These
are e.g. the wave runup height and the hydrodynamic loads (forces and moments acting
on a floating object). For these quantities we choose an empty output set with the name
’sname’ = ’NOGRID’.
The keywords HEADER and NOHEADER determine the appearance of the table; the filename
determines the destination of the data.
’sname’ name of the set of POINTS, CURVE, FRAME, GROUP or the empty set NOGRID.
HEADer output is written in fixed format to file with headers giving name of variable
and unit per column. A disadvantage of this option is that the data are written
in fixed format; numbers too large to be written will be shown as: ****.
Number of header lines is 4.
NOHEADer output is written in floating point format to file and has no headers; it is
intended primarily for processing by other programs. With some spreadsheet
programs, however, the HEADER option works better.
SWASH a table on file is produced with a special fixed format appropriate for
layer-dependent quantities. This file contains headers with useful
information for a correct interpretation of the data.
’fname’ name of the data file where the output is to be written to.
Default for option HEADER is output to the PRINT file.
In case of NOHEADER the filename is required.
|...|
< > the output parameters as given in command BLOCK.
|...|
OUTPUT the user requests output at various times. If the user does not use this option,
the program will give TABLE output for the last time step of the computation.
[tbegtbl] begin time of the first field of the variable, the format is:
100 Chapter 4
1 : ISO-notation 19870530.153000
2 : (as in HP compiler) ’30−May−87 15:30:00’
3 : (as in Lahey compiler) 05/30/87.15:30:00
4 : 15:30:00
5 : 87/05/30 15:30:00’
6 : as in WAM 8705301530
7 : 153000.000
This format is installation dependent. See Implementation Manual or ask the
person who installed SWASH on your computer. Default is option 7.
[delttbl] time interval between fields, the unit is indicated in the next option:
SEC unit seconds
MIN unit minutes
HR unit hours
DAY unit days
Notes:
• The number of decimals in the table varies for the output parameters; it depends on
the value of [hexp], given in the command QUANTITY.
(FILE ‘fname’)
If SWASH produces unexpected results, this optional command can be used to instruct
the program to produce intermediate results during a SWASH run (test output). A TEST
command may change between commands in the file to change the level of test output dur-
ing a SWASH run. This change occurs during the execution of the run. A TEST command
controls the test output until the next TEST command. Such a next TEST command may
have level 0, thus stopping test output.
Description of commands 101
[itest] the level of test output. For values under 100 the amount is usually reasonable,
for values above 200 it can be very large. For values of [itest] up to 50 the
test output can be interpreted by the user. For higher values of [itest] the
test output can only be interpreted by those who have the program source
listing at their disposal.
For instance, with [itest] = 30, one may check mass and energy conservation,
if appropriate.
Default: [itest] = 1
[itrace] SWASH writes a message (name of subroutine) to the PRINT file at the first
[itrace] entries of each subroutine.
Default: [itrace] = 0
POINTS if this option is used, the user instructs SWASH to produce detailed print output
during the computational process for a grid point of the computational grid.
Output at a maximum of 50 grid points is possible. This option can be used
only after the bathymetry has been read (see command READINP BOTTOM).
IJ the test points are defined by means of grid indices.
[i], [j] grid indices of a test point. Values of [i] range from 1 to [mxc]+1
(see command CGRID), values of [j] from 1 to [myc]+1.
ONLY MEANT FOR STRUCTURED GRIDS.
[k] vertex index of a test point. This can be obtained in a grid generator file
(.node and .n files of Triangle and Easymesh, respectively).
ONLY MEANT FOR UNSTRUCTURED GRIDS.
XY the test points are defined in terms of problem coordinates; SWASH will determine
the nearest grid points. Output will be made for this selected grid point.
[x], [y] coordinates of a test point (problem coordinates in meters in case of Cartesian
coordinates, or longitude and latitude in degrees in case of spherical coordinates,
see command COORD).
FILE some flow variables for test points are written.
‘fname’ name of the file to which the output is written; default filename: DIAGNOSTIC.
4.7 Lock-up
| -> Sec |
COMPute [tbegc] [deltc] < MIn > [tendc]
| HR |
| DAy |
[tbegc] the start (date and) time of the computation, the format is
1 : ISO-notation 19870530.153000
2 : (as in HP compiler) ’30−May−87 15:30:00’
3 : (as in Lahey compiler) 05/30/87.15:30:00
4 : 15:30:00
5 : 87/05/30 15:30:00’
6 : as in WAM 8705301530
7 : 153000.000
This format is installation dependent. See Implementation Manual or ask the
person who installed SWASH on your computer. Default is option 7.
[deltc] the time step of the computation, the unit is indicated in the
next option:
SEC unit seconds
MIN unit minutes
HR unit hours
DAY unit days
[tendc] the end time of the computation, format see [tbegc].
STOP
This required command marks the end of the commands in the command file. Note that
the command STOP may be the last command in the input file; any information in the
input file beyond this command is ignored.
Chapter 5
In this chapter some guidelines for setting up a command file is given. This file contains all
the necessary commands and data required for defining a model and running the simulation.
All the commands and keywords are listed in Appendix C. Not all the commands need to
be specified. Most of them will be taken default. Generally, a command file consists of five
parts which must be specified by the user:
1. a computational grid,
First we need to define the size and direction of the computational domain in the hori-
zontal plane. The area of interest should be kept at least two wave lengths away from the
boundaries. Note that if a sponge layer needs to be included, the computational domain
needs to be extended with the size of that sponge layer. It is always wise to choose the
grid axes being aligned as much as possible with the dominant wave direction.
103
104 Chapter 5
we take sufficient number of grid points per wave length associated with the peak wave
energy. For low waves, i.e. H/d ≪ 1 with H a characteristic wave height (either significant
or RMS) and d the (still) water depth, it is sufficient to take 50 grid cells (or 51 grid
points) per peak wave length. However, for relatively high waves, it is better to take at
least 100 grid cells per peak wave length. So, at least, we need to know something about a
typical water depth and a typical peak period. Based on the linear dispersion relation the
corresponding peak wave length can be found.
Keep in mind, however, that waves become shorter when the water depth decreases. Hence,
for a desired number of grid cells per wave length the grid resolution must therefore be
higher locally. In this respect, a rectangular, nonuniform grid is recommended. The desired
number of grid cells for this case may be lesser than the one associated with the peak wave
length. A rule of thumb is 15 to 20 cells.
However, to further enhance the flexibility with respect to local grid refinements at places
where needed, either a boundary-fitted, orthogonal curvilinear grid or an unstructured tri-
angular mesh may be applied. Such meshes must be generated externally. The user is,
however, strongly advised to define the computational domain as a rectangle with one of
the axis being aligned with the dominant wave direction.
Another issue is the choice of the number of layers. This choice mainly depends on two
types of application:
• wave transformation.
If one is interested in the vertical flow structures, e.g. undertow and stratified flows, then at
least 10 or perhaps more vertical layers should be adopted. If necessary, a non-equidistant
layer distribution can be specified; see Figure 5.1. The layer thickness hk , which is the
distance between two consecutive layer interfaces, may be defined in a relative way, i.e. a
percentage of the water depth similar to the σ−coordinates, or in an absolute way, i.e. a
constant or fixed layer thickness as expressed in meters. To make sure that the sum of the
layer thicknesses equals the water depth, at least one layer must be defined in a relative
way. The choice for fixed layers may be useful in the case of a bathymetry exhibiting
strong variation of the depth, such as a lake with some pits, in order to keep the vertical
Setting up your own command file 105
z0 = ζ
zk-1
hk
zk
zK = - d
Figure 5.1: Vertical grid definition with K layers and K+1 layer interfaces.
Concerning the wave transformation, the number of layers is determined by the linear
frequency dispersion. In particular, the dimensionless depth, kd with k the wave number,
decides the number of layers. The higher the value of kd, the more vertical layers needed. In
addition, the accuracy with which the phase velocity of the wave components, c = ω/k with
ω the angular frequency, is obtained depends on the discretization of the vertical pressure
gradient in the momentum equations. For wave transformation usually the Keller-box
scheme is adopted; see Section 5.4.3.
The range of applicability of the SWASH model to values of kd indicating the relative
importance of linear wave dispersion for primary waves is given in Table 5.1. This
√ range
is determined by requiring a relative error in the normalized wave celerity (= c/ gd) of
at most 1%. An exception is the use of one vertical layer where the relative error is 3%,
which is acceptable for many applications. Here, at most three layers may be considered
enough for typical wave simulations. Moreover, the layers are assumed to have variable
thicknesses and be equally distributed, which is the usual choice for wave simulations. So,
do not use fixed layers!
It is noted that SWASH uses its own dispersion relation, which is an approximate one of
106 Chapter 5
ω 2 = gk tanh(kd)
This approximate relation is derived using the Keller-box scheme (see Section 5.4.3) and
depends on the number of equidistant layers employed in the model. The linear dispersion
relation of SWASH using one vertical layer, i.e. depth-averaged, is given by
kd
ω 2 = gk
1 + 41 k 2 d2
and
5 3 3 1
2 kd + 54 k d + 1296 k 5 d5
ω = gk 5 2 2 5 4 4 1
1 + 12 k d + 432 k d + 46656 k 6 d6
respectively. Thus the approximate dispersion relation is consistent with the model, par-
ticularly for relatively high wave frequencies. This will lead to more accurate results.
The approximate dispersion relation in SWASH is only available for one, two and three
equidistant layers with variable thickness (i.e. sigma planes, not fixed layers). SWASH
shall indicate this in the PRINT file.
So, for primary waves with kd ≤ 2.9, use of one layer is sufficient, while at least two
equidistant layers need to be chosen if kd ≤ 7.7. For most typical nearshore wave simula-
tions, two layers may be enough. In the example above, kd = 1.04, so one vertical layer
would be enough.
However, one must realized that, for a given number of layers, relatively high harmonics
may propagate too slow at a given depth. For example, using one layer, SWASH is accurate
up to a kd value of 2.9 for primary waves. For a depth of 20 m (deepest part in the example
above), the shortest wave that can accurately modelled at this depth has a frequency of
0.18 Hz (minimum wave period of 5.6 s; derived from the approximate dispersion relation
above). In other words, for a given number of layers and a water depth, there is a max-
imum frequency above which a wave component has an incorrect celerity; see Table 5.2.
This means, for instance, that the phase differences between the concerning harmonics are
wrong. This is particularly important when nonlinear effects are dominant1 .
Ideally, the maximum frequency is about 1.5 to 2 times the peak frequency at a given
depth. It is then assumed that all components above this maximum frequency have a
1
If one is interested in propagation of very short waves in the surf zone (d ∼ 0.5 m) with f < 4 Hz, while
these waves exchange energy through nonlinear interactions, the user is advised to choose six equidistant
layers. By using these number of layers, the maximum relative error for kd < 40 remains below 0.1%.
Setting up your own command file 107
Table 5.2: Maximum frequency (in Hz) as function of still water depth (in m) and number
of layers.
d (m) K=1 K=2 K=3
1 0.82 1.37 2.00
5 0.37 0.61 0.89
10 0.26 0.43 0.63
15 0.21 0.35 0.52
20 0.18 0.31 0.45
25 0.16 0.27 0.40
30 0.15 0.25 0.36
35 0.14 0.23 0.34
40 0.13 0.22 0.32
45 0.12 0.20 0.30
50 0.12 0.19 0.28
100 0.08 0.14 0.20
little bit amount of energy (here the presuming spectrum shape is a Jonswap one). As a
consequence, the phase differences between the representative wave components, including
the relatively short waves, are thus well controlled in the model.
Referred to the example above, the peak frequency at the wavemaker boundary is 0.1 Hz,
while the depth is 20 m. The required maximum frequency should be at least 0.15 Hz or
preferably higher. So, the use of one layer would be critical when propagation of short
waves with frequencies higher than 0.18 Hz needs to be modelled accurately.
Jetties, piers and quays, or other impermeable walls, may be schematized either
• by including their slopes in the bathymetry, or
• by means of porosity layers with a small porosity (n < 0.1), or
• a combination of the first two options.
From a stability point of view, the second option is the best one. However, the first option
may be a better choice when, for instance, wave diffraction around the berm of the quay
108 Chapter 5
Instead, however, a combination is also possible, i.e. to place the porosity layer on top of
the quay walls, and having a volumetric porosity of 20% and a grain size of 0.1 m.
A rubble mound breakwater must be schematized by means of porosity layers. These lay-
ers must be placed inside the computational domain. Rubble mound breakwaters have
a typical porosity value of (n=) 0.4, while the stone size of the armour layer is typically
0.5 m. The berm of the breakwater can be specified by means of the structure heights
(relative to the bottom). In case of two or more breakwaters in the domain, both porosity
and structure height are thus spatially varied, and so they need to be inputted by means
of input grids. Also stone diameters need to be specified as well.
Alternatively, the porosity layers may be placed on top of the impermeable core of the
breakwater which, in turn, is schematized by adapting the bottom level. In addition, the
berm of the breakwater is schematized by including its slope in the adapted bathymetry.
The width of the breakwater should be at least four times the grid size of the computa-
tional grid. So, the grid resolution should be high enough. When choosing a too coarse
grid size, it may lead to an overestimation of the transmission and an underestimation of
the reflection.
This way of schematization permits to simulate partial reflection and transmission of the
waves through breakwaters. Wave reflection at a breakwater is typically determined by
wave energy dissipation on the slope and wave penetration into the breakwater. Both
processes are equally important, and thus both slope angle and porosity are important
governing parameters for the wave reflection.
Using the command INPGRID BOTTOM EXCEPTION, one can introduce permanently dry
points in the computational grid. This provides a means to make a line of dams or screens
through the computational domain, separating the flow on both sides. This line of thin
dams may represent a small obstacle with subgrid dimensions that possibly influence the
local flow. It must be noted that for parallel runs using MPI the user must indicate an
exception value for bottom levels, if appropriate, in order to obtain good load balancing.
The water depth should be uniform along the wavemaker boundary where incident waves
are imposed.
Setting up your own command file 109
If tidal currents are significant over the computational domain, the spatial distribution of
the currents u(x, y) should be specified as an input grid.
In general, initial conditions are more important for relative short simulations (e.g. a few
minutes in case of short waves or a few days in case of tidal waves). Boundary conditions
are by far more important for longer simulations. Moreover, often no information is avail-
able in order to start the simulation. Therefore, the simulation will usually start with zero
velocities and a spatially constant water level, and the simulation will be long enough to
get a steady-state solution; see also Section 5.4.1.
Waves may be generated along one or two boundaries. These are called wavemaker bound-
aries. First, it is assumed that the boundaries are not curved. Thus, the use of curvilinear
grids is restricted to rectangular domains with nonuniform grids. Second, it is assumed
that the variation of the depth along these wavemaker boundaries is slowly or (preferably)
constant. Third, it is advised to place these wavemaker boundaries away from the area of
interest, and away from steep topography. At the wavemaker boundary, we may imposed
either regular or irregular waves. For one-dimensional cases they are by definition long-
crested or uni-directional. For a two-dimensional case short-crested or multi-directional
waves can also be specified. Usually, a time series need to be given for incident waves.
This may either be synthesized from parametric information (wave height, period, etc.) or
derived from a surface elevation time series.
For regular waves, at least the wave height and the wave period must be specified. Op-
tionally, the wave direction can be specified as well. Alternatively, a time series can be
imposed.
For irregular waves, either a spectrum or time series can be enforced. In the case of a
spectrum, both the shape and wave characteristics need to be specified. The usual shape
is either Jonswap or Pierson-Moskowitz. Sometimes a TMA shape is desired. The wave
characteristics are determined by the following parameters: the significant or RMS wave
height, peak or first order mean period, peak wave direction, and directional spreading
(only in case of short-crested waves). The frequency range [fmin , fmax ] is such that the
highest frequency, fmax , equals 3 times the peak frequency (or mean frequency), while the
lowest one, fmin , equals half of the peak/mean frequency.
Alternatively, a spectrum file may be given. There are two types of files:
Using a spectrum a time series of surface elevation will be synthesized. At least, the
length of this series should correspond to the time period over which surface elevation and
velocities are outputted after steady-state condition has been established. This time period
should be long enough to provide statistically reliable wave data. After this time period
the time series repeats itself. This duration of the time series is called the cycle period
(see command BOUnd ... SPECTrum ... [cycle]). The recommended range is from
100 to 300 wave periods. If the cycle period is denoted as Tcycle , then the frequency step
∆f to be used for the evaluation of the parametric spectrum (e.g. Jonswap) equals
1
∆f =
Tcycle
Thus the spectrum is divided into N frequency bins with uniform spacing ∆f ,
fmax − fmin
N=
∆f
Referring to the above example, we impose a Jonswap spectrum at the wavemaker bound-
ary. The peak period is 10 s, so that the frequencies are in between 0.05 Hz and 0.3 Hz.
The duration of the time series of surface elevation to be synthesized is set to 30 minutes,
which is supposed to be accurate enough to get sufficient statistics like wave height and
mean period. Hence, in total, 450 wave components will be generated at the entrance of
the computational domain.
Please be careful in choosing the cycle period. The larger this period the more wave com-
ponents will be involved at the wavemaker boundary. Based on these components, SWASH
will synthesize time series for the orbital velocities in each grid point and each vertical layer
along the boundary. That would enhance the computing time a lot.
When imposing a spectrum at the boundary, one has to realize that some so-called evanes-
cent modes might be included as well. These modes show exponential decay with distance
from the boundary at which the spectrum is imposed. As such, they can not be ”seen” by
the model. Evanescent waves are a general property of the underlying model equations.
The frequency at which the evanescent modes are generated is the cut-off frequency and is
determined by the dispersive properties of the model equations. It is given by
g
r
ωcf = 2 K
d
with K the number of layers used in the model. Hence, the lowest wave period to be
considered in the model simulation equals 2π/ωcf . So, given the depth at the boundary
and the number of layers used, the cut-off frequency is determined above which the evan-
escent waves are generated at the wavemaker boundary where the spectrum is imposed;
Setting up your own command file 111
Table 5.3: Cut-off frequency (in Hz) as function of still water depth (in m) and number of
layers.
d (m) K=1 K=2 K=3
1 1.00 1.99 2.99
5 0.45 0.89 1.34
10 0.32 0.63 0.95
15 0.26 0.51 0.77
20 0.22 0.45 0.67
25 0.20 0.40 0.60
30 0.18 0.36 0.55
35 0.17 0.34 0.51
40 0.16 0.32 0.47
45 0.15 0.30 0.45
50 0.14 0.28 0.42
100 0.10 0.20 0.30
These evanescent modes will be removed by SWASH. Note that these modes carry a little
bit energy and thus negligible. SWASH will give a warning when at least 10% of the total
wave components are the evanescent modes that have been removed. If there are too much
evanescent modes on the boundary, i.e. these modes together contain a significant amount
of energy of the wave spectrum, the user is advised either to enlarge the number of layers
(see also Table 5.2) or to truncate the imposed spectrum (e.g. SWAN spectrum), i.e. the
highest frequency of the spectrum is not larger than the given cut-off frequency.
In the above example, one layer (K = 1) has been chosen. We assume that along the
wavemaker boundary we have a uniform depth of 20 m. So the cut-off frequency is 0.22
Hz (see Table 5.3; the lowest wave period is thus 4.5 s). However, the highest frequency
is 0.3 Hz. So there are 144 evanescent modes on the boundary, which is about 30%, thus
reasonably. They will be removed from the boundary.
For high waves, sub and super harmonics are generated due to nonlinearity. These waves
are called bound waves as they are attached to the primary wave and travel at its phase
speed instead of that of a free wave at the same frequency. If linear wave conditions are
enforced at the boundaries, the model will generate free components with the same mag-
nitude but 180o out of phase with the bound waves at the wavemaker in order to satisfy
the linear wave boundary condition. The presence of bound and free waves that travel at
different speeds will lead to a spatially nonhomogeneous wave field with the wave height
changing continuously over the domain.
For such a case, it is recommended to add bound waves at the wavemaker boundaries (see
112 Chapter 5
command BOUnd ... ADDBoundwave ...). These components are determined by the
weakly nonlinear, second order, finite-depth wave theory of Hasselmann (1962). Herein
the wave field is composed of first order, or primary waves that corresponds to the free
wave response, and a small second order correction that is associated with the bound waves.
This correction is derived with the assumption of weak nonlinearity. Therefore, the above
boundary condition is only valid for small wave amplitudes (a/d ≪ 1). Furthermore, the
assumption of a depth-averaged second order velocity amplitude requires kd ≪ 1. These
considerations imply that the proposed boundary condition cannot be used in the surf zone
(a/d ∼ 1) and in deep water (kd > 1). This is the case when the Ursell number a/d / (kd)3
exceeds 0.2. In that case, SWASH will give a warning. Nevertheless, for most practical
applications, the boundary will be located in intermediate water depths where these lim-
itations are not met. Furthermore, in deep water the second order response is small and
can − to a good approximation − be neglected. In such case, a boundary condition based
on linear wave theory is likely sufficient.
To simulate entering waves without some reflections at the wavemaker boundary, a weakly
reflective condition allowing outgoing waves must be adopted (command BTYPE WEAK).
This type of radiation condition has been shown to lead to good results within the surf
zone.
Waves propagating out of the computational domain are absorbed by means of a sponge
layer placed behind an output boundary. It is recommended to take the width of the
sponge layer at least 3 times the typical wave length. However, for long waves a Sommer-
feld radiation condition might be a good alternative.
In the above example the cycle period equals 30 minutes, which is supposed to be at least
Setting up your own command file 113
85% of the total simulation time. So, the duration of the intended simulation would be 35
minutes, or more safely, 40 minutes.
A dynamically adjusted time step controlled by the Courant number in a user prescribed
range is implemented in SWASH as follows. The actual maximum of the Courant number
over all wet grid points is determined. The time step is halved when this number becomes
larger than a preset constant Crmax < 1, and the time step is doubled when this number
is smaller than another constant Crmin , which is small enough to be sure the time step
can be doubled. Usually, Crmin is set to 0.2, while the maximum Courant number Crmax
is specified in the range of 0.5 to 0.8. It is advised not to choose a value higher than 0.8
since nonlinear processes, e.g. wave breaking and wave-wave interactions, can affect the
stability condition. For high, nonlinear waves, or wave interaction with structures with
steep slopes (e.g. jetties, quays), a Courant number of 0.5 is advised.
The choice depends on the discretization of the vertical pressure gradient, namely, explicit
central differences referring as the classical case and the implicit Keller-box or compact
scheme, respectively. This compact scheme allows straightforward implementation of the
zero pressure boundary condition at the free surface without the need for special attention
at interior points near that surface. Moreover, the discretization error is four to six times
smaller than the error of classical central differences of the same order and involving the
114 Chapter 5
w w
k−1/2 k−1/2
q
k
q u k u
k+1/2 k+1/2
x x
(a) (b)
Figure 5.2: Applied arrangements of the unknowns in a staggered grid: (a) standard layout
and (b) box layout. Meaning of the unknowns: u is the horizontal velocity, w is the vertical
velocity and q is the non-hydrostatic pressure.
same number of vertical grid points. Hence, use of the compact scheme allows a very
few number of vertical grid points with relative low numerical dispersion and dissipation,
thereby enhancing the accuracy of the frequency dispersion for relative short waves up to
an acceptable level, see Table 5.1.
At very low vertical resolution (one or two layers), the Keller-box scheme gives good dis-
persive properties. At high vertical resolutions, however, the standard layout is preferable
because it appears to be more robust while its dispersion characteristics are then usually
sufficiently accurate.
To summarize, for wave simulations with 5 layers or less, the Keller-box scheme using
the box layout is recommended, while for simulations with typically 10−20 layers, the
classical central differencing employing the standard layout is preferred. See command
NONHYDrostatic STANdard|BOX.
Related to this choice, it might be useful to specify the preconditioner for solving the Pois-
son pressure equation. Two options are available: ILU and ILUD. For a robust solution,
the ILU preconditioner is preferred. This choice might be a good one for applications
where high and short waves are involved, or irregular beds with steep slopes (e.g. weir,
breakwater, quay, jetty), or when relatively large number of layers (> 30) are involved. On
the other hand, the ILUD preconditioner is a better choice to get an efficient solution (e.g.
parallel computing). See command NONHYDrostatic ... PREConditioner ILUD|ILU.
Setting up your own command file 115
The default scheme for the considered terms is the well-known second order BDF scheme
(or sometimes called the LUDS scheme). For many applications this is a good choice.
However, in some cases central differences (CDS) are preferred. This is especially the case
when the higher harmonics are involved or when wave breaking is present (the amount of
dissipation of higher harmonics is then important). Note that when the command BREAK is
employed, SWASH will automatically apply central differences to the horizontal advection
terms. If, for some reason, SWASH becomes unstable, possibly due to the growth of
wiggles, the user is then advised to use the BDF scheme.
116 Chapter 5
Other higher upwind schemes (e.g. QUICK) may be used as well, but we did not experience
much differences compared to the BDF scheme. In any case, never apply the first order
upwind scheme to any horizontal advection term, which is usually too numerically diffusive.
|u|∆t
≤1
∆x
and if a first order upwind scheme is applied to the global continuity equation, we shall
have non-negative water depths at every time step; see Stelling and Duinmeijer (2003)
for a proof. Hence, flooding never happens faster than one grid size per time step, which
is physically correct. This implies that the calculation of the dry areas does not need
any special feature. For this reason, no complicated drying and flooding procedures are
required. Additionally, the shoreline motion in the swash zone can be simulated in a
natural manner.
For computational efficiency, the model equations are not solved and the velocities are set
to zero when the water depth is below a threshold value (see command SET DEPMIN). Its
default value is 0.05 mm. However, a higher threshold value may be chosen for scaling
reasons. For instance, at the scale of a field site, a value of 1 mm is an appropriate choice.
(As a matter of fact, the value of 0.05 mm is a suitable one under laboratory conditions.)
This will also relax the time step to some extent in case of explicit time stepping. For
a large-scale ocean simulation, a threshold value of 1 cm is probably more effective than
0.05 mm. Be careful when choosing a too high value as this may negatively influence mass
conservation.
To achieve second order accuracy, the so-called MUSCL limiter may be employed (see
command DISCRET CORRDEP).
Since the CFL condition, Eq. (5.1), holds this implies that ensuring non-negative water
depths does not lead to a new time step restriction.
For some two-dimensional cases, however, ensuring non-negative water depths might lead to
a time step restriction which appears to be more restrictive than the usual CFL condition.
An example is the case where locally all velocities are directed outward of a grid cell.
Nevertheless, such a case is rarely encountered and usually the time step is restricted by
the Courant number based on the stability criterion.
as overturning, air-entrainment and wave generated turbulence, are absent. But, if only
the macro-scale effects of wave breaking are of interest, such as the effect on the statistics
of wave heights, details of the breaking process can be ignored. By observing that both
spilling and plunging breakers eventually evolve into a quasi-steady bore, where the entire
front-face of the wave is turbulent, a breaking wave becomes analogous to a hydraulic jump.
Consequently, its integral properties (rate of energy dissipation, jump height) are approx-
imately captured by regarding the breaking wave as a discontinuity in the flow variables
(free surface, velocities). Proper treatment of such a discontinuity in a non-hydrostatic
model (conservation of mass and momentum) can therefore be used to determine the en-
ergy dissipation of waves in the surf zone; see Section 5.4.4.
Though a vertical coarse resolution (1−3 layers) is sufficient to describe the wave physics
outside the surf zone (e.g. refraction, shoaling, diffraction, nonlinear wave-wave interac-
tions), dissipation due to wave breaking requires a disproportional high vertical resolution
(∼10−20). A coarse resolution will result in an underestimation of the horizontal velocit-
ies near the wave crest, and thus an underestimation of the amplitude dispersion. This
underestimation implies that at low vertical resolution the influence of the non-hydrostatic
pressure gradient is overestimated. Consequently, the stabilizing dispersive effects (i.e. the
non-hydrostatic pressures) postpone the transition into the characteristic saw-tooth shape
and therefore also the onset of dissipation.
The subsequent dissipation is well described by assuming depth uniform velocities and
a hydrostatic pressure distribution. In fact, these assumptions often form the basis to
derive dissipation formulations to account for depth-induced breaking in energy balance
type models, e.g. Battjes and Janssen (1978) among many others. Hence, prescribing a
hydrostatic pressure distribution in the model around the discontinuity should result in
the correct bulk dissipation.
point only becomes non-hydrostatic again if the crest of the wave has passed. This is
assumed to occur when ∂ζ/∂t < 0. Furthermore, because grid points only become active
again when the crest passes (where w ≈ 0), vertical velocities w are set to zero on the front.
To represent persistence of wave breaking, we locally reduce the criterion α to β if a neigh-
bouring grid point (in x− or y−direction) has been labelled for hydrostatic computation. √
In this case a point is thus also labelled for hydrostatic computation if ∂ζ/∂t > β gd,
with β < α. In all other grid points, the computations are non-hydrostatic. Based on
calibration, the default value for the maximum steepness parameter α is 0.6, while the
persistence parameter β is set to 0.3.
To summarize, in case of a few layers (1−3) we must apply the command BREAK with op-
tionally different values for α and β. In case of a sufficient number of layers (>10) nothing
needs to be specified with respect to wave breaking.
Alternatively, one may also output several quantities over the entire domain or a part of
the domain at certain times (”snapshots”). They are stored as blocks in the Matlab binary
files. Note that the corresponding file size is limited to 8 GB.
The user must determine the time duration over which the wave parameters, e.g. wave
height and setup, mean current or mean turbulence quantities are computed; see command
QUANT. This corresponds to the final stage of the simulation period, which should be long
enough to establish steady-state conditions. This time duration, which should be long
enough to provide statistically reliable data, equals the duration of the simulation minus
the spin up time of the simulation; see Section 5.4.1.
Different parallelization strategies can be considered of which the most popular are:
• data parallel programming,
• message passing.
Data parallel programming uses automatic parallelizing compilers which enables loop-level
parallelization. Generally, this approach often will not yield high efficiency. The main
reason for this is that a large portion of the existing code is in most cases inherently se-
quential.
Setting up your own command file 121
On shared memory platforms with all processors using a single memory, parallelization is
usually done by multithreading with the help of OpenMP compiler directives. A drawback
of this approach is that forcing good parallel performance limits the number of processors
only to about 16.
Obtaining good scalability for relatively large number of processors is usually achieved
through distributed memory parallel machines with each processor having its own private
memory. A popular example of distributed memory architecture is a cluster of Linux PCs
connected via fast networks, since it is very powerful, relatively cheap and nearly available
to all end-users. The conventional methodology for parallelization on distributed comput-
ing systems is domain decomposition, which not only achieves benefit from carrying out
the task simultaneously on many processors but also enables a large amount of memory re-
quired. It gives efficient parallel algorithms and is easy to program within message passing
environment such as MPICH2.
A parallel version of SWASH with the distributed memory parallelization paradigm us-
ing MPI standard has been developed. The message passings are implemented by a high
level communication library MPICH2. Only simple point-to-point and collective commu-
nications have been employed. No other libraries or software are required. For a full
three-dimensional simulation with a high resolution we expect a good scalable perform-
ance.
Refer to the example above, numerical computations have been carried out for the full sim-
ulation period of our harbour on 1 through 32 computational cores of our Linux cluster.
The results show a super linear speedup of up to a factor 8.6 on 8 cores, but then it levels
off to a factor of 26 on 32 cores. As such, the computing time has been reduced to 15 hours
per 60 minutes to be simulated.
122 Chapter 5
Appendix A
Definitions of variables
In SWASH a number of variables are used in input and output. The definitions of these
variables are mostly conventional.
Hs Significant wave height, in meters, defined as
qR
Hs = 4 E(f )df
1
√
Hrms = 2
2Hs
123
124 Appendix A
with ∆t the time step, ∆x and ∆y the grid sizes in x− and y−direction,
respectively, and u and v the velocity components in x− and y−direction.
TSEC Time in seconds with respect to a reference time (see command QUANTITY).
Cartesian convention The direction is the angle between the vector and the positive x−axis,
measured counterclockwise. In other words: the direction where the
waves are going to or where the wind is blowing to.
Nautical convention The direction of the vector from geographic North measured
clockwise. In other words: the direction where the waves are coming
from or where the wind is blowing from.
Definitions of variables 125
Command syntax
B.2 Command
B.2.1 Keywords
Each command instructs SWASH to carry out a certain action which SWASH executes
before it reads the next command. A command must always start with a keyword (which
is also the name of the command) which indicates the primary function of that command;
see list in Section 4.1). A simple command may appear in its command scheme as:
KEYword data
A command may contain more than one keyword (which refines the instructions to SWASH),
e.g.,
127
128 Appendix B
Spelling of keywords
In every command scheme, keywords appear as words in both lower- and upper-case letters.
When typing the command or keyword in the command file, the user must at least copy
literally the part with upper-case letters. SWASH reads only this part. SWASH is case
insensitive except for one instance (character strings), see below. When typing the keyword
in the command file, any extension of the part with upper-case letters is at the users
discretion as long as the extension is limited to letters or digits, as well as the characters −
and . So, in the first command outlined above one may write: KEY or KEYW or KEY−word
or keyhole, etc., whereas with the abovementioned second command scheme, key1 KEY2
data may appear in the command file.
Optional keywords are indicated in the command scheme with the following signs enclosing
the keywords concerned:
| KEY2word data |
KEY1word < >
| KEY3word data |
In case the user does not indicate an option in a command, SWASH chooses the alternative
indicated with an arrow (->) appearing in the command scheme (the default option). In
the above example, it may appear as:
| KEY2word data |
KEY1word < >
| -> KEY3word data |
In the actual command in the command file the user must give such a sequence. It ends
with either
• end of line
• the character / or ;
If more than one line is required for a command, the user may continue on the next line as
described in Section B.4. The repetition may consist of one instance (in fact, no repetition
at all).
B.2.2 Data
Most commands contain data, either character data or numerical data.
Numerical data are represented in the command schemes by names enclosed in square
brackets ([ ]).
As a rule, an error message will result if numerical data is given where character data
should be given.
Spelling of data
Character data are represented as character strings (sequence of characters and blanks)
between quotes (in the command scheme and in the command file). SWASH interprets an
end of line as an end quote (a character data field can therefore never extend over more
than one line).
In a command scheme the character string is always a name (which is placed between
quotes as indicated). In the command file such a name can be entered in two ways:
130 Appendix B
• Replace the name by another character string at the users discretion (between quotes;
this is the only occurrence where SWASH is case sensitive; e.g. for text to appear in
a plot.
Example:
command scheme: KEYword ’City’ data
command file: KEY ’Amsterdam’ data
• Copy the name of the variable (without the quotes) literally followed by an = sign
and a name at the users discretion (between quotes). SWASH interprets the copied
name in the command file as a keyword with all the characteristics of a keyword such
as ending a sequence of optional data (see below). As with other keywords the name
of the variable is case-insensitive.
Example:
command scheme: KEYword ’City’ data
command file: KEY city=’Amsterdam’ data
As a rule, an error message will result if numerical data is given where character data
should be given.
Numerical data are simple numbers, e.g. 15 or −7 (integer data), or 13.7 or 0.8E−4 (real
data). Whether or not integer number or real number should be given by the user is
indicated in the description of the command scheme.
Note that a decimal point is not permitted in an integer number. On the other hand, an
integer number is accepted by SWASH where a real number should be given.
In a command scheme, the number is always indicated with a name (which is placed
between square brackets). In the command file such a name can be entered in two ways:
• Copy the name of the variable (without the quotes) literally followed by an = sign
and the number (not between square brackets). SWASH interprets the copied name
in the command file as a keyword with all the characteristics of a keyword such as
ending a sequence of optional data (see below). As with other keywords the name of
the variable is case-insensitive.
Example:
command scheme: KEYword [nnn]
command file: KEY nnn=314
Command syntax 131
Required data (indicated in the description of each individual command) must be given
explicitly as character string or numbers.
( data )
For example:
or
(c) some optional data are indicate in the same way as optional keywords are indicated:
| .....data.....|
< >
| .....data.....|
Optional data of the kind (a) or (b) may be omitted by giving blanks between comma’s
(SWASH then substitutes reasonable default values). If after a required datum all data is
optional (till the next keyword or the next end-of-line), then the comma’s may be omitted
too. Optional data of the kind (c) are to be treated in the same way as optional keywords.
File swash.edt
Below the file swash.edt is presented in which all the commands that can be used with
SWASH are specified.
133
134 Appendix C
! NPLAnts|FLOAT|SALinity|TEMPerature|SEDiment &
!
! | REG [xpinp] [ypinp] [alpinp] [mxinp] [myinp] [dxinp] [dyinp] |
! | |
! < CURVilinear STAGgered > &
! | |
! | UNSTRUCtured |
!
! (EXCeption [excval]) &
!
! (NONSTATionary [tbeginp] [deltinp] SEC|MIN|HR|DAY [tendinp]) &
!
! (NONUNIForm [kmax])
!
! READgrid UNSTRUCtured / -> TRIAngle \
! \ EASYmesh / ’fname’
!
! READinp BOTtom|WLEVel|CURrent|FRic|WInd|PRessure|COOR|POROS|PSIZ|HSTRUC| &
! NPLAnts|FLOAT|SALinity|TEMPerature|SEDiment &
!
! | ’fname1’ |
! [fac] < SERIes ’fname2’ > [idla] [nhedf] ([nhedt]) (nhedvec]) &
! | LAYers ’fname3’ |
!
! FREE | FORMAT ’form’ | [idfm] | UNFORMATTED
!
! | -> CONstant [wlev] [vx] [vy] [tke] [epsilon]
! |
! INITial < ZERO
! |
! | STEAdy
!
!
! | PM |
! BOUnd SHAPespec < -> JONswap [gamma] > SIG|RMS PEAK|MEAN DSPR POW|DEGR
! | TMA |
!
! / -> SIDE N|NW|W|SW|S|SE|E|NE | [k] CCW|CLOCKWise \
! BOUndcond < > &
! \ SEGment / -> XY < [x] [y] > \ /
! \ IJ < [i] [j] > | < [k] > /
!
! BTYPe WLEV|VEL|DISCH|RIEMann|LRIEmann|WEAKrefl|SOMMerfeld|OUTFlow &
File swash.edt 135
!
! LAYer [k] | HYPerbolic | LOGarithmic &
!
! SMOOthing [period] SEC|MIN|HR|DAY &
!
! ADDBoundwave &
!
! | FOURier [azero] < [ampl] [omega] [phase] >
! | REGular [h] [per] [dir]
! | UNIForm < SPECTrum [h] [per] [dir] [dd] [cycle] SEC|MIN|HR|DAY
! | | SERIes ’fname’ [itmopt]
! | | SPECFile ’fname’ [cycle] SEC|MIN|HR|DAY
! < &
! | | FOURier < [len] [azero] < [ampl] [omega] [phase] > >
! | | REGular < [len] [h] [per] [dir] >
! | | SPECTrum < [len] [h] [per] [dir] [dd] [cycle] S|MI|HR|DA >
! | VARiable < SERIes < [len] ’fname’ [itmopt] >
! | SPECFile < [len] ’fname’ [cycle] SEC|MIN|HR|DAY >
! | SPECSwan ’fname’ [cycle] SEC|MIN|HR|DAY
!
!
! SOURce X|Y | [k] [centre] [width] [depth] [delta] &
!
! / REGular [h] [per] [dir] \
! \ SPECTrum [h] [per] [dir] [dd] [cycle] SEC|MIN|HR|DAY / &
!
! SMOOthing [period] SEC|MIN|HR|DAY
!
!
! SPONgelayer LEft|RIght|LOwer|UPper [width] | < [k] [width] >
!
!
! FLOAT [alpha] [theta]
!
!
! | -> CONstant [cd] |
! | |
! | CHARNock [beta] [height] |
! | |
! | LINear [a1] [a2] [b] [wlow] [whigh] |
! | |
! | WU | | REL [alpha]
! WIND [vel] [dir] < > <
136 Appendix C
!
! VEGEtation < [height] [diamtr] [nstems] [drag] > MASS [cm] POROsity Vertical
!
!
! | -> Sec | | -> NONCohesive [size] |
! TRANSP [diff] [retur] < MIn > < > &
! | HR | | COHesive [tauce] [taucd] [erate] |
! | DAy |
!
! [fall] [snum] [ak] DENSity Y|N [alfa] [crsn] [cp] [ek] &
!
! ANTICreep STAndard|SVK|None
!
!
! BREaking [alpha] [beta] [nufac]
!
!
! | STAndard |
! | |
! NONHYDrostatic < -> BOX > [theta] &
! | |
! | DEPthaveraged |
!
! SUBGrid [pmax] REDuced [qlay] &
!
! SOLVer [rhsaccur] [initaccur] [maxiter] [relax] [precfq] &
!
! PREConditioner ILUDS|ILUD|ILU|NONE &
!
! PROJection ITERative [tol] [maxiter]
!
!
! | | UMOM MOMentum|HEAD / -> Horizontal |
! | | \ Vertical |
! | UPWind < |
! | | WMOM / -> Horizontal |
! | | \ Vertical |
! | |
! DISCRETization < CORRdep > &
! | |
! | TRANSPort / -> Horizontal |
! | \ Vertical |
! | |
138 Appendix C
! | MIMEtic |
!
!
! | NONe |
! | |
! | FIRstorder |
! | |
! | HIGherorder [kappa] |
! | |
! | | -> SWEBy [phi] |
! | | |
! | LIMiter < RKAPpa [kappa] |
! | | |
! | | PLKAPpa [kappa] [mbound] |
! | FROmm |
! | |
! | -> BDF | LUDs |
! | |
! < QUIck >
! | |
! | CUI |
! | |
! | MINMod |
! | |
! | SUPerbee |
! | |
! | VANLeer |
! | |
! | MUScl |
! | |
! | KORen |
! | |
! | SMArt |
!
!
! DPSopt MIN|MEAN|MAX|SHIFt
!
!
! | -> EXPL [cfllow] [cflhig] |
! | |
! TIMEI METH < IMPL [thetac] [thetas] & > &
! | |
! | SOLVer [tol] [maxiter] [weight] NEWTon |
File swash.edt 139
!
! VERTical [thetau] [thetaw] [thetat]
!
!
! FRAME ’sname’ [xpfr] [ypfr] [alpfr] [xlenfr] [ylenfr] [mxfr] [myfr]
!
! GROUP ’sname’ SUBGRID [ix1] [ix2] [iy1] [iy2]
!
! CURVE ’sname’ [xp1] [yp1] < [int] [xp] [yp] >
!
! RAY ’rname’ [xp1] [yp1] [xq1] [yq1] &
! < [int] [xp] [yp] [xq] [yq] >
!
! ISOLINE ’sname’ ’rname’ DEPTH|BOTTOM [dep]
!
! POINTS ’sname’ < [xp] [yp] > | FILE ’fname’
!
!
! |...|
! QUANTity < > ’short’ ’long’ [lexp] [hexp] [excv] [ref] &
! |...|
!
! [dur] SEC|MIN|HR|DAY [depth] [delrp] &
!
! [xcom] [ycom] [zcom] [alpobj] &
!
! / -> PROBLEMcoord \
! \ FRAME /
!
! OUTPut OPTions ’comment’ (TABle [field]) (BLOck [ndec] [len])
!
! BLOCK ’sname’ HEAD | NOHEAD ’fname’ (LAY-OUT [idla]) &
! < TSEC|XP|YP|DEP|BOTL|WATL|DRAF|VMAG|VDIR|VEL|VKSI|VETA| &
! PRESS|NHPRES|QMAG|QDIR|DISCH|QKSI|QETA|VORT|WMAG|WDIR|WIND| &
! FRC|USTAR|UFRIC|HRUN|BRKP|ZK|HK|VMAGK|VDIRK|VELK|VKSIK| &
! VETAK|VZ|VOMEGA|QMAGK|QDIRK|DISCHK|QKSIK|QETAK|PRESSK| &
! NHPRSK|TKE|EPS|VISC|HS|HRMS|SETUP|MVMAG|MVDIR|MVEL|MVKSI| &
! MVETA|MVMAGK|MVDIRK|MVELK|MVKSIK|MVETAK|MTKE|MEPS|MVISC| &
! SAL|TEMP|SED|MSAL|MTEMP|MSED|SALK|TEMPK|SEDK|MSALK|MTEMPK| &
! MSEDK [unit] > &
! (OUTPUT [tbegblk] [deltblk] SEC|MIN|HR|DAY)
!
! TABLE ’sname’ HEAD | NOHEAD | STAB | SWASH | IND ’fname’ &
140 Appendix C
[1] Smit, P., Zijlema, M. and Stelling, G., 2013. Depth-induced wave breaking in a non-
hydrostatic, near-shore wave model. Coast. Engng., 76: 1–16.
[2] Stelling, G.S. and Duinmeijer, S.P.A., 2003. A staggered conservative scheme for every
Froude number in rapidly varied shallow water flows. Int. J. Numer. Meth. Fluids, 43:
1329–1354.
[3] Stelling, G. and Zijlema, M., 2003. An accurate and efficient finite-difference algorithm
for non-hydrostatic free-surface flow with application to wave propagation. Int. J.
Numer. Meth. Fluids, 43: 1–23.
[6] Zijlema, M., 2019. The role of the Rankine-Hugoniot relations in staggered finite dif-
ference schemes for the shallow water equations. Comput. Fluids, 192: article 104274.
[7] Zijlema, M., 2020. Computation of free surface waves in coastal waters with SWASH
on unstructured grids. Comput. Fluids, 213: article 104751.
[8] Zijlema, M. and Stelling, G.S., 2005. Further experiences with computing non-
hydrostatic free-surface flows involving water waves. Int. J. Numer. Meth. Fluids,
48: 169–197.
[9] Zijlema, M. and Stelling, G.S., 2008. Efficient computation of surf zone waves using
the nonlinear shallow water equations with non-hydrostatic pressure. Coast. Engng.,
55: 780–790.
[10] Zijlema, M., Stelling, G. and Smit, P., 2011. SWASH: An operational public domain
code for simulating wave fields and rapidly varied flows in coastal waters. Coast.
Engng., 58: 992–1012.
141
Index
baroclinic forcing, 7, 9, 15, 60 dam, 3, 4, 7, 10, 13, 22, 34, 35, 56, 63, 68,
bathymetry, 9, 13, 14, 101, 103, 104, 107, 72, 108, 119, 130
108 density, 4–8, 11–15, 26, 34, 35, 39, 50, 56,
BDF, 75, 77, 115, 116 64, 67, 68, 70, 94, 95, 123
BLOCK, 88 depth-averaged mode, 3, 8, 15, 56, 58, 59,
BOTCEL, 77 71, 72, 87, 94, 106, 112
bottom friction, 5, 7, 10–14, 16, 17, 19, 21, diffraction, 7, 107, 118
22, 24, 32–35, 38–40, 43, 48, 58–60, diffusivity, 65, 67
63, 67, 68, 70, 71, 73, 77, 78, 81, 82, directional spreading, 16, 45, 49–51, 109, 123,
84, 93, 94, 98, 103, 105, 107, 108, 125
112, 119 discharge, 16, 20, 48, 60, 94, 95, 119
BOUND SHAPE, 44 DISCRETIZATION, 74
boundary condition, 1, 5, 9, 11–17, 19, 22, dispersion relation, 5–8, 67, 70, 71, 104–106,
26, 28, 31, 42–44, 46–54, 65, 68, 98, 113, 114, 118, 120
103, 104, 107–113, 116, 117
BOUNDCOND, 45 FLOAT, 54
BREAKING, 68 flux limiter, 6, 8, 15, 18, 56, 65–67, 75, 76,
115
Cartesian coordinates, 5, 10, 11, 17, 21, 26, Fourier series, 16, 26, 48, 49
27, 29, 36, 47, 49, 57, 81–85, 87, 94, FRAME, 81
95, 97, 101, 124 frequency dispersion, 5–8, 44, 49, 50, 70,
CGRID, 28 105–107, 109–111, 113, 123
Chezy formula, 39, 44, 58, 59 FRICTION, 58
circulation, 4, 5, 9, 34, 55, 70, 79, 119 Froude number, 64, 135
coastal region, 4, 7, 9, 55, 60, 62, 135
COMPUTE, 101 GROUP, 82
convergence, 72, 79
COORDINATES, 27 harbour, 4, 13, 48, 55, 60, 120, 121
Coriolis force, 4, 6, 26
Courant number, 10, 13, 18, 78, 79, 113, 117, INITIAL, 43
120, 124 INPGRID, 32
CURVE, 83 INPTRANS, 42
curvilinear grid, 5, 11–13, 15, 21, 22, 28, 29, instability, 17
31, 34, 36, 38, 39, 46, 81, 82, 103, inundation, 87, 88, 97
142
143
QUANTITY, 85 TABLE, 99
temperature, 7, 14, 15, 26, 42, 43, 65, 75, 94,
radiation, 6, 16, 48, 112 95
144
TEST, 100
TIME INTEGRATION, 78
TMA spectrum, 16, 44, 109
transmission, 7, 34, 62, 108
TRANSPORT, 64
transport, 3, 7–9, 11, 14, 15, 21, 22, 42, 43,
65, 67, 68, 75, 76, 79, 80
triad, 7, 8
triangular grid, 5, 6, 9, 12, 28, 104
turbidity flow, 8, 15, 67
turbulence model, 7, 10, 22, 44, 60–62, 86,
98, 118–120