ForHosting KIT · Developer Utilities

Shallow water wave speed calculator

The shallow water wave speed calculator finds the phase speed of a long surface wave from the local gravitational acceleration and the still-water depth.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

It evaluates the standard shallow-water relation c = sqrt(g h), reports the result in metres per second, and shows the substituted values used in the calculation. This approximation is useful for tides, tsunami estimates, coastal modelling, and introductory fluid mechanics when the wavelength is much greater than the water depth. Enter a positive depth and optionally replace standard Earth gravity with a local value.

Understand the shallow-water approximation

A water wave is called shallow-water or long not because the water must look shallow to a person, but because its wavelength is large compared with the water depth. In that regime, pressure is approximately hydrostatic through the water column and horizontal motion extends nearly from the surface to the bed. Those assumptions reduce the dispersive surface-wave relation to the compact expression c = sqrt(g h). Here c is phase speed in metres per second, g is gravitational acceleration in metres per second squared, and h is still-water depth in metres. The result does not depend directly on wave amplitude, period, or wavelength under this approximation. A common practical guideline is that shallow-water behaviour is strong when depth is less than roughly one twentieth of wavelength, although the precise tolerance depends on the accuracy required. The calculator therefore reports the mathematical result but cannot decide whether the regime is valid without wavelength information. Treat the output as a long-wave estimate, not as a universal speed for every ripple or swell at the entered depth.

Enter depth and gravity consistently

Provide water_depth as a positive depth measured vertically in metres. Use a representative still-water or mean depth for the reach being studied rather than instantaneous wave height. Gravity defaults to 9.80665 metres per second squared, the conventional standard value for Earth, but you may supply another positive value for a location-specific approximation, a laboratory model, or another planetary body. The units matter because the returned phase speed is in metres per second: entering centimetres as though they were metres increases the implied depth by a factor of one hundred and the speed by a factor of ten. The calculation multiplies gravity by depth and takes the positive square root. For example, increasing depth by a factor of four doubles wave speed, while doubling depth increases speed only by the square root of two. Zero and negative values are rejected because this physical model requires positive gravity and a positive fluid depth. Non-finite values and values outside the declared safety limits are also rejected instead of producing misleading JSON such as Infinity or NaN.

Interpret the result in real settings

The returned phase_speed_m_s describes how a constant phase of an ideal linear long wave travels through uniform water. In the non-dispersive shallow-water limit, group speed is also approximately equal to this phase speed, so the value is often used as a first estimate for the propagation of tidal signals and tsunami wave packets. Real coastlines require more care. Depth varies along a route, currents add or subtract from the ground-relative propagation speed, and friction, refraction, shoaling, breaking, finite amplitude, and complex bathymetry can all affect observed arrival and waveform. For a varying-depth path, calculate a local speed from each depth segment and sum each segment length divided by its local speed to estimate travel time; taking one average depth can hide important slow regions. For shorter waves, use the full linear dispersion relation instead of this formula. The response includes the inputs, a substituted formula string, and a validity reminder so results remain auditable when copied into a worksheet, report, teaching example, or automated coastal-analysis pipeline.

Estimate long-wave travel time

Compute a local speed for each bathymetric segment, then divide segment length by speed to build a first-order tsunami or tide arrival estimate.

Check coastal model inputs

Compare a simulated long-wave propagation speed with the analytic sqrt(g h) benchmark for a uniform-depth test case.

Teach depth dependence

Show why long waves travel faster in deeper water and why quadrupling depth, rather than doubling it, doubles phase speed.

What does the calculator cost?

It runs free in the browser on this page. API requests cost $0.002 each.

What formula does it use?

It uses c = sqrt(g h), where c is phase speed, g is gravitational acceleration, and h is still-water depth.

When is the formula valid?

It is valid for long waves whose wavelength is much greater than the water depth. A commonly used guideline is depth below about one twentieth of wavelength.

What units should I enter?

Enter depth in metres and gravity in metres per second squared. The result is returned in metres per second.

Does the result include currents?

No. It is the wave speed relative to still water under the ideal shallow-water approximation; currents can change ground-relative speed.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/optics/shallow-water-wave-speed

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/optics/shallow-water-wave-speed \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"water_depth":10}'
{
  "water_depth": 10
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "optics.shallow_water_wave_speed",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →