feat: add ACI 318-19 concrete and reinforcement material properties#343
Open
gabe-kafka wants to merge 1 commit intofib-international:devfrom
Open
feat: add ACI 318-19 concrete and reinforcement material properties#343gabe-kafka wants to merge 1 commit intofib-international:devfrom
gabe-kafka wants to merge 1 commit intofib-international:devfrom
Conversation
Add the first American design code to the library. Implements material properties from ACI 318-19 Chapters 19, 20, and 22: Concrete (codes/aci318): - Ec: modulus of elasticity (Table 19.2.2.1) - fr: modulus of rupture (Eq. 19.2.3.1) - beta1: Whitney stress block depth factor (Table 22.2.2.4.3) - eps_cu: ultimate concrete strain (Section 22.2.2.1) - alpha1: stress block intensity (Section 22.2.2.4.1) - fct: splitting tensile strength (Section 19.2.4.3) - lambda_factor: lightweight modification factor (Table 19.2.4.2) Reinforcement (codes/aci318): - Es: modulus of elasticity (Section 20.2.2.2) - fy_design: design yield strength - epsyd: yield strain - reinforcement_grade_props: ASTM grade lookup (Table 20.2.2.4a) Material classes: - ConcreteACI318 with elastic, parabola-rectangle, and bilinear constitutive laws - ReinforcementACI318 with elastic and elastic-plastic laws ACI 318 uses LRFD (strength reduction factors on member capacity) rather than partial safety factors on material strength. Material classes default gamma_c=1.0 and gamma_s=1.0 accordingly. Ref: fib-international#187
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the first American design code to the library — ACI 318-19 material properties from Chapters 19, 20, and 22.
Ec,fr,beta1,eps_cu,alpha1,fct,lambda_factor— all as standalone functions following the existing EC2/MC2010 patternsEs,fy_design,epsyd,reinforcement_grade_props(ASTM grade lookup)ConcreteACI318andReinforcementACI318with constitutive law support (elastic, parabola-rectangle, bilinear for concrete; elastic, elastic-plastic for steel)All units are SI (MPa, kg/m³) to match library conventions.
ACI vs Eurocode safety philosophy
ACI 318 uses LRFD — strength reduction factors (φ) are applied at member capacity level, not material level. The material classes default
gamma_c=1.0andgamma_s=1.0. This is documented in class docstrings. See discussion in #187 about long-term architectural implications.Scope
Material properties only. No member design (shear, flexure, etc.) in this PR — that can follow once the architecture question in #187 is resolved.
Closes #187 (partially — first code added, more can follow).
Test plan
make form— ruff formatting passesmake lint— ruff linting passesmake test— 10,186 passed (73 new + 10,113 existing), 1 pre-existing failure in EC2 2023set_design_code('aci318')→create_concrete(fck=28)→.Ecreturns correct value