Unknown molar mass from effusion calculator
If helium at 4 g/mol effuses twice as fast as your unknown gas, the unknown has a molar mass of 16 g/mol. Enter the known molar mass and the rate ratio to get the unknown mass, the squared ratio and a check. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Known molar mass
- 4
- Rate ratio
- 2
- Rate ratio squared
- 4
- Unknown molar mass
- 16
- Recovered rate ratio
- 2
Graham's law of effusion states that under the same temperature and pressure the rate at which a gas escapes through a tiny orifice is inversely proportional to the square root of its molar mass. Students use this inversion after balloon or porous-plug effusion labs; teaching assistants grade relative-rate problems against the same algebra; process and safety teams sanity-check reported molecular weights when only relative leak or purge rates are on hand. This calculator accepts a positive known molar mass and a non-zero rate ratio, returns the unknown molar mass with intermediate squared ratio and a recovered-ratio check, and rejects a zero rate ratio with a clear validation error so undefined results never look like successful answers.
How Graham's law finds an unknown molar mass
Start from Graham's law for two ideal gases effusing through the same orifice at the same temperature and pressure: the ratio of their effusion rates equals the square root of the inverse ratio of their molar masses. If the known gas is lighter it effuses faster, the rate ratio is greater than one, and the unknown comes out heavier, matching the classic hydrogen-versus-oxygen classroom check.
If you measured times instead of rates, remember that rate is proportional to one over time for the same volume, so the time ratio is the inverse of the rate ratio before you square. Entries must be finite; NaN and Infinity are rejected. A known molar mass that is not strictly positive fails early.
A rate ratio numerically indistinguishable from zero fails with a message that the unknown molar mass is undefined when the rate ratio is zero, so clients can fix units or remeasure rather than accepting a bogus zero mass.
Where unknown-molar-mass effusion calculators show up in real work
Secondary-school and introductory university chemistry courses assign Graham's law drills that give a known gas and a measured rate or time ratio and ask for the unknown molecular weight; a single trusted oracle speeds grading and demo setup without hand-waving floating-point noise. Teaching laboratories still time gas escape through porous plugs or pinhole orifices and invert relative rates into molar masses for student unknowns, so lab reports need the same closed form their hand calculation cites.
Process engineers comparing purge or leak behavior of two process gases sometimes need a quick molar-mass estimate from relative rates before commissioning full analytical instruments. If you later need gas density from the ideal-gas law, molar volume at STP, or colligative molar-mass from freezing-point depression, treat those as separate search intents and landings rather than overloading this Graham's law effusion calculator page.
What you can do with it
Porous-plug and pinhole lab reports
Convert measured relative effusion rates into unknown molar mass with the same algebra students write in their lab notebooks.
FAQ
What units does the calculator use?
Molar masses are in grams per mole (g/mol). The rate ratio is dimensionless.
What does it cost?
The browser tool is free and runs locally.
How is the unknown molar mass calculated?
The rate ratio, known gas over unknown gas, is squared and multiplied by the known molar mass. The calculator shows the squared ratio and works the rate ratio back out from the answer, so you can see the result is consistent.
What if I measured effusion times instead of rates?
Invert the time ratio before entering it. For the same volume of gas, the rate is one over the time, so the time ratio is the inverse of the rate ratio, and it must be flipped before it is squared.
Which way round should the rate ratio go?
Known gas over unknown gas. If your lab sheet gives the unknown rate divided by the known rate, invert that number first, otherwise the molar mass you get will be wrong.
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/chem/graham-unknown-molar-mass \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"known_molar_mass":4,"rate_ratio":2}'const res = await fetch("https://api.kit.forhosting.com/chem/graham-unknown-molar-mass", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"known_molar_mass": 4,
"rate_ratio": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/graham-unknown-molar-mass",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"known_molar_mass": 4,
"rate_ratio": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/graham-unknown-molar-mass", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"known_molar_mass":4,"rate_ratio":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"known_molar_mass":4,"rate_ratio":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/graham-unknown-molar-mass", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"known_molar_mass": 4,
"rate_ratio": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.graham_unknown_molar_mass",
"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
When you already know one gas and you measure how fast each gas effuses, you can rearrange the classical ratio into a closed form for the unknown molar mass: M_u equals M_k times the square of the rate ratio r_k over r_u.
How Graham's law finds an unknown molar mass
Writing the known gas as k and the unknown as u gives r_k over r_u equals the square root of M_u over M_k. Squaring both sides isolates the mass ratio: M_u over M_k equals the square of r_k over r_u. Multiplying through by the known molar mass produces the working formula M_u equals M_k times rate_ratio squared, where rate_ratio is defined as r_known divided by r_unknown. The entire pipeline is deterministic floating-point arithmetic: no random seeds, no wall-clock timestamps, no network calls, and no model drift, so identical known mass and rate ratio always produce identical JSON.
What you send and what you get back
Send two required finite numbers under the fields known_molar_mass and rate_ratio. known_molar_mass is M_k in grams per mole for the reference gas and must be positive; typical textbook values include four for helium, twenty-eight for nitrogen, and thirty-two for oxygen. rate_ratio is the dimensionless quotient r_known divided by r_unknown; if your lab sheet quotes r_unknown over r_known, invert that quotient before calling. Missing fields, non-numeric strings, NaN, Infinity, non-positive known molar mass, and a zero rate ratio fail with invalid_input and are not charged. On success the response echoes cleaned known_molar_mass and rate_ratio, provides rate_ratio_squared as the intermediate square used in the product, returns unknown_molar_mass as the primary result in grams per mole, includes recovered_rate_ratio equal to the square root of M_u over M_k as a consistency check against the absolute value of the input ratio, and documents units, method graham_law_unknown_molar_mass, and formula M_u equals M_k times open parenthesis r_k over r_u close parenthesis squared. Classic textbook checks include helium at four grams per mole effusing twice as fast as an unknown so the rate ratio is two and M_u is sixteen, and equal rates with rate_ratio one recovering the same mass as the known gas. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where unknown-molar-mass effusion calculators 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
Homework and exam answer keys
Generate M_u from known M_k and r_k/r_u for textbook Graham's law sets so teachers and auto-graders share one effusion ground truth.
Curriculum and LMS generators
Bulk-produce consistent M_u fixtures and catch zero rate ratios with hard invalid_input instead of silent zero masses.
Technical questions
What is Graham's law of effusion?
Under the same conditions, the ratio of effusion rates of two gases equals the square root of the inverse ratio of their molar masses: r_k/r_u = sqrt(M_u/M_k). Rearranged, M_u = M_k × (r_k/r_u)².
How is rate_ratio defined?
rate_ratio is r_known / r_unknown (dimensionless). If you measured times for equal volumes, use rate ∝ 1/time so the time ratio is the inverse of the rate ratio before squaring.
What happens if the rate ratio is zero?
The request fails with invalid_input. Unknown molar mass M_u = M_k × (r_k/r_u)² is undefined when the rate ratio is zero; the calculator does not invent a mass.