Falk Feddersen: funwaveC Boussinesq Wave/Current/Tracer/Drifter model

funwaveC is a phase-resolving Boussinesq model for surfzone waves and currents. It also has modules for 3 unique tracers and drifters. The model is similar to the Boussinesq models FUNWAVE (University of Delaware) and COULWAVE (by Patrick Lynett, Texas AM University). Currently these features are implemented:

  • Options for Nwogu Boussinesq dynamics, nonlinear shallow water equations, and linear shallow water equations dynamics
  • not well tested option for Wei & Kirby dynamics
  • Wave maker: monochromatic and random directionally spread waves
  • Runup
  • Sponge layers
  • Zelt, Kennedy, and Lynett type wave breaking
  • Drifters
  • 3 unique depth-integrated tracers.

Research Projects

The model has been used in a number of research projects. In particular in the following papers

In addition, researchers in Stanford's Environmental Fluid Mechanics Laboratory are currently using funwaveC to model waves and flow on a atoll reef system.

Model Examples

HB06 Dye Releases

The tracer modules have been used to simulate surfzone dye transport and dispersion from the HB06 experiment. An example shown at a ONR meeting in the summer 2010 is shown below.


The animation shows funwaveC simulated (left) tracer and (right) vorticity as a function of alongshore and cross-shore coordinates for R6 (Oct 11th 2006) from the HB06 experiment (see the Clark et al. JGR papers above). Cross-shore coordinate x=0 corresponds to the shoreline, and the dashed gray line indicates the extent of the surfzone.

Simulating Wave Quality at Lower Trestles

The funwaveC model has been used to model the wave quality at Lower Trestles CA - one of the best surf spots in the world.


This is a simulation of a set of waves breaking at Lower Trestles using the funwaveC model. Silver color is the wave face and the wave goes blue-ish when wave breaking is occurring. The view is intended to mimic the view one gets of Lowers from Basilone road.





Lower Trestles simulation: Top down view of (left) sea-surface elevation and (right) whitewater (white, non-zero eddy viscosity) overlaid over depth contours (thin curves) for random, directionally spread incident SW swell.

Modeling Runup on a planar slope

With funwaveC version 0.3.0, runup is now implemented. Below are model simulations on a planar beach with slope 0.025, in a narrow wave flume, for both monochromatic and random waves

Monochromatic Waves

An example for monochromatic waves can be seen in the movie below.


This is an animation of (top) free-surface elevation (eta, blue) over a linear bathymetry (black) versus cross-shore coordinate. The horizontal dashed line indicates the still water level. Red indicates where wave-breaking is active. The linear beach slope is 0.025. The normally-incident waves are monochromatic with wave period T=6 s and wave height Hs=0.8 m. The runup method is based on that of Salmon (J. Marine Res., 2002). Runup has not yet been extensively tested.

Random (narrow-banded) Waves

Here is an example for random (narrow-banded in frequency) waves a the start of a model simulation


This is a random wave animation of free-surface elevation (eta) over a linear bathymetry and (bottom) total water depth versus cross-shore coordinate for the first 300 seconds of model run time. The simulation begins when waves are about to reach the shoreline (20 sec). The horizontal dashed line indicates the still water level. The runup method is based on that of Salmon (J. Marine Res., 2002), and has a minimum thin-water depth of 2 cm. Red indicates where wave-breaking is active. The planar beach slope is 0.025. The normally-incident waves are random with wave height Hs=0.8 m, period T=6 s, and group bandwidth of 100 sec. The green diamond indicates the location of the toe of the runup, defined here as 6 cm water depth. In this simulation, the setup has to spin up.

Here the random (narrow-banded in frequency) waves simulation has spun up (1700 sec or 28 min of model time)


This is a random wave animation of free-surface elevation (eta, in blue) over a linear bathymetry (black) versus cross-shore coordinate for the first last 300 seconds of model run time (1700-2000 sec). The horizontal dashed line indicates the still water level. The runup method is based on that of Salmon (J. Marine Res., 2002), and has a minimum thin-water depth of 2 cm. Red indicates where wave-breaking is active. The planar beach slope is 0.025. The normally-incident waves are random with wave height Hs=0.8 m, period T=6 s, and group bandwidth of 100 sec. The green diamond indicates the location of the toe of the runup, defined here as 6 cm water depth. At this point (1700 s into the model run) the model has spun up and there are significant IG oscillations in the runup.

It is interesting to look at the timeseries of the cross-shore location of the toe of the runup (diamonds in the movies above).

As expected, the long-period (100 sec) oscillations in runup excursion dominate over the sea-swell band. Negative x corresponds to onshore locations. The mean runup toe is indicated by the dashed green line. The runup oscillation period corresonds to the sea-swell band wave group time scale of 100 sec.

Modeling 2D Runup with Random Directionally Spread Waves on HB06 bathymetry

Here funwaveC was run on the R4 dye-release case from the HB06 experiment (see Clark et al. JGR 2010). This case was already simulated with the previous funwaveC version that did not include runup (Feddersen et al. JGR 2011 in press). Realistic bathymetry profile was used in this run. The incident waves are random and directionally spread with incident wave height about Hs=1 m. The model directional wave moments match the observations.

1D cross-shore slice of waves and runup


This is a random wave animation of a 1D cross-shore slice of free-surface elevation (eta) over a bathymetry from Huntington Beach (specifically R4 from the HB06 experiment; versus cross-shore coordinate for the first 500 seconds of model run time. Note the cross-shore coordinate x is negative farther offshore. The simulation begins when waves are about to reach the shoreline (20 sec). The horizontal dashed line indicates the still water level. The runup method is based on that of Salmon (J. Marine Res., 2002), and has a minimum thin-water depth of 4 cm. Red indicates where wave-breaking is active. The green diamond indicates the location of the toe of the runup, defined here as 15 cm instantaneous water depth. The results are analogous to the more idealized situation above

Runup excursion as a function of the alongshore


In this animation, the HB06 R4 runup excursion at 10 cm (blue) and 15 cm (red, also the green diamond in the previous movie) is shown as a function of alongshore distance. The alongshore domain of this simulation is 750 m. The directionally spread random wave field induces a significant amount of alongshore structure in the runup.

Model Details

The code is written in C and is highly portable. The code has been compiled on linux, Mac OS X, and Solaris systems. It should compile on any flavor of *nix and also on windows (with cygwin) with a modern build system. Some familiarity with unix build tools such as make is helpful. The code does require that the glib and gtk+ libraries (version 1.2.X) are installed. They are typically installed on most linux and unix systems. Mac OS X versions are available via fink (finkproject.org)

There are a number of test cases in the tests directory to play with. The code is still under development, however it may be of interest to others.

Download

The current version (funwaveC-0.3.4) source code is available as a tarred and gzipped file funwaveC-0.3.4.tar.gz.
Note that the model (linux versioning number system is used) but still rather useful. A rough manual is available as pdf
funwaveC_manual.pdf
which can be built in the doc directory with LaTeX.

The code released as open source software licensed under the GNU GPL. Contact me if you find it useful, have problems, fix something, or want a feature.