Skip to content

EN 1992-1-1:2023

Second-generation Eurocode 2. Materials, partial factors and get_concrete(edition="2023") are on the main page; membranes, slabs and shells (Annex G) are in Membranes, slabs and shells. Units: kN, m, MPa.

Shear, EN 1992-1-1:2023 (Clause 8.2)

Code reference: uls2023.shear, uls2023.shear_check.eurocode2_shear_check, uls2023.shear_check.ShearInput

from eurocodepy.ec2 import uls2023

inp = uls2023.ShearInput(b=0.3, d=0.5, fck=30, fyk=500, as_long=0.0015)   # m, MPa, m²
r = uls2023.eurocode2_shear_check(inp, v_ed=150.0)                          # kN
r.mode, r.asw_s, r.cot, r.vrd_c, r.vrd_max   # 'stirrups', Asw/s [m²/m], cot θ, ...

uls2023.shear.calc_taurdc(rho_l=0.01, fck=30, d=0.5, fyd=434.8)   # τRd,c, Eq. (8.27)
uls2023.shear.calc_tau_rdi(30, 1.5, 20, "rough", sigma_n=1.0)     # interface, Eq. (8.76)

The check follows 8.2.1: τEd ≤ τRdc,min (verification omitted), τEd ≤ τRd,c (no calculated reinforcement), otherwise the compression field with ν = 0,5 and the flattest strut that does not crush (cot θ ≤ cot θmin). ShearInput takes gamma_v (Table 4.3), n_ed/m_ed (shear span and axial force, 8.2.2(3)-(4)) and asw_min_s, the minimum Asw/s (default ρw,min of Eq. 12.4; 0.0 omits it). The formulae for the other parts of 8.2 (planar members, strain-based ν, chord forces, web-flange shear, interfaces) are in uls2023.shear.

Torsion and shear + torsion, EN 1992-1-1:2023 (Clause 8.3)

Code reference: uls2023.torsion, uls2023.shear_torsion.eurocode2_shear_torsion_check

from eurocodepy.ec2 import uls2023

t = uls2023.calc_torsion(30.0, 0.3, 0.5, 30.0, 1.5, 500.0, 1.15, 2.0, cover=0.05)
t["Asw_tor_s"], t["Asl_tor"], t["TRd_max"]      # Eqs. (8.82), (8.83), (8.84)

inp = uls2023.ShearTorsionInput(b=0.3, h=0.5, cover=0.05, fck=30, fyk=500, as_long=0.0015)
r = uls2023.eurocode2_shear_torsion_check(inp, v_ed=150.0, t_ed=30.0)
r.asw_total_s, r.asl_tor_total, r.interaction   # interaction: Eq. (8.86)

cot θ is shared by shear and torsion; 1/2,5 ≤ cot θ ≤ 2,5 (Eq. 8.85). ν of Eq. (8.84) comes from Annex G: 0,60 at cot θ = 1, otherwise Eq. (G.9) with ε1 = max(G.10, G.11) and the steel strain fyd/Es (0,38 at cot θ = 2, 0,29 at cot θ = 2,5); nu= overrides it. For a squat section (bmax/bmin < 1,5) the cover is reduced to 0,07·bmin (8.3.4(5)).

Creep, shrinkage and relaxation, EN 1992-1-1:2023 (Annex B)

Code reference: time_dependent2023, sls.creep.creep_coef, sls.shrinkage.shrink_strain

from eurocodepy.ec2 import time_dependent2023 as td

fcm = 38.0                                                      # C30/37, fcm,28
td.creep_coefficient(18250 + 28, 28, fcm, rh=50, hn=200, cls="CN")   # φ(50 y, 28 d) ≈ 2,46
td.shrinkage_total(18251, 1, fcm, rh=50, hn=200, cls="CN")           # εcs after 50 years of drying
td.fcm_t(7, fcm, 30.0, "CN"); td.ecm_t(7, 33000.0, 30.0, "CN")       # strength and stiffness at 7 days
td.creep_coefficient_50y(28, "CN", 50, 200, 30.0)                    # Table 5.2, any fck by (35/fck)^A
td.relaxation_loss(18250, 1000.0, td.relaxation_rho1000(0.7, "wire"))  # Eq. (B.43), MPa

Ages in days, hn = 2Ac/u in mm, RH in %. cls is the strength development class CS, CN or CR (Table B.1). ec2.sls.creep.creep_coef and ec2.sls.shrinkage.shrink_strain are this model (same results, arrays accepted).

Detailing, EN 1992-1-1:2023 (Clause 12)

Code reference: uls2023.detailing

from eurocodepy.ec2.uls2023 import detailing as dt

dt.calc_asw_min_s(f_ck=30, f_yk=500, b_w=0.3, ductility="B")   # Eq. (12.4), m²/m
dt.beam_max_spacings(d=0.5)                                  # Table 12.1: s_l_max, s_bu_max, s_tr_max
dt.column_min_longitudinal(n_ed=2000, f_yd=434.8, a_c=0.09)   # Table 12.3, m²
dt.wall_min_vertical(a_c=0.2, f_ctm=2.9, f_yk=500)            # Table 12.4, m²
dt.calc_vrd_int(a_s_int=1e-3, f_yd=434.8, ductility="B")      # Eq. (12.10), kN

The tables of Clause 12 are NDPs; the functions return the values of the Eurocode.