Esc to close · to navigate · to open

FA20

Solid Mechanics

Stress, strain, and the geometry of internal forces — how loads propagate through beams, columns, and 3D bodies, and where things finally break.

Concepts learned

Tech

  • Python
  • NumPy

Hero demo Interactive Truss Analyzer

Walk me through this step by step
  1. Picture the metal triangles you can see inside a railway bridge, or the crisscrossing bars above the ceiling of an old gymnasium. Those are trusses — structures that carry surprisingly large loads using only thin, straight members. The trick is geometric: arrange the bars into triangles, bolt them together at the corners, and the whole lattice becomes stiff. This demo lets you load any joint of a few classic trusses and watch every bar’s internal force fall out of one tidy calculation.

  2. A truss has two strong assumptions baked in. First, every joint is a frictionless pin — it transmits force but not moment. Second, all loads are applied only at those joints, never along a bar’s length. Those two together mean every member is loaded only by an axial pull or push from each end: no bending, no shear inside a bar — just a single number per member, tension if positive and compression if negative. That is the whole aha — the most intimidating-looking lattice collapses to one scalar per bar.

  3. Load the Simple Triangle preset: joints A(0,0), B(4,0), C(2,2), with a pin at A, a y-roller at B, and a 4 kN downward load at the apex C. By symmetry the vertical reactions are 2 kN up at each support. Walk to joint C and write force balance — \sum F_x = 0 and \sum F_y = 0 — for the two diagonals AC and BC plus the applied load. Both diagonals share the same axial force by symmetry; they pull C downward and outward to add to zero with the 4 kN load.

  4. The two diagonals come out the same: F_{AC} = F_{BC} \approx -2.83 \text{ kN}, i.e. each is in compression carrying roughly 2.83 kN. Now drop to joint A: the bottom chord AB pulls A rightward with tension F_{AB}, while AC pushes A leftward and downward. Horizontal balance gives F_{AB} = +2 \text{ kN} — a tension. The bottom chord is stretching outward to stop the apex from spreading the supports apart, which is exactly what you would guess by squeezing a paper triangle flat on the table.

  5. Now generalise. At each of J joints you write two scalar equations, one for x and one for y, giving 2J equations in total. Your unknowns are the M member forces plus R reaction components from the supports — a pin contributes 2 reactions, a roller 1. The system is exactly solvable when M + R = 2J. That is what statics textbooks call statically determinate — translated, you have exactly as many equations as unknowns, so there is one answer and no guesswork about material stiffness.

  6. Add a member without adding a joint and you have more unknowns than equations: the truss is statically indeterminate, and equilibrium alone cannot pin down the forces — you would need material stiffness and a deformation-compatibility argument too. Take a member away and the count tips the other way: too few unknowns, the system is unsolvable, and the geometry usually flops into a mechanism. This demo’s solver checks the count up front and surfaces an “unsolvable” badge instead of returning nonsense.

  7. Doing every joint by hand the way we did C and A works for a triangle, but the Warren Truss preset already has five joints and seven members — chasing the algebra by hand gets tedious fast. The demo instead stacks every joint’s two equilibrium equations into one matrix system A \mathbf{x} = \mathbf{b}, where A is a 2J × (M+R) geometry matrix of direction cosines and \mathbf{x} packs the unknown member forces and reactions. LU decomposition solves it in one shot.

  8. Some bars carry no force at all under a given load. They are still there because they stabilise the truss under different load cases, but for this load they do nothing. Two giveaway patterns: a joint with only two non-collinear members and no load applied to it, or a joint with three members where two are collinear. Toggle Show zero-force members on the Warren preset and you will see a diagonal or two quietly drop to zero — the geometry is doing the work without them.

  9. Try it yourself.

  10. So that is the method of joints: the simplest statics problem where geometry alone — once you commit to pin-joints and joint-only loads — gives you every internal force. The very next demo, Beam deflection calculator, drops the pin-joint assumption and lets bars bend, which is where moment, curvature, and the flexural rigidity EI enter the story. Read them back-to-back: trusses count axial-only forces in discrete bars; beams generalise the same equilibrium logic to a continuous member that resists bending too.

J = 3,\; M = 3T_{max} = 2.00\;kNC_{max} = 2.83\;kN\text{Statically determinate} \checkmark

Three-joint pin-roller triangle — the canonical determinate truss. Loading joint C downward at 4.0 kN.

4.0 kN

Downward force at the selected joint.

2

Joint receiving the load (A, B, C).

