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:
objectSection resultants at a given neutral axis depth c.
This container is used internally during axial-force compatibility solves (i.e., finding
csuch 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.