Thermal energy calculator
Warming 2 kg of water by 10 °C, with a specific heat of 4184 J/(kg·K), takes 83680 J. Enter the mass, the specific heat and the temperature change to get the energy absorbed, or released if it cools. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mass
- 2
- Specific heat capacity
- 4,184
- Temperature change
- 10
- Thermal energy
- 83,680 J
- Thermal energy joules
- 83,680
When a body warms or cools without melting, boiling, or otherwise changing phase, the energy that accompanies that temperature change is thermal energy, written Q and computed as mass times specific heat capacity times temperature change. With mass in kilograms, specific heat in joules per kilogram-kelvin, and ΔT in kelvin or the same numerical Celsius interval, Q is in joules. Students checking homework, teachers building answer keys, HVAC designers sizing heaters, and process engineers sketching batch heat loads all need that number from three known quantities.
What thermal energy Q = mcΔT means and which quantities you send
Thermal energy in the sense of this calculator is the energy transferred as heat when a body changes temperature at constant specific heat, without a phase change. The textbook relation is Q equals m times c times ΔT. Mass m is how much material is present; specific heat capacity c is the energy needed to change the temperature of one unit of mass by one degree; temperature change ΔT is the final temperature minus the initial temperature.
A one-degree Celsius interval equals a one-kelvin interval, so you may use either scale for the delta alone. Positive ΔT with positive c means the body absorbs energy (heating). Negative ΔT with positive c means the body releases energy (cooling), and Q is then negative.
Search intent for this landing clusters around phrases such as thermal energy calculator, thermal energy from mass and temperature change, Q equals m c delta T in joules, energy to change temperature, and mcΔT calculator. People want a numeric answer they can check against a worksheet, embed in a lab report, or feed into a larger pipeline—not only a reminder that the formula exists.
Units stay consistent with whatever basis you chose: kilograms with joules per kilogram-kelvin and kelvin (or Celsius difference) yield joules; grams with joules per gram-kelvin also yield joules. Any coherent set works if you keep the product dimensionally honest. This page does not look up handbook tables by material name, convert calories for you, or add latent heat at melting or boiling plateaus; it answers the algebraic product that physics and engineering sheets call thermal energy for a temperature change.
What you can do with it
Homework and lab calorimetry drills
Students and graders confirm thermal energy Q for given mass, specific heat capacity, and temperature change, with clear rejection when mass is negative or a field is missing.
Heater sizing and process sketches
Quick structured joule estimates for raising a known mass through a known ΔT without standing up a full heat-transfer stack.
FAQ
Which formula does the calculator use?
Constant specific heat, no phase change: Q = m · c · ΔT. With SI-coherent inputs the result is in joules.
What happens if mass is negative?
Negative mass is rejected and those calls are not charged.
Is the thermal energy calculator free?
The browser tool runs free on your device.
Can temperature change be negative?
Yes. A negative ΔT models cooling and yields a negative Q when specific heat is positive, meaning energy released by the body.
Can I use degrees Celsius for the temperature change?
Yes. A change of one degree Celsius is the same size as a change of one kelvin, so the difference works on either scale. Just enter the difference between final and initial temperature, not a single reading.
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-energy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass":2,"specific_heat_capacity":4184,"temperature_change":10}'const res = await fetch("https://api.kit.forhosting.com/phys/thermal-energy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass": 2,
"specific_heat_capacity": 4184,
"temperature_change": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/thermal-energy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass": 2,
"specific_heat_capacity": 4184,
"temperature_change": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/thermal-energy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass":2,"specific_heat_capacity":4184,"temperature_change":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass":2,"specific_heat_capacity":4184,"temperature_change":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/thermal-energy", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mass": 2,
"specific_heat_capacity": 4184,
"temperature_change": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.thermal_energy",
"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
This calculator validates mass, specific heat capacity, and temperature change, rejects a negative mass with invalid_input, multiplies the three values deterministically, and returns structured JSON with thermal energy in joules plus the echoed inputs and the formula.
What thermal energy Q = mcΔT means and which quantities you send
Delivering mass, specific_heat_capacity, temperature_change, thermal_energy, thermal_energy_joules, formula, unit, and method as JSON makes the result easy to paste into notes, diff in automated tests, or reuse across languages without reimplementing the arithmetic.
How this calculator validates input and applies Q = mcΔT
Numeric strings that parse to finite numbers are accepted so forms and CSV-style pipelines can pass values without an extra cast. Zero mass is allowed and yields zero thermal energy, which is the physically honest empty-body result. Temperature change may be signed: positive ΔT means heating and negative ΔT means cooling. Specific heat may be any finite number; ordinary materials are positive, and a positive c with a positive ΔT produces a positive Q. There is no phase-change latent heat, no temperature-dependent c(T) table, no convection or radiation loss, and no unit conversion service; this is ideal constant-c thermal energy from the three known quantities. Magnitudes above the published bound are rejected for the same reason: a thermal-energy landing should fail closed, not emit silent overflow. Send a JSON body with required fields mass, specific_heat_capacity, and temperature_change. Every field must be finite: missing fields, empty strings, non-numeric text, NaN, and Infinity all fail immediately with invalid_input before any result is returned, and failed validation is not charged. Aliases are supported: m for mass; c and specific_heat for specific heat capacity; delta_t, deltaT, dT, and delta_temperature for the temperature change. Mass must not be negative: a negative mass is always rejected as invalid_input because inertial mass cannot be negative in this model. After validation, the engine multiplies the three values and rounds to a stable decimal precision so the same input always yields the same JSON across JavaScript engines. If the product overflows to Infinity, the request fails with invalid_input rather than returning a non-finite energy.
Practical use, limits, pricing, and delivery channels
Use the browser tool when you want an immediate Q equals m c ΔT check while grading homework, verifying a coffee-cup calorimeter run, sizing how much energy a heater must deliver for a known temperature rise, or sanity-checking a simulation thermal budget. Choose units consistently—if mass is in kilograms, specific heat in joules per kilogram-kelvin, and ΔT in kelvin or Celsius degrees, thermal energy comes out in joules. There is no language model, no external thermodynamics service, and no randomness, so the capacity is safe to pin in continuous-integration checks and reproducible lesson materials. If you later need latent heat of fusion or vaporization, an inverse solve for specific heat given measured Q, or a unit converter among calories, BTU, and joules, treat those as separate search intents rather than overloading this thermal energy calculator. Each successful request is one billable item at $0.002; failed validation does not consume prepaid balance. Results are fully deterministic: the same three inputs always yield the same thermal_energy, the same thermal_energy_joules alias, and the same formula, unit, and method labels. Wire the endpoint into calorimetry drills, contest answer checkers, HVAC sketch tools, or preprocessing steps where you already prefer explicit domain errors—such as rejecting a negative mass—over opaque black-box widgets that cannot explain why a bad input was refused. The published API price is $0.002 per successful item; keep that figure in lesson budgets and client quotes instead of inventing a per-joule tariff that this engine does not charge.
Integration use cases
Deterministic fixtures for thermal tests
Pipelines that seed unit tests or interactive science demos can call a pure Q=mcΔT oracle instead of reimplementing thermal-energy arithmetic in every language.
Technical questions
How do I compute thermal energy with this calculator?
Send a JSON body with mass, specific_heat_capacity, and temperature_change to phys.thermal_energy. The response returns thermal_energy (and thermal_energy_joules) plus the formula Q = m · c · ΔT.