Shear modulus calculator
A shear stress of 80 MPa that produces a shear strain of 0.001 means a shear modulus of 80 GPa, typical of structural steel. Enter the measured stress in pascals and the strain to get G in pascals and gigapascals. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Shear stress
- 80,000,000
- Shear strain
- 0.001
- Shear modulus
- 80,000,000,000 Pa
- Shear modulus gpa
- 80
Shear modulus is the elastic stiffness of a solid against a force that slides one layer of the material past the next. In the linear Hookean range it is defined as G equals shear stress tau divided by engineering shear strain gamma, and the SI unit of that ratio is the pascal. This shear modulus calculator takes those two measured numbers, returns G in pascals plus a gigapascal helper for handbook tables, and rejects a zero shear strain because the quotient would be undefined. It does not solve for a missing stress or strain, convert units, or look up a material database.
What shear modulus means: G = τ / γ
Shear modulus G, also called the modulus of rigidity or Coulomb's modulus, is the slope of the linear portion of a material's shear stress versus shear strain curve. In the engineering form used in strength of materials, G equals tau divided by gamma, where tau is the average shear stress on a face and gamma is the engineering shear strain. Shear strain is dimensionless: for a rectangular element it is the tangent of the change in a right angle, which for small angles is approximately the angle itself in radians.
Typical structural steels sit near eighty gigapascals, aluminum alloys near twenty-five to twenty-seven, and elastomers orders of magnitude lower. The isotropic linear-elastic identity G equals E divided by two times one plus Poisson's ratio relates this number to Young's modulus, but this calculator does not take E or Poisson's ratio as inputs and does not invert that identity. Callers who already measured tau and gamma from a torsion test, a shear coupon, or a simple block-and-angle exercise send those two numbers here.
Zero strain is not a physical definition of G from a single stress reading; it is almost always a missing angle, a unit mistake that collapsed gamma to zero, or a test of error handling. A solver that returned Infinity would hide that bug.
What you can do with it
Homework checks for modulus of rigidity
Students enter textbook shear stress in pascals and engineering shear strain, then compare the returned G and GPa helper against a hand-written G = τ/γ before submitting.
Torsion-lab elastic slope
A lab notebook converts measured shear stress and shear strain from a torsion coupon into G in pascals, with a hard error if the logged strain collapsed to zero.
FAQ
What is the formula for shear modulus?
In the linear elastic range, shear modulus is G = τ / γ, where τ is shear stress in pascals and γ is engineering shear strain (dimensionless). The result is in pascals.
What happens when the shear strain is zero?
Shear modulus is undefined when γ = 0.
Is shear modulus the same as Young's modulus?
No. Young's modulus E = σ/ε is uniaxial stiffness. Shear modulus G = τ/γ is sliding stiffness. For isotropic solids they are related by G = E / (2(1+ν)), which this calculator does not invert.
What units should I send?
Send shear stress in pascals and shear strain as a dimensionless engineering value (not a percent). The shear modulus is returned in pascals, with a GPa helper field.
Is the shear modulus calculator free?
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/phys/shear-modulus \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"shear_stress":80000000,"shear_strain":0.001}'const res = await fetch("https://api.kit.forhosting.com/phys/shear-modulus", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"shear_stress": 80000000,
"shear_strain": 0.001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/shear-modulus",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"shear_stress": 80000000,
"shear_strain": 0.001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/shear-modulus", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"shear_stress":80000000,"shear_strain":0.001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"shear_stress":80000000,"shear_strain":0.001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/shear-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
{
"shear_stress": 80000000,
"shear_strain": 0.001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.shear_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 shear modulus means: G = τ / γ
Shear stress has the same dimensions as normal stress: force parallel to the surface divided by the area of that surface, so when force is in newtons and area is in square metres, tau is in pascals. Because gamma has no unit, G inherits the unit of tau; this endpoint always reports shear_modulus in pascals and also reports shear_modulus_gpa as that value divided by one billion, matching the gigapascal columns in almost every metal handbook. The path is deterministic floating-point arithmetic with fixed precision rounding so Worker and browser JSON match byte for byte on every identical call.
How to call the API and what comes back
Signed stress and strain are allowed so engineering sign conventions survive the round trip; G then inherits the sign of the quotient. There is no material table, no temperature correction, no unit converter from megapascals or microstrain, and no rearrangement that solves for a missing tau or gamma. POST a JSON body with two required finite numbers: shear_stress (aliases tau and stress) in pascals, and shear_strain (aliases gamma and strain), which is dimensionless. Each field may arrive as a JSON number or as a numeric string from a form; missing fields, empty strings, non-numeric text, NaN, and Infinity fail immediately with invalid_input naming the field, and those failures are never charged. After both values parse, shear strain is checked against a hard physical bound: if its absolute value is zero or no larger than one times ten to the minus fifteen, the task fails with invalid_input and a message that shear modulus G equals tau over gamma is undefined when shear_strain is zero. That near-zero floor stops floating noise from inventing an absurdly large modulus. On success the response echoes rounded shear_stress and shear_strain, sets shear_modulus to the rounded quotient in pascals, sets shear_modulus_gpa to that modulus divided by one billion, sets unit to Pa, sets formula to the string G equals tau over gamma, and sets method to shear_modulus so clients can branch without sniffing shapes. Pricing is a flat $0.002 per successful request with unit item.
Practical tips, units, and related searches
Keep shear stress and shear strain inside the published absolute range so the quotient cannot overflow into a non-finite modulus the solver must reject. Use consistent SI interpretation: pascals for tau yield pascals for G; if your lab sheet lists megapascals or pounds per square inch, convert first—this tool does not convert units. Engineering shear strain is not a percentage: a half-percent shear is 0.005, not 0.5, and mixing those scales is the most common source of a modulus that looks a hundred times too small. Prefer this capability when you already have shear stress and shear strain and only need G in pascals. Prefer sending JSON numbers rather than pre-formatted strings when you control the client. When teaching, pair examples: eighty million pascals of shear at one thousandth strain recovers eighty gigapascals, a familiar steel-class rigidity, and a deliberate zero strain demonstrates the hard invalid_input path. This landing targets people searching for a shear modulus calculator, modulus of rigidity calculator, or G equals tau over gamma online. It is not Young's modulus E equals sigma over epsilon, not average shear stress tau equals F over A, not transverse beam shear VQ over It, and not a finite-element solver. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send a zero strain. Round-trip checks are easy: recompute tau divided by gamma by hand and confirm it equals the published shear_modulus within the same rounding, and confirm that zero strain always fails with invalid_input mentioning that shear strain is zero. Each successful API call is one billable item at $0.002.
Integration use cases
Answer keys and coding-kata fixtures
Pipelines generate known-good G = τ/γ cases plus deliberate zero-strain rejections for auto-graders and continuous-integration expected values.