1

Show or hide near-zero force members.

max tension 2.00 kN · max compression 2.83 kN · 3 members

Reflection

Pre-interview preview. Akwasi’s first-person reflection on this course is pending — track at issue #47.

Beam deflection calculator

Cantilever, simply-supported, and fixed-fixed beams under point or distributed loads.

\text{Cantilever — Point load at tip}v_{max} = 66.67 \text{ mm}x_{max} = 2.00 \text{ m}

Cantilever — Point load at tip, L = 2.0 m, E = 200 GPa, I = 100 cm⁴. Max deflection 66.67 mm at x = 2.00 m.

2.0 m
200 GPa
100 cm⁴
5.0 kN or kN/m
v_max = 66.67 mm

Shear & moment diagrams

Place supports and loads; auto-derive the V and M diagrams along the beam.

R_A = 5.00\,\text{kN}R_B = 5.00\,\text{kN}V_{\max} = 5.00\,\text{kN}M_{\max} = 14.92\,\text{kN·m}

Single downward point load at midspan — symmetric triangular moment diagram. Span L = 6.0 m, P = 10.0 kN at x = 3.00 m, w = 0.0 kN/m.

6.0 m

Distance between the pin (A) and roller (B) supports.

10 kN

Downward concentrated point load applied at position xP.

3.00 m

Where the point load acts, measured from support A.

0.0 kN/m

Uniformly distributed downward load over the whole span.

|M|max = 14.92 kN·m

Bending stress distribution

σ = My/I across a beam cross-section, with neutral-axis visualisation.

I = 6.667e-5\,\text{m}^4S = 6.667e-4\,\text{m}^3y_{\max} = 100.0\,\text{mm}\sigma_{\max} = 15.00\,\text{MPa}
10 kN·m

Applied bending moment. Positive → sagging (top in compression).

0

0 = rect, 1 = circle, 2 = ibeam.

100 mm
200 mm
σ_max = 15.00 MPa

Stress-strain curve

Elastic, yield, plastic, and necking regions for common engineering materials.

\sigma_y = 250 \text{ MPa}\sigma_u = 400 \text{ MPa}\epsilon_f = 0.25

Mild steel stress-strain curve. E = 200 GPa, yield 250 MPa, ultimate 400 MPa, fracture at ε = 0.25.

200 GPa

Young's modulus — slope of the linear elastic region.

250 MPa

Stress at which plastic deformation begins.

400 MPa

Peak engineering stress before necking starts.

0.020

Strain at which strain-hardening begins.

0.25

Strain at which fracture occurs.

σ_y = 250 MPa

Mohr’s circle

Drag the stress element; watch the Mohr’s circle and principal stresses update.

Walk me through this step by step
  1. Pull a bolt straight up and you know the tensile stress — load over area, end of story. But what is actually happening on a slanted plane cut through the bolt at thirty degrees? Hidden inside the rod is a different combination of normal-and-shear stress on every possible angle, and those combinations are what crack bolts, snap drive shafts, and bring down beams. Mohr’s circle is the single picture that shows all of them at once.

  2. Take a concrete stress state at one point in a body: \sigma_x = 80 MPa pulling the element rightwards, \sigma_y = 20 MPa pulling it upwards, and a shear of \tau_{xy} = 30 MPa twisting the faces. Three numbers describe the stress completely. We want to know what σ and τ a tiny face would feel if we rotated that element to some other orientation. The brute-force way is to plug angles into the transformation equations. Mohr’s trick is to plot, not plug.

  3. Plot the σ-axis horizontally and the τ-axis downwards. The centre of the circle sits at the average normal stress, C = (\sigma_x + \sigma_y)/2 = 50 MPa, always on the σ-axis. The radius comes from the half-difference and the shear,

    R = \sqrt{((\sigma_x - \sigma_y)/2)^2 + \tau_{xy}^2} = \sqrt{30^2 + 30^2} \approx 42.4

    MPa. That single circle, centre (50, 0) and radius 42.4, contains every (σ’, τ’) pair this point can ever feel — one circle, all orientations.

  4. Mark the x-face at (\sigma_x, \tau_{xy}) = (80, 30) and the y-face at (\sigma_y, -\tau_{xy}) = (20, -30). They sit on opposite ends of a diameter — exactly as they should, because the x-face and the y-face are physically ninety degrees apart on the element. Check it: their midpoint is (50, 0), and each lies 42.4 from that centre. Same circle, drawn from two different starting faces.

  5. Here is the aha. Rotate the physical element by an angle θ, and the corresponding point on the circle walks around the centre by . The diameter stays rigid; it just spins. To read off the stress on any new orientation, find the angle 2θ around the circle and look at the coordinates of that point — those are your σ’ and τ’. Doubling the angle is the price you pay for getting a circle instead of an ellipse, and it is a bargain.

  6. Walk the diameter until shear vanishes — that is, until it lies flat on the σ-axis. The two endpoints there are the principal stresses: the orientation where shear is zero and the stress is purely normal, giving the largest and smallest normal stress any face through this point will ever see. For our numbers, \sigma_1 = C + R \approx 92.4 MPa and \sigma_2 = C - R \approx 7.6 MPa. The element is physically rotated by half of that 2θ — here about 22.5° — to reach the principal orientation.

  7. Now walk the diameter another ninety degrees around the circle (so 45° on the element) and you arrive at the top and bottom of the circle. Those points have τ equal to the radius itself, so \tau_{\max} = R \approx 42.4 MPa, on faces whose normal stress is the centre value, 50 MPa. Maximum shear and pure-normal stress live a quarter-turn apart on the circle, exactly 45° apart on the element — the same 45° you see on the slip lines of a ductile tensile specimen.

  8. Try it yourself.

  9. So Mohr’s circle is the compact picture of every stress orientation at one point. The very next demo, the 3D stress state visualizer, generalises the same trick to three principal stresses and three circles instead of one. Then failure criteria takes those principal stresses and asks the next question — at what combination does the material actually yield? — and the featured problem “Maximum shear in a thin-walled pressure vessel — via Mohr’s circle” walks an end-to-end design calculation along exactly that path.

