Beam summary design with ACI 318-19

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.