simdesign.utils.rcsection

This module provides various methods for reinforced concrete sections such as moment-curvature analysis and confined concrete parameter calculations.

class simdesign.utils.rcsection.SectionState(c, phi, Fint, M)[source]

Bases: object

Section resultants at a given neutral axis depth c.

This container is used internally during axial-force compatibility solves (i.e., finding c such that internal axial force equals the applied axial force).

Parameters:
  • c (float)

  • phi (float)

  • Fint (float)

  • M (float)

c

Neutral axis depth from the top fiber.

Type:

float

phi

Curvature.

Type:

float

Fint

Internal axial resultant. Positive sign is compression.

Type:

float

M

Internal bending moment about the section centroid.

Type:

float

simdesign.utils.rcsection.do_simplified_section_analysis(h, b, fc, Ec, Pext, fyL, Es, As_layers, y_layers, pflag=0)[source]

Compute cracking, first-yield, and nominal/ultimate moments.

  • Cracking moment Mcr: uncracked elastic analysis with steel included via transformed section; cracking occurs when bottom fiber concrete stress reaches fcr.

  • First-yield moment My: curvature fixed at phi_y (Priestley et al. 2007). If the extreme compression fiber would be crushed at phi_y (high axial load), the yield point is taken at the largest curvature at which the axial force can be carried without crushing it.

  • Concrete follows the parabolic stress-strain relationship of Collins & Mitchell (1997), integrated exactly over the compressed depth, with no stress beyond the crushing strain. The whole section may be in compression.

  • Reinforcement is provided directly as steel area per layer at specified depths from the top fiber. Any number of layers is supported.

Sign convention: compression is positive for both concrete and steel.

Parameters:
  • h (float) – Total section depth (m).

  • b (float) – Section width (m).

  • fc (float) – Concrete compressive strength (kPa).

  • Ec (float) – Concrete elastic modulus (kPa).

  • Pext (float) – Applied axial force (kN). Compression is positive.

  • fyL (float) – Yield strength of longitudinal reinforcement (kPa).

  • Es (float) – Elastic modulus of steel (kPa).

  • As_layers (Sequence[float]) – Steel area in each layer (m^2), ordered top -> bottom.

  • y_layers (Sequence[float]) – Depth of each reinforcement layer from the top fiber (m), ordered top -> bottom. Must be strictly increasing and same length as As_layers.

  • pflag (int, optional) – Print/debug flag: - 0: no output - 1: print final moments

Returns:

  • Mcr (float) – Cracking moment (kNm).

  • phi_cr (float) – Cracking curvature (rad/m).

  • ccr (float) – Neutral axis depth at cracking (m) from top fiber (centroidal NA).

  • My (float) – Yield bending moment (kNm).

  • phi_y (float) – Yield curvature (rad/m).

  • cy (float) – Neutral axis depth at first yield (m). It exceeds h if the whole section is in compression.

Raises:

ValueError – If the axial force exceeds the axial capacity of the section in compression or in tension.

Return type:

Tuple[float, float, float, float]

References

Priestley, M. J. N., Calvi, G. M., & Kowalsky, M. J. (2007). Displacement-based seismic design of structures. IUSS Press.

Collins, M. P., & Mitchell, D. (1997). Prestressed concrete structures. Prentice Hall.

simdesign.utils.rcsection.get_sum_wi_sq(rein_x, rein_y, rein_ds, clear=True)[source]

Compute Mander’s w’ spacings and their squared-sum for rectangular confinement.

Parameters:
  • rein_x (List[float]) – x-coordinates of longitudinal reinforcement bars. Used to estimate bar spacing for confinement effectiveness.

  • rein_y (List[float]) – y-coordinates of longitudinal reinforcement bars.

  • rein_ds (List[float]) – Diameters of longitudinal reinforcement bars.

  • clear (bool, optional) – If True, the clear spacings w' of Mander et al. (1988) are returned. If False, the centre-to-centre distances bi of EN 1998-1:2004, Eq. 5.16a are returned. By default True.

Returns:

  • w_dash (list[float]) – Clear (or centre-to-centre) spacings along faces between adjacent perimeter bars.

  • sum_w2 (float) – Summation of w’i^2 values.

  • n_face (dict) – Counts per face: bottom/top/left/right

Return type:

Tuple[List[float], float, Dict[str, int]]

References

Mander, J. B., Priestley, M. J. N., & Park, R. (1988). Theoretical Stress-Strain Model for Confined Concrete. Journal of Structural Engineering, 114(8), 180-1826. https://doi.org/10.1061/(asce)0733-9445(1988)114:8(1804)

simdesign.utils.rcsection.get_mander_confinement(fc, Lx, Ly, cover, db_v, s, legs_x, legs_y, fy_v, rein_x, rein_y, rein_d, eps_su=0.1, eps_c0=0.002, eps_cu_factor=1.3)[source]

Compute confined concrete parameters using the Mander model.

