Young's modulus calculator
A stress of 200 MPa at a strain of 0.001 gives a Young’s modulus of 200 GPa, typical of structural steel, from E = σ/ε. Enter any two of stress, strain and modulus and the third is solved. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Normal
- 200,000,000
- Engineering normal strain ε
- 0.001
- Youngs modulus
- 200,000,000,000
- Youngs modulus gpa
- 200
- Stress mpa
- 200
- Solved for
- youngs_modulus
Young's modulus of elasticity, often written E, is the slope of the linear portion of a material's uniaxial stress-strain curve. In the simplest Hookean model, modulus equals normal stress sigma divided by engineering normal strain epsilon, so a single ratio turns a measured load-extension pair into a stiffness number that engineers compare across steels, aluminums, polymers, and woods. This Young's modulus calculator accepts any two of stress, strain, and modulus, solves for the missing variable, rejects zero strain that would make the ratio undefined, and returns both pascal-scale and gigapascal-scale modulus plus megapascal stress for table lookups.
How Young's modulus is defined and rearranged
Start from the engineering definition of average axial stiffness in the linear elastic range: Young's modulus E equals normal stress sigma divided by engineering normal strain epsilon. Stress is force over original cross-sectional area; strain is change in length over original length, so strain is dimensionless and E carries the same units as stress. When stress is in pascals, E is in pascals; dividing by one billion yields gigapascals, the scale used in almost every material property handbook.
The three algebraic rearrangements are equally useful in practice: E equals stress over strain when a tensile test already produced both coordinates; stress equals E times strain when you know the modulus and the design elongation; strain equals stress over E when you know service stress and the material grade. This tool therefore requires exactly two of the three fields and fills the missing one, rather than forcing every caller into a single forward path.
Strain equal to zero is rejected because dividing by zero is undefined and because a vanishing elongation does not define a finite modulus from a single load point. Young's modulus equal to zero is rejected when solving for strain for the same division reason. Callers who work in imperial units convert before calling or after: the formula is unit-consistent, while the labeled GPa and MPa helpers assume SI stress in pascals.
Where Young's modulus calculators show up in real work
Introductory strength-of-materials and materials-science courses constantly assign Hooke's-law problems that reduce to E equals stress over strain before any factor-of-safety or deflection formula. Tensile-test labs convert machine load and extensometer reading into stress and strain points, then estimate the elastic slope; a trusted oracle that also solves backward for expected strain under a given service stress speeds both the lab notebook and the auto-grader.
Machine design and structural sizing pick a material grade by GPa-class modulus when deflection limits dominate strength limits, then recover allowable strain or stress from the same relation. Quality and inspection workflows spot-check coupon results against published E ranges for steels, aluminum alloys, and polymers without opening a spreadsheet each time. If you later need shear modulus, bulk modulus, Poisson's ratio, mechanical stress from force and area alone, or nonlinear plastic constitutive models, treat those as separate search intents and landings rather than overloading this Young's modulus of elasticity page.
What you can do with it
Tensile test elastic slope
Turn measured stress and strain points from a coupon test into Young's modulus in Pa and GPa so lab reports match the published grade tables.
Design strain from service stress
Given a material E and an axial working stress, solve for engineering strain to check deflection budgets before detailed finite-element work.
Homework and auto-grader keys
Generate consistent E, stress, or strain answers for Hooke's-law homework sets so teachers and scripts share one ground truth.
FAQ
What formula does this Young's modulus calculator use?
E = σ/ε in the linear elastic range.
What happens if strain is zero?
Young's modulus E = σ/ε is undefined when strain is zero (division by zero).
What units should I use?
Any consistent pair: strain is dimensionless, so E has the same units as stress.
Can I solve for stress or strain, not only E?
Yes. Omit the unknown field and supply the other two.
What does it 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/sci/youngs-modulus \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stress":200000000,"strain":0.001}'const res = await fetch("https://api.kit.forhosting.com/sci/youngs-modulus", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stress": 200000000,
"strain": 0.001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sci/youngs-modulus",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stress": 200000000,
"strain": 0.001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sci/youngs-modulus", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stress":200000000,"strain":0.001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stress":200000000,"strain":0.001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sci/youngs-modulus", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"stress": 200000000,
"strain": 0.001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sci.youngs_modulus",
"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
What you send and what you get back
Missing numbers, empty strings, non-numeric tokens, NaN, and Infinity also fail validation. Classic textbook checks include two hundred megapascals of tensile stress at one thousandth strain, which recovers two hundred gigapascals for structural steel, and the reverse solve that recovers stress from a known E and a design strain. Send exactly two finite numbers chosen from the fields stress, strain, and youngs_modulus. All three fields are optional at the schema level, but the solver enforces that precisely two are present; zero, one, or three supplied values fail with invalid_input and are not charged. When strain is zero or extremely close to zero, the request fails with a clear message that Young's modulus is undefined for zero strain, so clients can ask for a measured extension instead of guessing. When youngs_modulus is zero and strain is the unknown, the request fails because strain equals stress over E would divide by zero. On success the response echoes cleaned stress, strain, and youngs_modulus, adds youngs_modulus_gpa as modulus divided by one billion and stress_mpa as stress divided by one million, reports solved_for as the name of the computed field, labels regime as tensile, compressive, or zero_stress from the sign of stress, and includes formula E equals sigma over epsilon, method youngs_modulus, and a units object documenting Pa, dimensionless strain, GPa, and MPa under the SI interpretation. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where Young's modulus 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.