# Thermal Expansion Calculator

> Computes how much a length, area or volume of a solid changes with temperature from ΔL = α·L₀·ΔT (area coefficient 2α, volume coefficient 3α), using tabulated linear expansion coefficients for common materials or a custom coefficient.

- Calculator id: `thermal-expansion` · Category: Physics (`physics`) · Tool name: `calculate_thermal_expansion`
- Canonical page: https://tttkmbb.com/physics/thermal-expansion · This document: https://tttkmbb.com/physics/thermal-expansion.md · JSON definition: https://tttkmbb.com/physics/thermal-expansion.json

## Purpose

Computes how much a length, area or volume of a solid changes with temperature from ΔL = α·L₀·ΔT (area coefficient 2α, volume coefficient 3α), using tabulated linear expansion coefficients for common materials or a custom coefficient.

**Use when:** You need the growth or shrinkage of a steel beam, rail, pipe, concrete slab, glass pane or metal part over a temperature change, or the volume change of a solid.

**Do not use when:** The material is a liquid or gas (enter its volumetric coefficient as custom with expansion_type volume, or use ideal-gas-law for gases), the temperature range crosses a phase change, or you need thermal stress in a constrained part rather than free expansion.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `material` | enum: steel \| stainless_steel \| aluminium \| copper \| brass \| concrete \| glass \| pyrex \| pvc \| wood_along_grain \| ice \| custom |  | required | Material, selecting a typical linear expansion coefficient near room temperature; choose custom to supply coefficient_per_k. |
| `coefficient_per_k` | number | 1/K | optional | Linear coefficient of thermal expansion α in 1/K (e.g. 0.000012 for steel); required for material = custom and overrides the preset otherwise. (> 0, max 0.01) |
| `initial_length_m` | number | m | required | Initial length in metres; for expansion_type area give the initial area in m², for volume the initial volume in m³. (> 0) |
| `temperature_change_k` | number | K | required | Temperature rise in kelvin (same as the °C difference); negative for cooling, which gives contraction. (min -1000, max 5000) |
| `expansion_type` | enum: linear \| area \| volume |  | optional, default "linear" | Which dimension expands: a length (α), an area (2α) or a volume (3α of an isotropic solid). |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `coefficient_per_k` | number | 1/K | Linear expansion coefficient used. |
| `coefficient_ppm_per_k` | number | µm/(m·K) | The same coefficient in parts per million per kelvin (× 10⁶). |
| `change` | number | m / m² / m³ | Change in length (m), area (m²) or volume (m³) according to expansion_type; negative for contraction. |
| `change_mm` | number | mm | Length change in millimetres (linear expansion only). |
| `final_length_m` | number | m | initial_length_m + change (linear expansion only). |
| `percent_change` | number | % | change / initial size × 100. |
| `formula_used` | string |  | The expansion formula applied (linear, area or volume). |

## Formula

`linear: change = α × initial_length_m × temperature_change_k; area: change = 2α × A₀ × ΔT; volume: change = 3α × V₀ × ΔT; change_mm = change × 1000; final_length_m = initial_length_m + change; percent_change = change / initial × 100. α (× 10⁻⁶/K): steel 12, stainless steel 17.3, aluminium 23.1, copper 17, brass 19, concrete 12, glass 8.5, Pyrex 3.3, PVC 52, wood along grain 5, ice 51`

First-order (small α·ΔT) expansion of an isotropic solid free to expand; coefficients are room-temperature values from the Wikipedia table and vary with alloy, composition and temperature (steel 11–13, brass 18–19 × 10⁻⁶/K).

## Data Sources

- Wikipedia – Thermal expansion (coefficient table) — https://en.wikipedia.org/wiki/Thermal_expansion (reference, retrieved 2026-09-24)
- HyperPhysics – Thermal expansion — http://hyperphysics.phy-astr.gsu.edu/hbase/thermo/thexp.html (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/thermal-expansion?material=…&initial_length_m=…&temperature_change_k=…`
- `POST https://tttkmbb.com/api/v1/calculate/thermal-expansion` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/thermal-expansion · OpenAPI operationId `calculate_thermal_expansion` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "thermal-expansion", "inputs": {…}}`

## Example

- 10 m steel rail heated by 40 K: inputs `{"material":"steel","initial_length_m":10,"temperature_change_k":40}` → `{"coefficient_per_k":0.000012,"coefficient_ppm_per_k":12,"change":0.0048,"change_mm":4.8,"final_length_m":10.0048,"percent_change":0.048}`
- 1 m³ of aluminium heated by 50 K (volume): inputs `{"material":"aluminium","initial_length_m":1,"temperature_change_k":50,"expansion_type":"volume"}` → `{"coefficient_ppm_per_k":23.1,"change":0.003465,"percent_change":0.3465}`

```
GET https://tttkmbb.com/api/v1/calculate/thermal-expansion?material=steel&initial_length_m=10&temperature_change_k=40
```

## Limitations

The material is a liquid or gas (enter its volumetric coefficient as custom with expansion_type volume, or use ideal-gas-law for gases), the temperature range crosses a phase change, or you need thermal stress in a constrained part rather than free expansion. First-order (small α·ΔT) expansion of an isotropic solid free to expand; coefficients are room-temperature values from the Wikipedia table and vary with alloy, composition and temperature (steel 11–13, brass 18–19 × 10⁻⁶/K). All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why is the volume coefficient 3α?**

Each of the three dimensions of an isotropic solid grows by a factor (1 + α·ΔT); the product is 1 + 3α·ΔT plus terms in (α·ΔT)² that are negligible for the small values of α·ΔT met in practice.

**Is the temperature change in °C the same as in K?**

Yes: a difference of 40 °C is a difference of 40 K, so temperature_change_k can be taken directly from Celsius readings.

**What if the part cannot expand freely?**

It develops thermal stress σ = E·α·ΔT instead (E = Young's modulus); a fully restrained steel bar heated by 40 K sees about 100 MPa, which this calculator does not compute.

## Related

- [Mixing Temperature Calculator](https://tttkmbb.com/physics/mixing-temperature.md) — Temperature reached when bodies exchange heat.
- [Specific Heat Calculator](https://tttkmbb.com/physics/specific-heat.md) — Heat needed to produce the temperature change.
- [Temperature Converter](https://tttkmbb.com/conversion/temperature.md) — Convert temperatures between °C, °F and K.