Parameters:
  • fc (float) – Unconfined concrete compressive strength (same stress units as fy_v). Must be positive.

  • Lx (float) – Section dimension in x-direction (overall width).

  • Ly (float) – Section dimension in y-direction (overall depth).

  • cover (float) – Clear concrete cover, i.e., to the outside of the transverse reinforcement. The core is measured to the centreline of the transverse reinforcement.

  • db_v (float) – Diameter of transverse reinforcement (stirrups/ties).

  • s (float) – Center-to-center spacing of transverse reinforcement.

  • legs_x (int) – Number of transverse reinforcement legs effective in x-direction.

  • legs_y (int) – Number of transverse reinforcement legs effective in y-direction.

  • fy_v (float) – Yield strength of transverse reinforcement (same units as fc).

  • rein_x (List[float]) – x-coordinates of longitudinal reinforcement bars.

  • rein_y (List[float]) – y-coordinates of longitudinal reinforcement bars.

  • rein_d (List[float]) – Diameters of longitudinal reinforcement bars.

  • eps_su (float, optional) – Ultimate reinforcing steel strain, by default 0.10.

  • eps_c0 (float, optional) – Unconfined concrete strain at peak compressive stress, by default 0.002.

  • eps_cu_factor (float, optional) – Factor for increasing confined concrete ultimate strain. The value of this factor changes between 1.3 - 1.6 according to Priestley et al. 2007. For design purposes, conservatively, can be taken as 1.0. By default 1.3.

Returns:

  • Output dictionary containing

  • core_x_min (float) – Minimum x-coordinate of confined core (centerline of stirrups).

  • core_x_max (float) – Maximum x-coordinate of confined core.

  • core_y_min (float) – Minimum y-coordinate of confined core.

  • core_y_max (float) – Maximum y-coordinate of confined core.

  • bc_x (float) – Core dimension in x-direction (centerline-to-centerline).

  • bc_y (float) – Core dimension in y-direction.

  • Ke (float) – Confinement effectiveness coefficient (0-1).

  • fl_eff (float) – Effective lateral confining pressure.

  • fcc (float) – Confined concrete compressive strength (f’cc).

  • eps_cc (float) – Confined concrete strain at peak stress.

  • eps_cu (float) – Ultimate confined concrete strain.

  • Ec (float) – Initial tangent modulus of concrete.

  • r (float) – Stress-strain curve shape parameter.

  • strength_ratio (float) – Ratio f’cc / fc.

Return type:

Dict

Notes

  • The confinement effectiveness factor Ke accounts for:
    • Bar spacing between longitudinal reinforcement

    • Vertical spacing of stirrups

    • Ineffective concrete regions

  • Assumes a rectangular section with uniformly spaced transverse reinforcement provided by rectangular stirrups/ties.

  • Steel reaches 0.10 ultimate strain (eps_su = 0.10).

  • Unconfined concrete peak strain eps_c0 = 0.002.

  • eps_cu is increased by eps_cu_factor because Eqn. 4.21 in the DBD book is conservative for assessment; eps_cu_factor = 1.3 by default.

  • Expected units: length in mm, stress in MPa.

References

Mander, J. B., Priestley, M. J. N., & Park, R. (1988). Theoretical Stress-Strain Model for Confined Concrete. Journal of Structural Engineering, 114(8), 180-1826. https://doi.org/10.1061/(asce)0733-9445(1988)114:8(1804)

Priestley, M. J. N., Calvi, G. M., & Kowalsky, M. J. (2007). Displacement-based seismic design of structures. IUSS Press.

Priestley, M. J. N., F. Seible & Calvi, G. M. (1996). Seismic design and retrofit of bridges. John Wiley & Sons.

simdesign.utils.rcsection.build_beam_rebar_layout(db1, db2, dt1, dt2, nb1, nb2, nt1, nt2, dbh, lx, ly, cv)[source]

Build bottom/top rebar coordinates and diameters for a rectangular section.

Notes

  • Bottom layer contains nb1 bars of db1 (big) and nb2 bars of db2 (small).

  • Top layer contains nt1 bars of dt1 (big) and nt2 bars of dt2 (small).

  • Big bars are arranged at ends of each layer.

  • X-coordinates are initially uniform within each layer.

  • If bottom/top x-coordinate lengths differ, only the shorter layer is modified by sampling from the longer layer so ends match and interior points follow the longer layer’s interior.

Parameters:
  • db1 (float) – Bottom-layer big bar diameter.

  • db2 (float) – Bottom-layer small bar diameter.

  • dt1 (float) – Top-layer big bar diameter.

  • dt2 (float) – Top-layer small bar diameter.

  • nb1 (int) – Bottom-layer big bar count.

  • nb2 (int) – Bottom-layer small bar count.

  • nt1 (int) – Top-layer big bar count.

  • nt2 (int) – Top-layer small bar count.

  • dbh (float) – Hoop/stirrup diameter.

  • lx (float) – Section width.

  • ly (float) – Section height.

  • cv (float) – Concrete cover.

Returns:

Dictionary containing layer-wise and combined arrays: - rein_xb, rein_yb, rein_db (bottom) - rein_xt, rein_yt, rein_dt (top) - rein_x, rein_y, rein_d (combined)

Return type:

Dict[str, List[float]]

simdesign.utils.rcsection.build_column_rebar_layout(dbl_cor, dbl_int, nbl_int_x, nbl_int_y, dbh, lx, ly, cv)[source]

Build rebar coordinates and diameters for a rectangular column section.

This function computes the coordinates of longitudinal reinforcement bars (corner and internal bars) within a rectangular cross-section, accounting for concrete cover and transverse reinforcement (stirrups). Bar coordinates are measured from the section origin located at the bottom-left corner.

