Get SWASH at SourceForge.net. Fast, secure and Free Open Source software downloads

Modifications

This page contains a list of additions, changes, compatibility, implementation issues and bug fixes (affecting the user) since version 1.02 (first release as of February 9, 2011).
The current version number of SWASH is 4.01.
Additions

Version 4.01:

  • Two anti-creep methods are included as an option. Since SWASH makes use of the terrain-following coordinates it necessitates the transformation of the transport equation for salt, heat or sediment due to the curved z-planes. This includes some curvature terms, 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 local transformation. An alternative is the method of Stelling and Van Kester (1994), which computes the horizontal diffusion along strictly horizontal planes.
  • A subgrid approach is included as an option to resolve the ambient flow and pressure field with a different resolution in the vertical. 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.
  • Bottom roughness based on Colebrook-White method is included as an option.
  • Inertia force due to vegetation is included as an option.
  • Cohesive suspended sediment transport is included.
  • Depth-limited wave growth by wind is included.
  • A new output parameter is added: vorticity of the depth-averarged flow.

Version 3.14:

  • The reduced pressure equation method is included as an option. 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 dimension of the Poisson matrix. This leads to less computational cost and memory. In spite of this reduction it can still provide an accurate description of dispersive waves.
  • An option to specify the bottom level in the centers of computational cells is added. To determine the total water depth at water level points, a bottom level in the cell center is required. As a rule, we take the average bottom level from the surrounding bottom corners to determine the total depth at cell center. However, in the vicinity of steep bottom slopes, use of the average bottom level may lead to an inaccurate representation of the flow. In that case it is more appropriate to take the bottom level at cell center being equal to the minimum of the surrounding bottom levels. Other alternatives (a maximum instead of a minimum and shift from a corner to cell center) are also included.
  • Mass exchange of suspended sediment between the bed and the flow is included. Only suspended load for noncohesive sediment (e.g. sand) is modelled. The pickup function approach is employed. This function models the amount of sediment eroded from the bed into the fluid, i.e. upward sediment flux, and is related to the bottom shear stress. The downward sediment flux depends on the settling velocity only.
  • The linearized Riemann invariants to be used as boundary conditions are included. This option is applicable for a subcritical flow in relative deep waters. Examples are tidal flows in a continental shelf or in a harbour.
  • Output of the physical vertical velocity in case of a hydrostatic computation is included.

Version 2.00:

  • Wave damping induced by aquatic vegetation (mangroves, salt marshes, etc.) at variable depths is included as an option. The calculation of this type of dissipation is specified by the drag coefficient, the stem diameter of plant (schematised as a cylinder), the number of plants per square meter and the vegetation height. In addition to the vertical variation, the possibility of horizontal variation of the vegetation characteristics is included as well. This inclusion enables the vegetation in a given region to be varied so as to reflect real density variations in the field.
  • A number of transport equations is added. Specifically, the user has the option to include the equations for conservative transport of salinity, heat and/or suspended sediment. These transport equations are coupled with the momentum equations through the baroclinic forcing term, whereas the equation of state is employed that relates density to salinity, temperature and sediment. This enables the user to simulate small-scale density driven flows (e.g. unstable stratified flows, turbidity flows, internal waves) in coastal seas, estuaries, lakes, and rivers.
  • The equation for passive tracer is also included. This means that the density of water remains unchanged, whereas the transport is only influenced by the flow and turbulent dispersion.
  • Output of transport constituents is included as well (depth-averaged, per layer, and/or time-averaged).
  • Both vegetation and buoyancy production rates of turbulent kinetic energy are taken into account in the standard k-ε model.
  • The air pressure at sea surface is optionally included. So, with SWASH the simulation of storm surges based on space varying wind and atmospheric pressure can be carried out as well. This underlies the capability of SWASH of simulating processes at scales that range from centimeters to tens of kilometers and from seconds to hours.
  • An alternative to the many well-known wind drag parameterizations (Wu, Garratt, Smith and Banke, etc.) is added. It is based on a review of a large number of more recent observations, and will gives lower drag values for relatively high wind speeds. This parameterization, based on a second order polynomial fit, has been published recently in the next article.
  • The use of a semi-implicit time integration as an alternative to the explicit time stepping is added. This time integration is based on the θ-method for both the surface level gradient and the continuity equation. 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 explicit one, and may thus be beneficial to large-scale applications such as tidal flow, and wind and density driven circulation.

