What is COULWAVE and what can it do?
COULWAVE is a free surface wave model. It solves various depth-integrated, long-wave based equation models, including the nonlinear shallow water wave equations and a number of the weakly dispersive Boussinesq-type equations. The primary applications for COULWAVE include landslide tsunami generation and propagation, nearshore tsunami evolution and inundation, and nearshore wind wave modeling. The numerical scheme uses a 4th order finite difference scheme for the spatial derivatives, and a 4th order iterative predictor-corrector scheme for the time integration.
What platforms does COULWAVE run on?
COULWAVE is written in Fortran90 and has been tested on Windows and various Linux operating systems. In Windows, the code has been compiled with Visual Fortran, Intel Fotran, and Portland Group Fortran. In Linux, tested compilers are Intel and Portland. Optimum performance is found with the "Full Optimizations" in Visual Fortran ("Maximum Optimizations" can cause code crashes), using the compiler option "-fastsse" with the Portland compiler, and using "-O4" with the Intel compiler. The parallel version requires the inclusion of MPI libraries during compilation, such as MPICH and LAM.
What are its main features?
The main features of this code center on its ability to simulate large domains (10's of million of grid points)
What does COULWAVE need as input?
The model requires a specification of the incident wave condition, the bathymetry/topography, and boundary conditions. Input is facilitated through a set of Matlab scripts and a text-based user interface. Consult the Users Manual for instruction.
What does COULWAVE create as output?
The model outputs spatial snapshots of free surface elevation, mid-depth horizontal velocity, free surface velocity, eddy viscosity, and depth-averaged vorticity. The output frequency is user defined. The user can also choose to write up to 10,000 time series of free surface and mid-depth horizontal velocity to file.
How do I try it out?
Download, compile, and run. Start with one of the given examples.
Are there any restrictions on COULWAVE use?
No restrictions - please use the same text as for SPhysics
How do I visualize the results?
Matlab scripts are provided for plotting the output. Output files are either ASCII or unformatted binary Fortran files.
Who wrote COULWAVE?
The code was originally authored by Patrick Lynett as a graduate student under the advisement of Philip Liu at Cornell University in 2000. At this time, the code was primarily used to simulate the waves generated by earthquakes and submarine landslides, with a focus on accurate prediction of the shoreline motion. The highly-dispersive, multi-layer Boussinesq theory was incorporated into COULWAVE in 2002, initiating the use of the model for simulation of wind waves. COULWAVE traveled to Texas A&M University with Lynett, and has been under development since then by Lynett and his students. Notable modifications of the code include the MPI-based parallelization done by Khairil Sitanggang, and the transition to a finite volume scheme with the direct inclusion of weak turbulent effects by Dae-Hong Kim.
Has COULWAVE been validated?
COULWAVE has been extensively validated and published since 2002. To date, 16 journal publications have presented COULWAVE comparisons on topics such as long wave and wind wave runup, wave breaking, wave induced setup and currents, wave interaction with irregular bathymetry, nearshore spectral transformation, and implusive wave generation.
What if I find a bug in the code?
Contact the code developer and administrator, Patrick Lynett (firstname.lastname@example.org).
How can I contribute to the development of COULWAVE?
The code is open source. Users are encouraged to manipulate the code to their needs. New features, such as modified derivative treatments or methods to simulate the motion of landslides, are welcome. Modifications which require a re-benchmarking will be slow to be integrated, while procedural additions can be added quickly after some review.