Thermal expansion calculator
A 10 m steel member heated by 50 °C, with a coefficient of 0.000012 per kelvin, grows by 0.006 m to 10.006 m. Enter the initial length, the expansion coefficient and the temperature change to get the change in length and the final length. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Initial length
- 10
- Expansion coefficient
- 0.000012
- Temperature change
- 50
- Length change
- 0.006
- Final length
- 10.006
Thermal expansion is how a solid changes size when its temperature rises or falls. For a rod, rail, pipe, beam, or any other object that is free to grow along one axis, the first-order engineering model is linear: the change in length equals the initial length times the coefficient of linear expansion times the temperature change. This thermal expansion calculator takes those three numbers, rejects a negative initial length because a geometric length below zero is not a physical starting point, and returns the signed change in length together with the final length after the temperature shift. Heating with a positive coefficient produces growth; cooling produces contraction.
How linear thermal expansion is defined from L₀, α, and ΔT
Linear thermal expansion is the one-dimensional first-order model used whenever a solid is free to change length under a uniform temperature shift and stays in a single phase. Write L₀ for the initial length of the rod, rail, pipe, or specimen before the temperature change. Write α for the coefficient of linear thermal expansion of the material, an inverse-temperature number that is typically on the order of ten to the minus six per kelvin for metals and somewhat larger for many polymers.
Write ΔT for the temperature change, which may be expressed in kelvin or in degrees Celsius because an interval of one kelvin equals an interval of one degree Celsius. Length units are whatever you used for L₀; ΔL comes back in the same unit. This calculator evaluates that product and nothing else.
It does not look up α from an alloy name, does not integrate a temperature-dependent α of T curve, does not convert free expansion into constrained thermal stress, and does not apply the two- or three-dimensional factors that turn linear expansion into area or volume expansion.
Where thermal expansion calculations show up in real work
Secondary-school and college physics courses constantly assign problems that give L₀, α, and ΔT and ask for the change in length or the final length, often for steel bridges, aluminium rails, or glass rods. University engineering labs use the same three-number reduction before they introduce constrained expansion, thermal stress, or finite-element temperature loads. Civil and mechanical designers sanity-check expansion joints, pipe runs, and precision machine frames when only free expansion is needed as a first bound.
If you later need area or volume expansion factors, temperature-dependent coefficient tables, unit conversion between metres and feet, or thermal stress under fixed ends, treat those as separate search intents and landings rather than overloading this thermal expansion calculator page.
What you can do with it
Homework and lab answer keys
Compute ΔL = L₀·α·ΔT for textbook free-expansion sets so teachers and auto-graders share one ground truth, including the negative-length rejection.
Expansion-joint and pipe-run checks
Estimate free length change of beams, rails, and pipe runs from design L₀, material α, and a seasonal or process temperature swing.
FAQ
What happens if the initial length is negative?
A negative geometric length is not valid for the linear thermal expansion model, and those calls are not charged.
What units should I use for length, α, and temperature?
Convert before calling if your sheet uses mixed units.
What does the thermal expansion calculator cost?
The browser tool is free and runs locally.
What happens when the material cools down?
Enter the temperature change as a negative number. With an ordinary positive coefficient the change in length then comes out negative, so the piece contracts and the final length is shorter than the initial one.
Does the calculator work out area or volume expansion?
No. It applies the one-dimensional model to a single length. It does not use the factors that turn linear expansion into area or volume expansion, so treat a plate or a tank as a separate calculation.
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/thermal-expansion \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"initial_length":10,"expansion_coefficient":0.000012,"temperature_change":50}'const res = await fetch("https://api.kit.forhosting.com/phys/thermal-expansion", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"initial_length": 10,
"expansion_coefficient": 0.000012,
"temperature_change": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/thermal-expansion",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"initial_length": 10,
"expansion_coefficient": 0.000012,
"temperature_change": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/thermal-expansion", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"initial_length":10,"expansion_coefficient":0.000012,"temperature_change":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"initial_length":10,"expansion_coefficient":0.000012,"temperature_change":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/thermal-expansion", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"initial_length": 10,
"expansion_coefficient": 0.000012,
"temperature_change": 50
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.thermal_expansion",
"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.
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
The same deterministic function powers the free browser tool and the API, so homework checks, lab notebooks, and automated pipelines never disagree on the same inputs.
How linear thermal expansion is defined from L₀, α, and ΔT
The product ΔL = L₀ · α · ΔT is the change in length: positive when a material with positive α is heated, negative when that same material is cooled. A negative initial length is rejected with invalid_input because a geometric length below zero is not a physical starting point for the model; zero initial length is allowed and yields zero change.
What you send and what you get back
Classic textbook checks include a ten-metre steel member with α near twelve times ten to the minus six per kelvin heated by fifty degrees, which recovers a growth of six millimetres; a copper strip cooled by forty degrees; and a zero-coefficient check that returns zero change. Send three finite numbers under the fields initial_length, expansion_coefficient, and temperature_change. initial_length is L₀ in any consistent length unit and must be greater than or equal to zero; aliases length, l0, L0, and original_length are accepted so spreadsheets and typed forms can reuse the same contract. expansion_coefficient is α in inverse kelvin or inverse Celsius and may be positive, zero, or negative; aliases alpha, coefficient, and alpha_linear are accepted. temperature_change is ΔT in kelvin or Celsius degrees and may be positive for heating or negative for cooling; aliases delta_t, dt, dT, and deltaT are accepted. Missing fields, non-numeric strings, NaN, and Infinity fail with invalid_input and are not charged. When initial_length is negative the error message states that initial length is negative, so clients can fix the record rather than guessing. On success the response echoes cleaned inputs, length_change as ΔL, final_length as L₀ plus ΔL, the formula string, and method thermal_expansion. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where thermal expansion calculations show up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Precision-assembly temperature bounds
Turn workshop temperature drift into expected dimensional growth for fixtures and machine frames before measuring scrap.
Technical questions
What formula does this thermal expansion calculator use?
ΔL = L₀ · α · ΔT, where L₀ is initial_length, α is expansion_coefficient, and ΔT is temperature_change. The response also returns final_length = L₀ + ΔL.
Can temperature_change or the expansion coefficient be negative?
Yes. Negative ΔT models cooling; negative α models materials that contract on heating. Both simply reverse the sign of ΔL when the other factors are positive.