# Concrete Beam Simple-span rectangular reinforced concrete beam, checked per ACI 318 for flexure, minimum steel, and concrete shear under a uniform gravity load (1.2D + 1.6L). ## Files - `input.yaml` — geometry, loads, materials, and reinforcement; units are carried in the values. - `calc.py` — computes the demands and capacities, writes `results.json`, and regenerates the cross-section figure. - `beam_section.py` — renders the cross-section as native Typst (`assets/beam-section.typ`), drawn to a fixed schematic cover. - `test_concrete_beam.py` — pytest checks of the demands, flexure, minimum steel, shear, reinforcement geometry, and the generated figure. - `concrete-beam.typ` — report; compiles to `concrete-beam.pdf`. `As` is derived from the provided bars (`n_bars`, `bar_size`). ## Usage Edit `input.yaml`, then: ```sh python3 calc.py # writes results.json and assets/beam-section.typ python3 -m pytest # checks the calculation and the generated figure typst compile concrete-beam.typ # builds concrete-beam.pdf ``` `calc.py` must be run before compiling so the figure matches the current inputs; the tests fail if `assets/beam-section.typ` is stale. ## Requirements Python 3 with `pyyaml`, `pint`, `pytest`; Typst.