Speed of sound in solids
A steel bar with a Young's modulus of 2 × 10¹¹ Pa and a density of 8000 kg/m³ carries sound at 5000 m/s. Enter the stiffness and the density of a thin rod to get the speed of a compression wave along it. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Youngs modulus
- 200,000,000,000
- Density
- 8,000
- Speed
- 5,000
- Speed unit
- m/s
- E over rho
- 25,000,000
- Model
- thin_rod_longitudinal
The speed of longitudinal sound waves in a solid rod is a materials and wave-mechanics quantity, not the air-temperature formula people use for dry-air acoustics. This calculator accepts Young’s modulus E in pascals and mass density ρ in kilograms per cubic metre and returns the bar velocity v equal to the square root of E over ρ in metres per second. That one-dimensional rod model is the one used in ultrasonics labs, non-destructive-testing scripts, and introductory continuum-mechanics homework when the specimen is a thin bar and Poisson-ratio lateral inertia can be neglected.
What longitudinal sound speed means in a solid rod
In a thin solid rod, a longitudinal sound wave is a compression-and-rarefaction disturbance that travels along the axis of the bar. When the rod is slender compared with the wavelength and lateral inertia can be neglected, Newton’s second law plus Hooke’s law collapse to the one-dimensional wave equation whose characteristic speed is the bar velocity v equal to the square root of Young’s modulus E divided by mass density ρ.
Young’s modulus is the axial stiffness: the ratio of uniaxial stress to engineering strain in the linear-elastic range, reported in pascals. Density is mass per unit volume in kilograms per cubic metre. Together they set how fast an elastic disturbance can run along the bar: a stiffer material with larger E raises the restoring force for a given strain, so the pulse travels faster; a heavier material with larger ρ raises inertia and slows the pulse.
Typical classroom checks recover well-known orders of magnitude. Steels near two hundred gigapascals and eight thousand kilograms per cubic metre give about five kilometres per second. Many aluminium alloys near seventy gigapascals and twenty-seven hundred kilograms per cubic metre also sit near five kilometres per second because both E and ρ drop together.
This landing is that rod formula only. It is not the dry-air speed of sound from temperature, not a bulk three-dimensional P-wave speed that uses the bulk and shear moduli, and not a transverse string speed from tension over linear density. Those searches have different intents and different inputs.
When density is zero the quotient E over ρ is undefined; when density is negative the radicand is not a physical speed. The calculator rejects those cases instead of returning Infinity or NaN.
Practical tips, units, and related searches
Keep Young’s modulus and density inside the published absolute range so the quotient and square root cannot overflow into non-finite results that the solver must reject. Use consistent SI units: pascals and kilograms per cubic metre yield metres per second. If a datasheet lists E in gigapascals, multiply by one billion before calling; if density is given in grams per cubic centimetre, multiply by one thousand.
Prefer this capability when you already have E and ρ under thin-rod assumptions; if your source is a word problem, extract those two numbers and convert units first. Round-trip checks are easy: recompute E divided by ρ by hand, take the square root, and confirm it equals the published speed within the same twelve-decimal rounding.
What you can do with it
Materials-lab bar-velocity checks
Ultrasonics and NDT notebooks convert tabulated Young’s modulus and density into longitudinal rod speed before comparing pulse-echo transit times on a thin specimen.
Homework for elastic wave speed in a rod
Students enter E in pascals and ρ in kilograms per cubic metre from textbook thin-rod problems and compare hand-written √(E/ρ) against a deterministic result.
FAQ
What is the speed of sound in a solid rod?
For a thin solid rod with Young’s modulus E and mass density ρ, the longitudinal bar speed is v = √(E/ρ). With E in pascals and ρ in kg/m³, v is in metres per second.
What happens if density is zero or negative?
The formula is undefined: zero density would divide by zero, and negative density would make the radicand negative.
What units should I use for Young’s modulus and density?
Convert GPa by multiplying by 1e9 and g/cm³ by multiplying by 1000 before you call.
Is this the same as bulk sound speed in a 3-D solid?
No. Bulk P-wave speed uses the bulk and shear moduli (or Lamé parameters). This calculator is the thin-rod bar velocity v = √(E/ρ), which neglects lateral inertia.
What does the speed of sound in solids calculator cost?
The browser tool is free and runs locally.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/phys/speed-sound-solids \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"youngs_modulus":200000000000,"density":8000}'const res = await fetch("https://api.kit.forhosting.com/phys/speed-sound-solids", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"youngs_modulus": 200000000000,
"density": 8000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/speed-sound-solids",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"youngs_modulus": 200000000000,
"density": 8000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/speed-sound-solids", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"youngs_modulus":200000000000,"density":8000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"youngs_modulus":200000000000,"density":8000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/speed-sound-solids", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"youngs_modulus": 200000000000,
"density": 8000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.speed_sound_solids",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Density that is zero or negative makes the square root undefined, so the task fails with invalid_input rather than inventing an infinite or imaginary speed.
How to call the API and what comes back
Young’s modulus must be non-negative; density must be strictly positive. Values of density whose absolute value is at or below one times ten to the minus fifteen are treated as zero and rejected, matching the product rule that zero or negative ρ makes longitudinal sound speed undefined. Example: two hundred gigapascals and eight thousand kilograms per cubic metre yield speed five thousand metres per second because two times ten to the eleven divided by eight thousand is twenty-five million, and the square root of twenty-five million is five thousand. Send a JSON body with two required finite numbers: youngs_modulus (aliases E, youngs_modulus_pa, modulus, young_modulus) and density (aliases rho, mass_density, density_kg_m3). Absolute values must stay within the published limit of one quadrillion so the quotient and square root remain finite in IEEE double precision on the Worker and in the browser. On success the response echoes rounded youngs_modulus and density, sets speed to v in metres per second, speed_unit to the string m/s, e_over_rho to the E over ρ ratio, formula to the classic v equals square root of E over ρ string, model to thin_rod_longitudinal, message to a short English summary, and steps to an ordered array of substitution lines. Failed validation—missing fields, non-finite numbers, values outside absolute limits, negative Young’s modulus, or zero or negative density—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item.
Practical tips, units, and related searches
Prefer sending JSON numbers rather than pre-formatted strings when you control the client; string numbers are accepted only when they match a strict finite numeric pattern. When teaching, pair examples: two hundred gigapascals and eight thousand kilograms per cubic metre give v equal to five thousand metres per second; zero modulus yields zero speed at every positive density; and density equal to zero demonstrates the hard invalid_input path. This landing targets people searching for a speed of sound in solids calculator, bar velocity from Young’s modulus and density, or longitudinal wave speed in a rod. It is not a dry-air calculator, not a bulk-modulus P-wave tool, and not a taut-string wave-speed helper. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately set density to zero.
Integration use cases
Unit tests for continuum-mechanics helpers
Generate known-good speeds at fixed E and ρ, zero-modulus cases, and deliberate zero-density rejections for coding-kata expected values.