\sigma_1 = 100.0 \text{ MPa}\sigma_2 = 0.0 \text{ MPa}\tau_{max} = 50.0 \text{ MPa}

Stress state σx = 100 MPa, σy = 0 MPa, τxy = 0 MPa. Principal stresses σ1 = 100.0, σ2 = 0.0 MPa, rotated by 0.0°.

100 MPa
0 MPa
0 MPa
σ1 = 100.0 MPa

3D stress state visualizer

Stress tensor on a unit cube; rotate to explore principal stresses.

στσ₁σ₂σ₃τ_max
I₁100.00
I₂0.00
I₃0.00
σ₁100.00
σ₂0.00
σ₃-0.00
σ_mean = I₁/333.33
τ_max = (σ₁ − σ₃)/250.00
σ_vm100.00
uniaxial-tension · σ_vm=100.0 MPa
100  MPa
0  MPa
0  MPa
0  MPa
0  MPa
0  MPa
0
σ_vm = 100.0 · τ_max = 50.0 · σ₁ = 100.0

Torsion of shafts

Shear stress and angle of twist for a circular shaft under applied torque.

\tau_{max} = 127.3 \text{ MPa}\varphi = 9.12°J = 1.57 \text{ cm}^4

Solid (thin) shaft, T = 200 N·m, L = 1.0 m, G = 80 GPa. τ_max = 127.3 MPa at r = 10 mm; twist angle = 9.12°.

200 N·m
1.0 m
80 GPa
10 mm
0 mm

Set > 0 for a hollow shaft. Auto-clamped below outer radius.

τ_max = 127.3 MPa

Euler buckling calculator

Critical buckling load vs slenderness ratio for the four classical boundary cases.

K = 1P_{cr} = 493.5 \text{ kN}\lambda = 63.2

Euler buckling for Pinned–pinned (K = 1.0) column (K = 1). Critical load P_cr = 493.5 kN, slenderness λ = 63.2 vs λ_c = 88.9 (stocky — yield may govern).

2.0 m
200 GPa

Young's modulus of the column material.

100 cm⁴

Smallest second moment of area of the cross-section.

10 cm²
250 MPa
P_cr = 493.5 kN

Failure criteria explorer

Tresca, von Mises, and maximum-normal-stress envelopes in σ₁–σ₂ space.

\sigma_{eq}^{T} = 150\sigma_{eq}^{VM} = 150\sigma_{eq}^{R} = 150SF_T = 1.67SF_{VM} = 1.67SF_R = 1.67
150

First principal stress.

0

Second principal stress.

250

Material yield strength.

min SF = 1.67 (Tresca 1.67 · von Mises 1.67 · Rankine 1.67)

What’s coming

The author’s written reflection lands alongside the v6 interview. The demos and featured problems above are wired and playable today.