# Dispersion

Uses a linear dispersion relationship to compute wave-frequency from wave-number

Controller: **CodeCogs**

doublek_to_w( | double | k | |

double | depth` = 0` | ||

double | gravity` = 9.8066` | ) |

This function solves the linear dispersion equation, , to obtain wave-frequency from a given
wave-number, using a very simple rearrangement
where

*w*is wave-frequency,*k*is wave-number and*g*is gravity. In deep water (represented with d<=0), this solution reduces to The opposite of this function is**dispersion_w**### Parameters

k () is wave-number. [rad/m] depth the depth of the water to mean sea level. A value of zero or less corresponds to deep water. [m] gravity (default 9.8066). [m/s ^{2}]

### Returns

- wave-frequency (). [rad/s]

##### Source Code

Source code is available when you agree to a GP Licence or buy a Commercial Licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.

## K To W

doublek_to_w( | double | a | |

double | k | ||

double | depth` = 0` | ||

double | gravity` = 9.8066` | ) |

This function solves a 2nd order dispersion relationship to more accurately compute the relationship between wave-frequency and wave-number for the specified wave amplitude

*a*. The solution is based on work by Dalrymple, who derived:Purchase a Licence for more information.

In deep water(represented with d<=0), this solution reduces to As in the linear dispersion relationship.Example:

##### Example - Second order Wave Number to Wave Frequency

Problem

Compute the second order Wave Number from Wave Frequency in water of depth 2m.

Workings

#include <stdio.h> #include <codecogs/engineering/fluid_mechanics/waves/dispersion.h> using namespace Engineering::Fluid_Mechanics::Waves; int main() { double amp=3; // 3 meters printf(" k w "); for(double k=0.01; k<1;k+=0.1) { printf("\n %.6lf", k); double w=k_to_w(amp,k,2); printf(" %.3lf", w); } }

### Parameters

a amplitude of component with wavenumber *k*. [m]k wave-number of component (). [rad/m] depth the depth of the water to mean sea level. A value of zero or less corresponds to deep water. [m] gravity (default ). [m/s ^{2}]

### Returns

- wave-frequency (). [rad/s]

##### Source Code

Source code is available when you agree to a GP Licence or buy a Commercial Licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.

## W To K

doublew_to_k( | double | w | |

double | depth` = 0` | ||

double | gravity` = 9.8066` | ) |

Finds the wave-number associated with a particular wave-frequency, using this 1st order dispersion equation,
to obtain wave-number from a given wave-frequency.
In Deep water, this equations reduces to , which can obviously solved directly.
For shallow water, an iterative approach must be used. For each iteration, we calculate the residual error:
where

*w*is wave-frequency,*k*is wave-number and*g*is gravity. We then seek to minimise ε using the first derivative . This convergence of this error function is fairly rapid, with poorest conversion, 8 iterations in water 2m deep (for 6dp precision) occurring when*w*is small i.e.*w*<=0.1. When*w=1*.5 only 4 iterations are needed, while*w>3*.5 needs only 2 iterations. Shallow water naturally requires more iteration. If your doing many calculation in either shallow water or very long wave periods (>30s), then you might want to consider fine tuning this function. This relationship can me use to move from the wave-period () to the wave-length () of a water wave. This is also shown graphically in the following figure: The opposite of this function is**dispersion_k**Example:

[metric]

##### Example - First order conversion of Wave Frequency to Wave Number

Problem

Compute Wave Frequency from Wave Number in water of depth 2m.

Workings

#include <stdio.h> #include <codecogs/engineering/fluid_mechanics/waves/dispersion.h> using namespace Engineering::Fluid_Mechanics::Waves; int main() { printf(" k w recalculated k"); for(double k=0.01; k<1;k+=0.1) { printf("\n %.6lf", k); double w=k_to_w(k,2); double k2=k_to_k(w,2); printf(" %.3lf %.6lf", w, k2); } return 0; }

Solution

k w recalculated k 0.010000 0.044 0.010000 0.110000 0.483 0.110000 0.210000 0.904 0.210000 0.310000 1.294 0.310000 0.410000 1.648 0.410000 0.510000 1.962 0.510000 0.610000 2.241 0.610000 0.710000 2.489 0.710000 0.810000 2.710 0.810000 0.910000 2.910 0.910000

### Example 1

### Parameters

w () is wave-frequency, usually written using (omega). depth (m) define the depth of the water to mean sea level. A value of zero or less corresponds to deep water. gravity (default ).

### Returns

- wave-number ().

##### Source Code

Source code is available when you agree to a GP Licence or buy a Commercial Licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.