The crate checks beams. It cannot check a column, which is the other half of any frame and the part that fails brittly.
What is missing
- Axial compression, SNI 1729 ch. E: flexural buckling, torsional and flexural-torsional buckling, the effective length
KL/r, and the Fcr branches either side of the slenderness limit.
- Combined axial and flexure, ch. H: the
Pr/Pc interaction, which is where a column actually gets sized.
- Local buckling of the compression elements, since the existing classification is written for flexure.
Why it matters more than it looks
A beam that is 5% overstressed sags and someone notices. A column that is 5% overstressed fails without warning. This is the module where returning an error instead of a number matters most, so the existing habit of refusing unimplemented cases should carry over: no approximate Fcr for a section shape that is not covered.
Suggested order
check_compression for a doubly symmetric rolled I section, flexural buckling only, with K as a caller input rather than guessed from a frame the library cannot see.
- Torsional and flexural-torsional buckling.
- The ch. H interaction, once compression exists.
Step 1 alone is useful and is roughly the size of the existing flexure module. Worked-example tests with the hand calculation in a comment, same as the rest of the crate.
The crate checks beams. It cannot check a column, which is the other half of any frame and the part that fails brittly.
What is missing
KL/r, and theFcrbranches either side of the slenderness limit.Pr/Pcinteraction, which is where a column actually gets sized.Why it matters more than it looks
A beam that is 5% overstressed sags and someone notices. A column that is 5% overstressed fails without warning. This is the module where returning an error instead of a number matters most, so the existing habit of refusing unimplemented cases should carry over: no approximate
Fcrfor a section shape that is not covered.Suggested order
check_compressionfor a doubly symmetric rolled I section, flexural buckling only, withKas a caller input rather than guessed from a frame the library cannot see.Step 1 alone is useful and is roughly the size of the existing flexure module. Worked-example tests with the hand calculation in a comment, same as the rest of the crate.