Corner bars are placed at the four corners of the effective core, while internal bars are distributed uniformly in a grid defined by the number of intermediate bars along the x- and y-directions.

Parameters:
  • dbl_cor (float) – Diameter of corner longitudinal reinforcement bars.

  • dbl_int (float) – Diameter of internal longitudinal reinforcement bars.

  • nbl_int_x (int) – Number of internal reinforcement bars in the x-direction.

  • nbl_int_y (int) – Number of internal reinforcement bars in the y-direction.

  • dbh (float) – Diameter of transverse (stirrup) reinforcement.

  • lx (float) – Section width in the x-direction.

  • ly (float) – Section height in the y-direction.

  • cv (float) – Concrete cover to the outer surface of stirrups.

Returns:

Dictionary containing reinforcement layout: - "rein_x" : list of x-coordinates of bars - "rein_y" : list of y-coordinates of bars - "rein_d" : list of bar diameters corresponding to each bar

Return type:

Dict[str, List[float]]

Notes

  • The effective distance from the section edge to bar centerline is cv + dbh + db / 2.

  • Corner bars are always included (4 bars).

  • Internal bars are placed in a regular grid between corner bars.

  • Coordinates follow a Cartesian system with origin at the bottom-left corner.

simdesign.utils.rcsection.get_kent_park_confinement(fc, Lx, Ly, cover, db_v, s, legs_x, legs_y, fy_v, eps_c0=0.002)[source]

Compute confined concrete parameters using the Modified Kent and Park model.

Parameters:
  • fc (float) – Unconfined concrete compressive strength (same stress units as fy_v). Must be positive.

  • Lx (float) – Section dimension in x-direction (overall width).

  • Ly (float) – Section dimension in y-direction (overall depth).

  • cover (float) – Clear concrete cover, i.e., to the outside of the transverse reinforcement. The core is measured to the centreline of the transverse reinforcement.

  • db_v (float) – Diameter of transverse reinforcement (stirrups/ties).

  • s (float) – Center-to-center spacing of transverse reinforcement.

  • legs_x (int) – Number of transverse reinforcement legs effective in x-direction.

  • legs_y (int) – Number of transverse reinforcement legs effective in y-direction.

  • fy_v (float) – Yield strength of transverse reinforcement (same units as fc).

  • eps_c0 (float, optional) – Unconfined concrete strain at peak compressive stress, by default 0.002.

Returns:

  • Output dictionary containing

  • core_x_min (float) – Minimum x-coordinate of confined core (centerline of stirrups).

  • core_x_max (float) – Maximum x-coordinate of confined core.

  • core_y_min (float) – Minimum y-coordinate of confined core.

  • core_y_max (float) – Maximum y-coordinate of confined core.

  • bc_x (float) – Core dimension in x-direction (centerline-to-centerline).

  • bc_y (float) – Core dimension in y-direction.

  • Ke (float) – Confinement effectiveness coefficient (0-1).

  • fcc (float) – Confined concrete compressive strength (f’cc).

  • eps_cc (float) – Confined concrete strain at peak stress.

  • eps_cu (float) – Ultimate confined concrete strain.

  • strength_ratio (float) – Ratio f’cc / fc.

Return type:

Dict

Notes

  • Assumes a rectangular section with uniformly spaced transverse reinforcement provided by rectangular stirrups/ties.

  • Unconfined concrete peak strain eps_c0 = 0.002.

  • Confined section width is approximated as the average of the two directions.

  • Low strain model.

  • Expected units: length in mm, stress in MPa.

References

Scott, B. D., R. Park, and M. J. N. Priestley (1982). Stress-strain behavior of concrete confined by overlapping hoops at low and high strain rates. Journal of the American Concrete Institute 79(1): 13-27.

simdesign.utils.rcsection.get_my_phiy_panagiotakos_fardis2001(h, b, fc, Ec, Es, fsyl, As_tens, As_comp, dd, As_int=0.0, Nu=0.0, dd_prime=None, eps_cu=0.0035)[source]

Computes the yield moment and curvature of a rectangular RC section with the empirical expressions of Panagiotakos and Fardis (2001).

The inputs may be scalars or arrays of the same shape (e.g., the start, mid and end sections of a beam), and the result has the same shape.

Parameters:
  • h (float | np.ndarray) – Section depth in the bending direction (m).

  • b (float | np.ndarray) – Section width (m).

  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • Ec (float | np.ndarray) – Concrete modulus of elasticity (kPa).

  • Es (float | np.ndarray) – Steel modulus of elasticity (kPa).

  • fsyl (float | np.ndarray) – Yield strength of the longitudinal steel (kPa).

  • As_tens (float | np.ndarray) – Area of the longitudinal reinforcement on the tension side (m2).

  • As_comp (float | np.ndarray) – Area of the longitudinal reinforcement on the compression side (m2).

  • dd (float | np.ndarray) – Effective depth (m), i.e., distance from the extreme compression fiber to the centroid of the tension reinforcement.

  • As_int (float | np.ndarray, optional) – Area of the intermediate (web) longitudinal reinforcement, on both sides together (m2). By default 0.0, e.g., for beams.

  • Nu (float | np.ndarray, optional) – Axial load, positive in compression (kN). By default 0.0, e.g., beams.

  • dd_prime (float | np.ndarray | None, optional) – Distance from the extreme compression fiber to the centroid of the compression reinforcement (m). If None, it is taken as h - dd, i.e., the same distance from the face to the bars on both sides.

  • eps_cu (float, optional) – Concrete crushing strain used to find the balanced neutral axis depth. By default 0.0035.