Version 1.20:

  • If the user wants so, the computational grid can be repeated in one specific direction. It means that information leaving at one end of the domain enters at the opposite end. So, the wave field is periodic in one direction with the length of the domain in that direction.
  • Second order bound long waves can be added to the first order irregular waves at the wave maker.
  • New output parameter BRKP which indicates areas where wave breaking occur. In this way white spots can be visualised.

Version 1.10:

  • Partial reflection and transmission through porous structures, like rubble-mound breakwaters in harbors, can be specified. Both submerged and emerged structures can be schematized. This also includes the interaction of the flow with the rocks in the porous structure. The implemented approach is based on the well-known Darcy and Forchheimer formulation. For details, see the User Manual.
  • Logarithmic wall-law for the standard k-ε model can be employed.
  • Time-averaged velocities, like undertow, and time-averaged turbulence quantities can be outputted. Also significant or RMS wave height and wave-induced setup can be plotted as well.
  • A seed of the random number generator used to select phases of the Fourier components can be specified. Hence, different seeds or realisations of the same boundary wave spectrum can be obtained.
  • An alternative preconditioner for solving the pressure Poisson equation is included, the so-called ILUD preconditioner. This preconditioner scales much better than the classical ILU one when running parallel.

Version 1.05:

  • Effects of vertical turbulent mixing are included. These are modelled by means of the standard k-ε model.
  • Output of turbulence quantities, k, ε and νt, is included as well.
  • Oblique waves can now be imposed at the wavemaker.
  • Irregular, multidirectional waves described by any 2D spectrum can now be imposed. They may be vary along the boundary as well.
  • SWASH allows nesting in SWAN.

Version 1.02:

First release of SWASH.
Changes

Version 4.01:

  • The modelling of porosity layers has been changed, as follows:
    • empirical formula's of Engelund (1953) for frictional forces are replaced by Van Gent (1995)
    • values of dimensionless friction parameters adapted accordingly
    • effect of added mass included
    • extension w-momentum equation with frictional forces
    • extension k-ε model with closures due to porosity
  • The CFL criterion for explicit layer-averaged models is adapted by replacing the depth-averaged velocity by the maximum of the velocity in the water column.
  • Use double precision for time coding.

Version 3.14:

  • The split preconditioner ILUD is replaced by the right preconditioner ILUD.
  • The weighting between ILU(D) and MILU(D) has been adapted for a better convergence.
  • Small updates in the parallel code.
  • Crop output of PRINT file to minimum when requested.

Version 2.00:

No changes.

Version 1.20:

  • In case of three equidistant layers, a numerical approximation of dispersion relation is now used.
  • More flexible buffering of data exchange in case of parallel runs.
  • Non-hydrostatic pressure gradient in depth-averaged mode is made conservative at discrete level.
  • Pressure gradient normal to the bottom is set to zero.

Version 1.10:

No changes.

Version 1.05:

By considering the similarity between breaking waves and bores, energy dissipation due to wave breaking is inherently accounted for. However, at the front face of the breaking wave, pressure must be hydrostatic. The command BREAK controls this. Note that use of the mixing length model, as advised by the previous SWASH version 1.02, is not encouraged anymore.
Compatibility

Version 4.01:

SWASH 4.01 is fully compatible with version 3.14.

Version 3.14:

SWASH 3.14 is fully compatible with version 2.00.

Version 2.00:

SWASH 2.00 is fully compatible with version 1.20.

Version 1.20:

SWASH 1.20 is fully compatible with version 1.10.

Version 1.10:

