check_shear implements the four-case Cv form from SNI 1729:2015, which adopts AISC 360-10. SNI 1729:2020 adopts AISC 360-16, which collapses this to two branches.
The current choice is documented on WebShearCase and in the README, with the reasoning: 2015 is in wider Indonesian practice, and a 2020-edition user gets a conservative answer in the elastic range.
The problem with leaving it
"Conservative" is fine until someone is checking an existing structure against the edition their permit was issued under, and the library quietly gives them a different number from the one in the approved calculation. Then conservative is just wrong.
Proposal
Make the edition an explicit input rather than a compile-time decision:
pub enum SniEdition { V2015, V2020 }
Defaulting to 2015 keeps current behaviour for existing callers. The result struct should report which edition produced the number, so a printed calculation report says so on its face.
Open question for whoever picks this up
Whether the same split is needed elsewhere. Flexure differs less between the two editions, but that should be checked rather than assumed before this is called done.
check_shearimplements the four-caseCvform from SNI 1729:2015, which adopts AISC 360-10. SNI 1729:2020 adopts AISC 360-16, which collapses this to two branches.The current choice is documented on
WebShearCaseand in the README, with the reasoning: 2015 is in wider Indonesian practice, and a 2020-edition user gets a conservative answer in the elastic range.The problem with leaving it
"Conservative" is fine until someone is checking an existing structure against the edition their permit was issued under, and the library quietly gives them a different number from the one in the approved calculation. Then conservative is just wrong.
Proposal
Make the edition an explicit input rather than a compile-time decision:
Defaulting to 2015 keeps current behaviour for existing callers. The result struct should report which edition produced the number, so a printed calculation report says so on its face.
Open question for whoever picks this up
Whether the same split is needed elsewhere. Flexure differs less between the two editions, but that should be checked rather than assumed before this is called done.