Returns:

  • My (float | np.ndarray) – Yield moment (kN.m).

  • phi_y (float | np.ndarray) – Yield curvature (1/m).

  • cy (float | np.ndarray) – Neutral axis depth at yield (m).

Return type:

Tuple[float | ndarray, float | ndarray]

Notes

  • Yielding is controlled by the tension steel (Eqs. 1 and 4) if the neutral axis depth of the section with outer reinforcement only is below the balanced depth, and by the compression zone otherwise (Eqs. 2 and 5). For Nu = 0 and As_int = 0 Eqs. 4 and 5 give the same result, so the control only changes the yield curvature.

  • The neutral axis depth of the outer-reinforcement section uses the ACI 318-25 rectangular stress block (Table 22.2.2.4.3).

References

Panagiotakos, T. B., & Fardis, M. N. (2001). Deformations of reinforced concrete members at yielding and ultimate. Structural Journal, 98(2), 135-148.

ACI CODE 318-25. (2025). Building Code for Structural Concrete-Code Requirements and Commentary. American Concrete Institute.

simdesign.utils.rcsection.get_yield_rot_eurocode8(phi_y, h, Ls, fc, fsyl, db, bondslip_factor=1.0, av=None, z=None, include_shear=True, My=None, b=None, As_tens=None, dd=None, Nu=0.0)[source]

Computes the yield chord rotation of an RC member with the expression of EN 1998-3:2005, Eq. (A.10b).

The yield rotation is the sum of the flexural term (including the tension shift of the bending moment diagram), the shear term, and the term of the slip of the longitudinal bars from the anchorage zone (bond-slip):

theta_y = phi_y (Ls + av z) / 3 + 0.0014 (1 + 1.5 h / Ls) + bondslip_factor phi_y db fsyl / (8 sqrt(fc))

where fsyl and fc are in MPa in the last term. av is 1 if shear cracking precedes flexural yielding and 0 otherwise. Unless it is given, it is determined from the yield moment and the shear resistance of the concrete, see _get_av_ec8() and _get_vrc_ec2(). The inputs may be scalars or arrays of the same shape (e.g., the start, mid and end sections of a beam), and the result has the same shape.

Parameters:
  • phi_y (float | np.ndarray) – Yield curvature of the end section (1/m).

  • h (float | np.ndarray) – Section depth in the bending direction (m).

  • Ls (float | np.ndarray) – Shear span (m), i.e., the moment-to-shear ratio at the end section.

  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • fsyl (float | np.ndarray) – Yield strength of the longitudinal steel (kPa).

  • db (float | np.ndarray) – Diameter of the longitudinal bars (m).

  • bondslip_factor (float, optional) – Factor of the bond-slip term, 1.0 if the slip of the longitudinal bars from the anchorage zone is possible and 0.0 otherwise. By default 1.0.

  • av (float | np.ndarray | None, optional) – Factor of the tension shift, 1.0 if shear cracking is expected to precede flexural yielding and 0.0 otherwise. If None, it is determined from My, b, As_tens, dd and Nu. By default None.

  • z (float | np.ndarray | None, optional) – Lever arm (m). If None, 0.9 * (0.9 * h), i.e., 0.9 times the effective depth 0.9 h.

  • include_shear (bool, optional) – If True, the shear term is included. If False, it is left out, e.g., if the shear deformations are modelled separately. By default True.

  • My (float | np.ndarray | None, optional) – Yield moment of the end section (kNm). Required if av is None.

  • b (float | np.ndarray | None, optional) – Section width (m). Required if av is None.

  • As_tens (float | np.ndarray | None, optional) – Area of the tension reinforcement (m2). Required if av is None.

  • dd (float | np.ndarray | None, optional) – Effective depth, i.e., the distance from the extreme compression fiber to the centroid of the tension reinforcement (m). Required if av is None.

  • Nu (float | np.ndarray, optional) – Axial force, positive in compression (kN), used if av is None. By default 0.0, e.g., for beams.

Returns:

Yield chord rotation.

Return type:

float | np.ndarray

Raises:

ValueError – If av is None and any of My, b, As_tens and dd is None.

Notes

  • av z is the tension shift of the bending moment diagram, see EN 1992-1-1:2004, 9.2.1.3(2).

  • The shear term is the average shear distortion of the shear span at flexural yielding (Panagiotakos and Fardis, 2001).

References

CEN (2005) Eurocode 8: Design of structures for earthquake resistance - Part 3: Assessment and retrofitting of existing buildings. Brussels, Belgium

Panagiotakos, T. B., & Fardis, M. N. (2001). Deformations of reinforced concrete members at yielding and ultimate. Structural Journal, 98(2), 135-148.

simdesign.utils.rcsection.get_capping_mom_plastic_rot_haselton2016(My, fc, fsyl, rhol, rhoh, sbh, dbl, niu=0.0, bondslip_factor=1.0, rhol_tens=None, rhol_comp=None, cyclic_model=False)[source]

