Beam summary design with ACI 318-19#
Create input dataframe
This is an example creating the DataFrame directly in the cell but it’s easier to load it from an Excel file, as is explained in the User Guide.
This input has no rebar, since it’s going to be designed by Mento
from mento import MPa
from mento import BeamSummary, Concrete_ACI_318_19, SteelBar
import pandas as pd
conc = Concrete_ACI_318_19(name="C25", f_c=25 * MPa)
steel = SteelBar(name="ADN 420", f_y=420 * MPa)
data = {
"Label": ["", "V101", "V102", "V103", "V104"],
"Comb.": ["", "ELU 1", "ELU 2", "ELU 3", "ELU 4"],
"b": ["cm", 20, 20, 20, 20],
"h": ["cm", 50, 50, 50, 50],
"cc": ["mm", 25, 25, 25, 25],
"Nx": ["kN", 0, 0, 0, 0],
"Vz": ["kN", 20, -50, 100, 100],
"My": ["kNm", 0, 35, 80, -80],
"ns": ["", 0, 0, 0, 0],
"dbs": ["mm", 0, 0, 0, 0],
"sl": ["cm", 0, 0, 0, 0],
"n1": ["", 0, 0, 0, 0],
"db1": ["mm", 0, 0, 0, 0],
"n2": ["", 0, 0, 0, 0.0],
"db2": ["mm", 10, 16, 0, 0],
"n3": ["", 0, 0.0, 20, 0.0],
"db3": ["mm", 0, 0, 0, 0],
"n4": ["", 0, 0.0, 0, 0.0],
"db4": ["mm", 0, 0, 0, 0],
}
input_df = pd.DataFrame(data)
beam_summary = BeamSummary(concrete=conc, steel_bar=steel, beam_list=input_df)
# Beam summary input data
beam_summary.data
| Label | Comb. | b | h | cc | Nx | Vz | My | ns | dbs | sl | n1 | db1 | n2 | db2 | n3 | db3 | n4 | db4 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | V101 | ELU 1 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 20.00 kN | 0.00 kN·m | 0 | 0.00 mm | 0.00 cm | 0 | 0.00 mm | 0 | 10.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
| 2 | V102 | ELU 2 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | -50.00 kN | 35.00 kN·m | 0 | 0.00 mm | 0.00 cm | 0 | 0.00 mm | 0 | 16.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
| 3 | V103 | ELU 3 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 100.00 kN | 80.00 kN·m | 0 | 0.00 mm | 0.00 cm | 0 | 0.00 mm | 0 | 0.00 mm | 20 | 0.00 mm | 0 | 0.00 mm |
| 4 | V104 | ELU 4 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 100.00 kN | -80.00 kN·m | 0 | 0.00 mm | 0.00 cm | 0 | 0.00 mm | 0 | 0.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
Design all beams for shear and flexure
beam_summary.design()
C:\Users\mihdi\Documents\GitHub\mento\mento\codes\ACI_318_19_beam.py:68: UserWarning: Longitudinal rebar As cannot be zero if A_v is less than A_v_min.
warnings.warn(
✅ Beam design completed for all beams in Summary.
| Label | Comb. | b | h | cc | Nx | Vz | My | ns | dbs | sl | n1 | db1 | n2 | db2 | n3 | db3 | n4 | db4 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | V101 | ELU 1 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 20.00 kN | 0.00 kN·m | 1 | 10.00 mm | 23.00 cm | 0 | 0.00 mm | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | V102 | ELU 2 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | -50.00 kN | 35.00 kN·m | 1 | 10.00 mm | 23.00 cm | 2 | 12.00 mm | 1 | 10.00 mm | 0 | 0 | 0 | 0 |
| 2 | V103 | ELU 3 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 100.00 kN | 80.00 kN·m | 1 | 10.00 mm | 11.00 cm | 2 | 16.00 mm | 1 | 12.00 mm | 0 | 0 | 0 | 0 |
| 3 | V104 | ELU 4 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 100.00 kN | -80.00 kN·m | 1 | 10.00 mm | 11.00 cm | 2 | 16.00 mm | 1 | 12.00 mm | 0 | 0 | 0 | 0 |
Check all beams for shear and flexure with current design
beam_summary.check()
C:\Users\mihdi\Documents\GitHub\mento\mento\codes\ACI_318_19_beam.py:68: UserWarning: Longitudinal rebar As cannot be zero if A_v is less than A_v_min.
warnings.warn(
| Beam | b | h | cc | As,top | As,bot | Av | As,req,top | As,req,bot | Av,req | Av,real | Mu | Vu | Nu | ØMn,top | ØMn,bot | ØVn | DCRb,top | DCRb,bot | DCRv | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | cm | cm | mm | cm²/m | cm²/m | cm²/m | cm²/m | kNm | kN | kN | kNm | kNm | kN | |||||||
| 1 | V101 | 20 | 50 | 25 | - | - | 1eØ10/23 | 0.0 | 0.0 | 1.38 | 6.83 | 0.0 | 20.0 | 0.0 | 0.0 | 0.0 | 99.2 | 0.0 | 0.0 | 0.202 |
| 2 | V102 | 20 | 50 | 25 | - | 2Ø12+1Ø10 | 1eØ10/23 | 0.0 | 2.7 | 0.0 | 6.83 | 35.0 | -50.0 | 0.0 | 0.0 | 51.2 | 127.3 | 0.0 | 0.684 | 0.393 |
| 3 | V103 | 20 | 50 | 25 | - | 2Ø16+1Ø12 | 1eØ10/11 | 0.0 | 4.9 | 2.89 | 14.28 | 80.0 | 100.0 | 0.0 | 0.0 | 84.1 | 264.1 | 0.0 | 0.951 | 0.379 |
| 4 | V104 | 20 | 50 | 25 | 2Ø16+1Ø12 | - | 1eØ10/11 | 4.8 | 0.0 | 2.84 | 14.28 | -80.0 | 100.0 | 0.0 | 84.8 | 0.0 | 266.1 | 0.943 | 0.0 | 0.376 |
Export design results to excel
beam_summary.export_design("Beam-Design.xlsx")
✅ Beam design exported to Beam-Design.xlsx
At this point, you could open the Excel file, edit the proposed design, import it and check again
For this example, let’s modify V101 stirrup spacing to 15 cm, V103 longitudinal rebar to 2Ø16+1Ø16 and V104 to 2Ø20.
beam_summary.import_design("Beam-Design.xlsx")
✅ Beam design imported and summary data updated.
Let’s print the data to see the updated beam summary.
beam_summary.data
| Label | Comb. | b | h | cc | Nx | Vz | My | ns | dbs | sl | n1 | db1 | n2 | db2 | n3 | db3 | n4 | db4 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | V101 | ELU 1 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 20.00 kN | 0.00 kN·m | 1 | 10.00 mm | 23.00 cm | 0 | 0.00 mm | 0 | 0.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
| 2 | V102 | ELU 2 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | -50.00 kN | 35.00 kN·m | 1 | 10.00 mm | 23.00 cm | 2 | 12.00 mm | 1 | 10.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
| 3 | V103 | ELU 3 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 100.00 kN | 80.00 kN·m | 1 | 10.00 mm | 11.00 cm | 2 | 16.00 mm | 1 | 12.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
| 4 | V104 | ELU 4 | 20.00 cm | 50.00 cm | 25.00 mm | 0.00 kN | 100.00 kN | -80.00 kN·m | 1 | 10.00 mm | 11.00 cm | 2 | 16.00 mm | 1 | 12.00 mm | 0 | 0.00 mm | 0 | 0.00 mm |
Perform the check again, with the new rebar.
beam_summary.check()
| Beam | b | h | cc | As,top | As,bot | Av | As,req,top | As,req,bot | Av,req | Av,real | Mu | Vu | Nu | ØMn,top | ØMn,bot | ØVn | DCRb,top | DCRb,bot | DCRv | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | cm | cm | mm | cm²/m | cm²/m | cm²/m | cm²/m | kNm | kN | kN | kNm | kNm | kN | |||||||
| 1 | V101 | 20 | 50 | 25 | 2Ø8 | 2Ø8 | 1eØ10/23 | 0.0 | 0.0 | 0.02 | 6.83 | 0.0 | 20.0 | 0.0 | 17.3 | 17.3 | 118.9 | 0.0 | 0.0 | 0.168 |
| 2 | V102 | 20 | 50 | 25 | 2Ø8 | 2Ø12+1Ø10 | 1eØ10/23 | 0.0 | 2.7 | 0.0 | 6.83 | 35.0 | -50.0 | 0.0 | 17.3 | 51.2 | 127.3 | 0.0 | 0.684 | 0.393 |
| 3 | V103 | 20 | 50 | 25 | 2Ø8 | 2Ø16+1Ø12 | 1eØ10/11 | 0.0 | 4.9 | 2.89 | 14.28 | 80.0 | 100.0 | 0.0 | 17.3 | 84.1 | 264.1 | 0.0 | 0.951 | 0.379 |
| 4 | V104 | 20 | 50 | 25 | 2Ø16+1Ø12 | 2Ø8 | 1eØ10/11 | 4.9 | 0.0 | 2.89 | 14.28 | -80.0 | 100.0 | 0.0 | 84.1 | 17.3 | 264.1 | 0.951 | 0.0 | 0.379 |
You could check the specific shear and flexure results following the Beam Summary Check example.