This set of functions simply provides an easy way to work with the dispersion relation of surface waves, given by
omega(k) = sqrt ( tanh(k*h0) * (g*k + gamma*k^3/rho))
where omega is the pulsation (in rad/s), k the wavenumber (in 1/m), h0 the depth, g the gravity, gamma the surface tension and rho the density.
The function kfromw allows one to invert the dispersion relation, i.e. to give the value of omega for a given value of k.
(For infinite depth, kfromw simply inverts the cubic polynomial. For finite depth, a zero-finding method is used, starting from the infinite depth solution).
By default, the physical parameters (liquid densities, surface tension, etc.) are set for an air-water interface under usual conditions, with a water layer of infinite depth ("deep water waves"). Use the function wave_parameter to change those properties.
See the published file "demo" to learn more about this package.
Frederic Moisy (2022). Dispersion relation for water waves (https://www.mathworks.com/matlabcentral/fileexchange/27391-dispersion-relation-for-water-waves), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!