Computes the capping (maximum) moment and the plastic rotation capacity of an RC member with the expressions of Haselton et al. (2016).

The plastic rotation capacity is the rotation between yielding and the peak moment (Eq. 5). The capping moment is the yield moment times the ratio Mc / My = 1.25 (0.89^niu) (0.91^(0.01 fc)) (Haselton et al., 2008, Eq. 3.17). The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • My (float | np.ndarray) – Yield moment.

  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • fsyl (float | np.ndarray) – Yield strength of the longitudinal steel (kPa).

  • rhol (float | np.ndarray) – Longitudinal reinforcement ratio As / (b h).

  • rhoh (float | np.ndarray) – Transverse reinforcement ratio Ash / (s b).

  • sbh (float | np.ndarray) – Spacing of the transverse reinforcement.

  • dbl (float | np.ndarray) – Diameter of the longitudinal bars, used for the slenderness of the bars between the stirrups sn = (sbh / dbl) sqrt(fsyl / 100), with fsyl in MPa (Dhakal and Maekawa, 2002).

  • niu (float | np.ndarray, optional) – Axial load ratio P / (Ag fc). By default 0.0, e.g., for beams.

  • bondslip_factor (float, optional) – Coefficient a_sl, 1.0 if bond-slip is included in the yield rotation and 0.0 otherwise. By default 1.0.

  • rhol_tens (float | np.ndarray | None, optional) – Longitudinal reinforcement ratio on the tension side of a non-symmetric section, for the bending direction considered. It must be given together with rhol_comp. If None, the section is taken as symmetric. By default None.

  • rhol_comp (float | np.ndarray | None, optional) – Longitudinal reinforcement ratio on the compression side of a non-symmetric section, for the bending direction considered. By default None.

  • cyclic_model (bool, optional) – If True, the plastic rotation capacity is reduced for cyclic loading with a factor of 0.7 (Haselton et al., 2016, Eq. 12). By default False.

Returns:

  • Mc (float | np.ndarray) – Capping (maximum) moment.

  • theta_cap_pl (float | np.ndarray) – Plastic rotation capacity, i.e., from yielding to the capping moment.

Raises:

ValueError – If only one of rhol_tens and rhol_comp is given.

Return type:

Tuple[float | ndarray, float | ndarray]

Notes

  • Haselton et al. (2016) use a constant Mc / My = 1.13 (Eq. 9), because the axial load ratio and the concrete strength explain little of its variation (R2 of 0.17). This function uses the expression of Haselton et al. (2008).

  • For a non-symmetric section, the plastic rotation capacity is multiplied by (max(0.01, w_comp) / max(0.01, w_tens))^0.225, with the mechanical reinforcement ratios w = rhol fsyl / fc of the compression and tension sides (Haselton et al., 2016, Eq. 7).

References

Haselton, C. B., Liel, A. B., Taylor-Lange, S. C., & Deierlein, G. G. (2016). Calibration of model to simulate response of reinforced concrete beam-columns to collapse. ACI Structural Journal, 113(6).

Haselton, C. B., Liel, A. B., Lange, S. T., & Deierlein, G. G. (2008). Beam-column element model calibrated for predicting flexural response leading to global collapse of RC frame buildings. Pacific Earthquake Engineering Research Center, University of California, Berkeley, CA.

Dhakal, R. P., & Maekawa, K. (2002). Modeling for postyield buckling of reinforcement. Journal of Structural Engineering, 128(9).

simdesign.utils.rcsection.get_residual_mom_post_capping_rot_haselton2016(Mc, rhoh, niu=0.0, Mr_Mc=0.1, cyclic_model=False)[source]

Computes the residual moment and the post-capping rotation capacity of an RC member with the expressions of Haselton et al. (2016).

The post-capping rotation capacity is the rotation between the peak moment and the residual moment (Eq. 8), limited to 0.10 rad. The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • Mc (float | np.ndarray) – Capping (maximum) moment.

  • rhoh (float | np.ndarray) – Transverse reinforcement ratio Ash / (s b).

  • niu (float | np.ndarray, optional) – Axial load ratio P / (Ag fc). By default 0.0, e.g., for beams.

  • Mr_Mc (float, optional) – Ratio of the residual moment to the capping moment, which is assumed. By default 0.1.

  • cyclic_model (bool, optional) – If True, the post-capping rotation capacity is reduced for cyclic loading with a factor of 0.5 (Haselton et al., 2016, Eq. 13). By default False.

Returns:

  • Mr (float | np.ndarray) – Residual moment.

  • theta_pc (float | np.ndarray) – Post-capping rotation capacity, i.e., from the capping moment to the residual moment.

Return type:

Tuple[float | ndarray, float | ndarray]

References

Haselton, C. B., Liel, A. B., Taylor-Lange, S. C., & Deierlein, G. G. (2016). Calibration of model to simulate response of reinforced concrete beam-columns to collapse. ACI Structural Journal, 113(6).

simdesign.utils.rcsection.get_lp_priestley_2007(Ls, fsyl, db)[source]

Computes the plastic hinge length of an RC member with the expression of Priestley et al. (2007):

Lp = 0.08 Ls + 0.022 fsyl db