SWASH 1.10 is fully compatible with version 1.05, except for the command OFF BREAK, which has been removed.

Version 1.05:

SWASH 1.05 is fully compatible with beta version 1.02.
Implementation

Version 1.05:

SWASH can be run in parallel under Windows XP/Vista/7 using MPICH2 for both 1DH and 2DH, either in single- or multi-layered mode. See the Implementation Manual for further information.
Bug fixes

The purpose of describing the bug fixes in terms of problems solved, is to enable the user to identify previous SWASH runs that may have encountered these problems (noticed at the time of running or in hindsight with this (new) information). All the bug fixes have been implemented in the current version 4.01.

Solved in version 4.01:

  • change in flux limiter function in case of linear κ-scheme
  • small fix transverse velocity gradient near closed boundaries
  • fix in sign for weakly-reflective boundary conditions at east and south boundaries
  • in case exception value is zero, not write to Matlab as NaN
  • fix in solute transport at dry points
  • take into account heading per frequency in case of wave spectra at boundary
  • two small fixes in time-averaging the surface elevation meant for output
  • fix in computing directional spreading to preserve symmetry at boundaries
  • fix in implementation of the MacCormack scheme applied to momentum equations
  • small fix in log-law boundary condition

Solved in version 3.14:

  • bug fix in sponge layers as applied at west and south borders
  • bug fix with respect to time stepping of output files for long runs
  • bug fix in sponge layers for 2D simulations
  • small bug in b.c. for turbulent quantities at free surface
  • small bug in outputting friction velocity
  • Neumann bc for transport constituents at closed boundaries
  • correction read input files in case of instationary computation or multi-layered
  • correction time stamp for transport constituents
  • correction Gregorian date of December 31 for years 1599, 1999, 2399, etc.
  • small correction wind direction
  • small correction check wetting and drying

Solved in version 2.00:

  • Bug fix in energy head computation.
  • Small correction in porosity in case of submerged breakwater.
  • Small correction in update boundary condition in case of spherical coordinates.
  • Bug fix in calculating sponge layers in case of parallel runs.
  • Bug fix of computing porosity in the continuity equation.
  • Bug fix in periodic boundary conditions to prevent boundary layer effect.
  • Bug fix in dimension of output quantity pressure.
  • Small correction in computing second order bound long waves at wavemaker boundary.
  • Small correction in computing horizontal eddy viscosity.
  • Small correction in searching for point in curvilinear grid.

Solved in version 1.20:

  • Transformation of velocities to contravariant physical components is corrected.
  • Definition of mean wave period at open boundary is corrected.
  • Distinction between depth- and layer-averaged output quantities for tables is corrected.
  • Two small fixes on use of random seed.
  • Two small fixes on computing phase for synthesizing time series of surface elevation.
  • A small correction in the interpolation procedure as applied to computational grid.
  • ILU preconditioning is corrected when the box scheme is activated
  • merging FRAME output data in case of parallel computing is corrected
  • unexpected behaviour removed when first output time is before start of computation
  • open statement for existing Matlab file which should be replaced
  • Julian date conversion is corrected (in particular for years 101, 102 and 103)
  • several uninitializations removed
  • some other bug fixes not relevant for SWASH (mainly unstructured mesh implementation)
  • No effect of weakly reflection in case of spectrum on some segments of boundary. This is corrected.
  • Timestamps for stationary output parameters have been removed.
  • For porosity and structure height, SWASH takes 1 and 99999 (i.e. emerged), respectively, for points outside the input grid.

Solved in version 1.10:

  • A small bug fix on processing boundary conditions when running parallel.
  • Some bug fixes based on bound checks, floating point exceptions, etc.

Solved in version 1.05:

  • Use of random seed in case of imposing wave spectra is corrected.
  • Exchanging very large data at subdomains for very large parallel runs with multiple layers is now possible.
  • Handling exception values for curvi-linear grids is corrected.
  • Weighting of boundary values in case of interpolation is corrected.