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, Fint, Fc, Fs, b1)[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).

Variables:
  • c (float) – Neutral axis depth from the top fiber.

  • Fint (float) – Internal axial resultant. Positive sign is compression.

  • Fc (float) – Concrete compressive resultant from the assumed stress block.

  • Fs (np.ndarray) – Steel forces for each reinforcement layer.

  • b1 (float) – Stress-block centroid factor (dimensionless) used to locate the concrete compressive resultant within the compression zone.

Parameters:
  • c (float)

  • Fint (float)

  • Fc (float)

  • Fs (ndarray)

  • b1 (float)

c: float
Fint: float
Fc: float
Fs: ndarray
b1: float
simdesign.utils.rcsection.get_moments(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).

  • 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 (bool, optional) – Print/debug flag: - 0: no output - 1: print final moments - Use an int >= 2 to print iteration progress.

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_cr (float) – Yield curvature (rad/m).

  • cy (float) – Neutral axis depth at first yield (m).

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)[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.

Returns:

  • w_dash (list[float]) – Clear 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) – Concrete cover to centerline of 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) – Concrete cover to centerline of 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.