where fsyl is in MPa and Ls and db are in mm. The inputs may be scalars or arrays of the same shape (e.g., the start, mid and end sections of a beam), and the result has the same shape.

Parameters:
  • Ls (float | np.ndarray) – Shear span (m), i.e., the moment-to-shear ratio at the end section.

  • fsyl (float | np.ndarray) – Yield strength of the longitudinal steel (kPa).

  • db (float | np.ndarray) – Diameter of the longitudinal bars (m).

Returns:

Plastic hinge length (m), rounded to the precision of the package.

Return type:

float | np.ndarray

References

Priestley, M. J. N., Calvi, G. M., & Kowalsky, M. J. (2007). Displacement-based seismic design of structures. IUSS Press.

simdesign.utils.rcsection.get_shear_cracking_sezen_moehle2004(fc, Gc, Ag, d, Ls, P=0.0)[source]

Computes the shear force and shear strain at diagonal cracking of an RC column with the expression of Sezen and Moehle (2004), Eq. 11:

V1 = fct / (a / d) sqrt(1 + P / (fct Ag)) Ae

with the shear span ratio a / d = Ls / d limited to 2-4, the tensile strength of the concrete fct = sqrt(fc) / 3 (in MPa, Collins and Mitchell, 1997, Eq. 3-16) instead of 0.5 sqrt(fc), and the effective shear area Ae = 0.8 Ag. The cracking shear strain is gamma1 = V1 / (Gc Ae), i.e., the uncracked shear stiffness (Zimos et al., 2015). The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • Gc (float | np.ndarray) – Shear modulus of the concrete (kPa).

  • Ag (float | np.ndarray) – Gross area of the section (m2).

  • d (float | np.ndarray) – Effective depth (m).

  • Ls (float | np.ndarray) – Shear span (m).

  • P (float | np.ndarray, optional) – Axial force, positive in compression (kN). By default 0.0.

Returns:

  • V1 (float | np.ndarray) – Shear force at diagonal cracking (kN).

  • gamma1 (float | np.ndarray) – Shear strain at diagonal cracking.

Return type:

Tuple[float | ndarray, float | ndarray]

References

Sezen, H., & Moehle, J. P. (2004). Shear strength model for lightly reinforced concrete columns. Journal of Structural Engineering, 130(11), 1692-1703.

Collins, M. P., & Mitchell, D. (1997). Prestressed concrete structures. Prentice Hall.

Zimos, D. K., Mergos, P. E., & Kappos, A. J. (2015). Shear hysteresis model for reinforced concrete elements including the post-peak range. Proceedings of COMPDYN 2015.

simdesign.utils.rcsection.get_shear_strength_priestley1994(fc, Ag, h, c, Ls, Av, fsyh, hc, sbh, P=0.0, k=0.29, theta=45.0)[source]

Computes the components of the shear strength of an RC column with the expressions of Priestley et al. (1994):

  • concrete, Eq. 27: Vc = k sqrt(fc) Ae (fc in MPa), with the effective shear area Ae = 0.8 Ag;

  • axial load, Eq. 28: Vp = P (h - c) / (2 Ls), zero if c > h;

  • truss mechanism, Eq. 29: Vs = (Av fsyh hc / sbh) cot(theta).

The shear strength is Vc + Vp + Vs. The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • Ag (float | np.ndarray) – Gross area of the section (m2).

  • h (float | np.ndarray) – Section depth parallel to the shear force (m).

  • c (float | np.ndarray) – Neutral axis depth (m).

  • Ls (float | np.ndarray) – Shear span (m).

  • Av (float | np.ndarray) – Area of the transverse reinforcement within the spacing sbh, parallel to the shear force (m2).

  • fsyh (float | np.ndarray) – Yield strength of the transverse reinforcement (kPa).

  • hc (float | np.ndarray) – Core dimension parallel to the shear force, measured to the centreline of the transverse reinforcement (m).

  • sbh (float | np.ndarray) – Spacing of the transverse reinforcement (m).

  • P (float | np.ndarray, optional) – Axial force, positive in compression (kN). By default 0.0.

  • k (float, optional) – Factor of the concrete component, which depends on the member displacement ductility (Fig. 7 of the reference). By default 0.29, for low ductility.

  • theta (float, optional) – Angle of the diagonal compression struts to the member axis (degrees). By default 45.0 (Zimos et al., 2015).

Returns:

  • Vc (float | np.ndarray) – Concrete component (kN).

  • Vp (float | np.ndarray) – Axial load component (kN).

  • Vs (float | np.ndarray) – Truss mechanism component (kN).

Return type:

Tuple[float | ndarray, float | ndarray, float | ndarray]

References

Priestley, M. N., Verma, R., & Xiao, Y. (1994). Seismic shear strength of reinforced concrete columns. Journal of Structural Engineering, 120(8), 2310-2329.

simdesign.utils.rcsection.get_shear_strains_mergos_kappos2012(V1, gamma1, V2, Es, Ec, b, hc, rhoh, fsyh, fc, Ls, h, nu=0.0, theta=45.0)[source]

Computes the cracked shear stiffness and the shear strains at the maximum shear force and at the onset of shear failure of an RC column with the expressions of Mergos and Kappos (2012).

