TC-14: a 16×24 column bending about Y
TC-14 is the first verification case that bends about the Y axis. The other thirteen cases all bend about X (the default), so they exercise depth = h. About Y swaps the bending plane: depth = b, width = h. The bars stay on their physical faces, but each bar's depth from the compression face is recalculated in the rotated frame. This page cross-checks calcnote's rotated engine output against two independent first-principles ACI 318-19 strain-compatibility derivations that were produced without access to the engine code.
Case definition
| Section | 16 × 24 in (Ag = 384 in²), about Y (depth = b = 16 in, width = h = 24 in) |
| Reinforcement | 8-#9 perimeter two-face (Ast = 8.00 in², ρ = 2.08%) |
| Materials | f′c = 5,000 psi, Grade 60 |
| Cover to bar centroid (δ) | 2.439 in (1.5 in clear + #3 tie + half a #9 bar) |
| Loading | Pu = 300 kip, M2 = 150 kip-ft → e = 6.0 in (e/b = 0.375) |
| Slenderness | kl/r = 25.0 < 34.0 (short column, no magnification) |
What rotation changes
In a two-face layout the bars sit on the top and bottom faces (physically along h). About X, those faces are the compression and tension faces, so d ranges from δ to h − δ. About Y, the compression face rotates 90° to the b-face. Each bar's depth becomes d = b/2 − x, where x is the bar's horizontal coordinate. The eight bars resolve to four distinct depths:
| Layer | d (in) | As (in²) | Position |
|---|---|---|---|
| 1 | 2.439 | 2.0 | Near compression face (corners) |
| 2 | 6.146 | 2.0 | Interior (two-face spacing) |
| 3 | 9.854 | 2.0 | Interior (symmetric) |
| 4 | 13.561 | 2.0 | Near tension face (corners) |
P-M anchor comparison
Seven-anchor φ-reduced interaction diagram, compared across two independent derivations (Agent A and Agent B, each working from ACI 318-19 strain compatibility without access to the engine code) and the calcnote engine:
| Anchor | εt target | Derivation φPn (kip) | calcnote φPn (kip) | Derivation φMn (kip-ft) | calcnote φMn (kip-ft) |
|---|---|---|---|---|---|
| 1 | Cap (0.80Po) | 1,080.56 | 1,080.56 | 0.00 | 0.00 |
| 2 | Cap intersection | 1,080.56 | 1,080.55 | 127.37 | 127.37 |
| 3 | εt = εty | 415.37 | 415.37 | 246.86 | 246.86 |
| 4 | εt = εty + 0.0015 | 295.13 | 295.13 | 270.65 | 270.65 |
| 5 | εt = εty + 0.003 | 193.18 | 193.17 | 279.98 | 279.97 |
| 6 | εt = εty + 0.008 | Pn < 0 (below pure bending); diagram clips at Anchor 7 | |||
| 7 | Pure bending | 0.00 | 0.00 | 220.23 | 220.20 |
Anchors 1 through 5 match to four or more significant figures. At Anchor 6, the continuous curve crosses Pn = 0 before reaching εt = εty + 0.008; the diagram terminates at the pure bending point (Anchor 7). The 0.01% Anchor 7 difference (220.23 vs 220.20 kip-ft) is iteration tolerance on the Pn = 0 root.
Operating-point comparison
At Pu = 300 kip, M2 = 150 kip-ft (eccentricity e = 6.0 in), the demand ray crosses the φ-reduced polygon between Anchors 2 and 3:
| Quantity | Derivation | calcnote |
|---|---|---|
| φPn,op (kip) | 473.01 | 473.01 |
| φMn,op (kip-ft) | 236.51 | 236.51 |
| D/C | 0.634 | 0.634 |
| Verdict | PASS | PASS |
Verification method
No published textbook or vendor example uses this exact section with bending about Y. The derivation was produced by two independent agents (A and B), each working from ACI 318-19 strain-compatibility principles without access to the engine source code. Both agents agree on all anchor values and on the operating-point D/C.
What TC-14 proves
- The frame-resolved depth (b for about Y, h for about X) feeds correctly into r, Ig, and the section response.
- Bar depths are recalculated as d = b/2 − x, not swapped or mirrored.
- The Whitney stress block uses the correct width (h = 24 in for about Y).
- The slenderness check uses r = 0.30·b = 4.80 in (not 0.30·h = 7.20 in).
- The other-axis advisory correctly reports kl/r = 16.67 about X.
Sources
- ACI 318-19: §22.2 (strain-compatibility assumptions), Table 21.2.2 (φ interpolation), §22.4.2 (axial cap), §6.2.5 (slenderness classification).
- Independent derivations A and B (2026-10-02): full workings archived in the project repository.