The cracked shear stiffness follows the truss analogy (Eq. 7), with the core dimension hc instead of d - d'. The shear strain at the maximum shear force V2 is the truss strain gamma1 + (V2 - V1) / GA1 corrected for the axial load and the shear span (Eqs. 8-10), and the shear strain at the onset of shear failure follows Eq. 11. The axial load ratio, the shear span ratio and the mechanical transverse reinforcement ratio are limited to the ranges of the calibration (0.6 or 0.4, 2.5 and 0.08). The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • V1 (float | np.ndarray) – Shear force at diagonal cracking (kN).

  • gamma1 (float | np.ndarray) – Shear strain at diagonal cracking.

  • V2 (float | np.ndarray) – Maximum shear force (kN).

  • Es (float | np.ndarray) – Elastic modulus of the transverse reinforcement (kPa).

  • Ec (float | np.ndarray) – Elastic modulus of the concrete (kPa).

  • b (float | np.ndarray) – Section width perpendicular to the shear force (m).

  • hc (float | np.ndarray) – Core dimension parallel to the shear force, measured to the centreline of the transverse reinforcement (m).

  • rhoh (float | np.ndarray) – Transverse reinforcement ratio parallel to the shear force.

  • fsyh (float | np.ndarray) – Yield strength of the transverse reinforcement (kPa).

  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • Ls (float | np.ndarray) – Shear span (m).

  • h (float | np.ndarray) – Section depth parallel to the shear force (m).

  • nu (float | np.ndarray, optional) – Axial load ratio P / (Ag fc). By default 0.0.

  • theta (float, optional) – Angle of the diagonal compression struts to the member axis (degrees). By default 45.0.

Returns:

  • GA1 (float | np.ndarray) – Cracked shear stiffness (kN).

  • gamma2 (float | np.ndarray) – Shear strain at the maximum shear force.

  • gamma3 (float | np.ndarray) – Shear strain at the onset of shear failure.

Return type:

Tuple[float | ndarray, float | ndarray, float | ndarray]

References

Mergos, P. E., & Kappos, A. J. (2012). A gradual spread inelasticity model for R/C beam-columns, accounting for flexure, shear and anchorage slip. Engineering Structures, 44, 94-106.

simdesign.utils.rcsection.get_shear_post_peak_zimos2015(Vmax, P, b, d, Ag, Ac, rhol, rhoh, fc, fsyl, fsyh, sbh, dbl, nu=0.0)[source]

Computes the slope of the descending branch and the total post-peak shear strain of an RC column with the expressions of Zimos et al. (2015).

The residual shear force is Vmax (1 - Spp gamma_tpp) (Eq. 3), with the normalised slope of the descending branch Spp (Eq. 4) and the total post-peak shear strain gamma_tpp (Eq. 7), which is zero without axial load. The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • Vmax (float | np.ndarray) – Maximum shear force (kN).

  • P (float | np.ndarray) – Axial force, positive in compression (kN).

  • b (float | np.ndarray) – Section width perpendicular to the shear force (m).

  • d (float | np.ndarray) – Effective depth (m).

  • Ag (float | np.ndarray) – Gross area of the section (m2).

  • Ac (float | np.ndarray) – Area of the confined concrete core (m2).

  • rhol (float | np.ndarray) – Longitudinal reinforcement ratio Asl / Ag.

  • rhoh (float | np.ndarray) – Transverse reinforcement ratio parallel to the shear force.

  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • fsyl (float | np.ndarray) – Yield strength of the longitudinal reinforcement (kPa).

  • fsyh (float | np.ndarray) – Yield strength of the transverse reinforcement (kPa).

  • sbh (float | np.ndarray) – Spacing of the transverse reinforcement (m).

  • dbl (float | np.ndarray) – Average diameter of the longitudinal bars (m).

  • nu (float | np.ndarray, optional) – Axial load ratio P / (Ag fc). By default 0.0.

Returns:

  • Spp (float | np.ndarray) – Normalised slope of the descending branch, i.e., the relative drop of the shear force per unit shear strain.

  • gamma_tpp (float | np.ndarray) – Total post-peak shear strain.

Return type:

Tuple[float | ndarray, float | ndarray]

References

Zimos, D. K., Mergos, P. E., & Kappos, A. J. (2015). Shear hysteresis model for reinforced concrete elements including the post-peak range. Proceedings of COMPDYN 2015.

simdesign.utils.rcsection.get_shear_residual_zimos2015(Vmax, Spp, gamma_tpp, Vr_Vmax=0.1)[source]

Computes the residual point of the shear force - shear strain backbone of an RC column with the linear descending branch of Zimos et al. (2015), Eq. 3:

V = Vmax (1 - Spp (gamma - gamma_sh,f))

The residual point is at the onset of axial failure, i.e., at the total post-peak shear strain gamma_tpp after the onset of shear failure gamma_sh,f. If the shear force there is lower than Vr_Vmax Vmax (or negative, if the shear strength vanishes before axial failure), the residual point is taken on the descending branch where the shear force is Vr_Vmax Vmax, i.e., at gamma_tpp = (1 - Vr_Vmax) / Spp, so that the slope of the branch is kept. The inputs may be scalars or arrays of the same shape, and the results have the same shape.

Parameters:
  • Vmax (float | np.ndarray) – Maximum shear force, at the onset of shear failure (kN).

  • Spp (float | np.ndarray) – Normalised slope of the descending branch, see get_shear_post_peak_zimos2015().

  • gamma_tpp (float | np.ndarray) – Total post-peak shear strain at the onset of axial failure, see get_shear_post_peak_zimos2015().

  • Vr_Vmax (float, optional) – Minimum ratio of the residual to the maximum shear force, which is assumed. By default 0.1.

Returns:

  • Vr (float | np.ndarray) – Residual shear force (kN).

  • gamma_tpp (float | np.ndarray) – Post-peak shear strain of the residual point, i.e., from the onset of shear failure.

Return type:

Tuple[float | ndarray, float | ndarray]

References

Zimos, D. K., Mergos, P. E., & Kappos, A. J. (2015). Shear hysteresis model for reinforced concrete elements including the post-peak range. Proceedings of COMPDYN 2015.

simdesign.utils.rcsection.get_shear_strength_asce41_17(fc, Ag, d, Av, fsyh, sbh, Ls, P=0.0, k=1.0, lambda_=1.0)[source]

Computes the shear strength of an RC column with the expression of ASCE/SEI 41-17, Eq. 10-3 (after Sezen and Moehle, 2004):

Vn = k [alpha Av fyt d / s + lambda (0.5 sqrt(fc) / (M / V d)) sqrt(1 + P / (0.5 sqrt(fc) Ag)) 0.8 Ag]

in MPa, with M / V d = Ls / d limited to 2-4, and the effectiveness factor of the transverse reinforcement alpha equal to 1 for s / d <= 0.75, 0 for s / d >= 1 and linear in between. The inputs may be scalars, and the result has the same shape.

Parameters:
  • fc (float | np.ndarray) – Concrete compressive strength (kPa).

  • Ag (float | np.ndarray) – Gross area of the section (m2).

  • d (float | np.ndarray) – Effective depth (m); ASCE/SEI 41-17 permits 0.8 h.

  • Av (float | np.ndarray) – Area of the transverse reinforcement within the spacing sbh, parallel to the shear force (m2).

  • fsyh (float | np.ndarray) – Yield strength of the transverse reinforcement (kPa).

  • sbh (float | np.ndarray) – Spacing of the transverse reinforcement (m).

  • Ls (float | np.ndarray) – Shear span (m), i.e., the largest moment-to-shear ratio M / V.

  • P (float | np.ndarray, optional) – Axial force, positive in compression (kN). By default 0.0.

  • k (float, optional) – Factor of the strength degradation with the displacement ductility, 1.0 for the initial strength. By default 1.0.

  • lambda (float, optional) – Factor of the concrete aggregate, 1.0 for normal-weight concrete. By default 1.0.

  • lambda_ (float)

Returns:

Shear strength (kN).

Return type:

float | np.ndarray

References

ASCE/SEI 41-17. (2017). Seismic evaluation and retrofit of existing buildings. American Society of Civil Engineers.

Sezen, H., & Moehle, J. P. (2004). Shear strength model for lightly reinforced concrete columns. Journal of Structural Engineering, 130(11), 1692-1703.

simdesign.utils.rcsection.get_shear_stiffness_leborgne_ghannoum2014(Gc, Ag, L)[source]

Computes the elastic stiffness of the shear-drift spring of an RC column with the expression of LeBorgne and Ghannoum (2014), Eq. 1:

k_el = (5 / 6) Gc Ag / L

i.e., the shear stiffness of the rectangular member. The inputs may be scalars or arrays of the same shape, and the result has the same shape.

Parameters:
  • Gc (float | np.ndarray) – Shear modulus of the concrete (kPa).

  • Ag (float | np.ndarray) – Gross area of the section (m2).

  • L (float | np.ndarray) – Clear length of the member (m).

Returns:

Elastic stiffness of the shear spring (kN/m).

Return type:

float | np.ndarray

References

LeBorgne, M. R., & Ghannoum, W. M. (2014). Calibrated analytical element for lateral-strength degradation of reinforced concrete columns. Engineering Structures, 81, 35-48.

simdesign.utils.rcsection.get_shear_degrading_slope_shoraka_elwood2013(P, Av, fsyh, dc, sbh, L)[source]

Computes the degrading slope of the shear-drift backbone of an RC column after shear failure with the expression of Shoraka and Elwood (2013), Eq. 20:

k_deg = 4.5 P (4.6 Av fyt dc / (s P) + 1)^2 / L

The inputs may be scalars or arrays of the same shape, and the result has the same shape.

Parameters:
  • P (float | np.ndarray) – Axial force, positive in compression (kN). It must be positive.

  • Av (float | np.ndarray) – Area of the transverse reinforcement within the spacing sbh, parallel to the shear force (m2).

  • fsyh (float | np.ndarray) – Yield strength of the transverse reinforcement (kPa).

  • dc (float | np.ndarray) – Depth of the column core (m).

  • sbh (float | np.ndarray) – Spacing of the transverse reinforcement (m).

  • L (float | np.ndarray) – Clear length of the member (m).

Returns:

Degrading slope of the shear-drift backbone, as a positive value (kN/m).

Return type:

float | np.ndarray

References

Shoraka, M. B., & Elwood, K. J. (2013). Mechanical model for non ductile reinforced concrete columns. Journal of Earthquake Engineering, 17(7), 937-957.