simdesign.rcmrf.bdim.baselib.beam

This module provides the base class for representing the beams within the BDIM layer.

class simdesign.rcmrf.bdim.baselib.beam.BeamForces(M1, M5, M9, V1, V5, V9, case=None)[source]

Bases: object

Data class for storing element forces.

Parameters:
  • M1 (float)

  • M5 (float)

  • M9 (float)

  • V1 (float)

  • V5 (float)

  • V9 (float)

  • case (Literal['gravity', 'seismic', None])

M1

Moment around local-z at 1st gauss point (start-section).

Type:

float

M5

Moment around local-z at 5th gauss point (mid-section).

Type:

float

M9

Moment around local-z at 9th gauss point (end-section).

Type:

float

V1

Shear in local-y at 1st gauss point (start-section).

Type:

float

V5

Shear in local-y at 5th gauss point (mid-section).

Type:

float

V9

Shear in local-y at 9th gauss point (end-section).

Type:

float

case

Type of load combination if forces are computed for a combo, otherwise None. By default None.

Type:

Literal[‘gravity’, ‘seismic’, None], optional

class simdesign.rcmrf.bdim.baselib.beam.BeamEnvelopeForces(M1_neg, M5_neg, M9_neg, M1_pos, M5_pos, M9_pos, V1, V5, V9)[source]

Bases: object

Data class for storing element envelope forces.

Parameters:
  • M1_neg (float)

  • M5_neg (float)

  • M9_neg (float)

  • M1_pos (float)

  • M5_pos (float)

  • M9_pos (float)

  • V1 (float)

  • V5 (float)

  • V9 (float)

M1_neg

Negative moment envelope around local-z at 1st gauss point (start-section).

Type:

float

M5_neg

Negative moment envelope around local-z at 5th gauss point (mid-section).

Type:

float

M9_neg

Negative moment envelope around local-z at 9th gauss point (end-section).

Type:

float

M1_pos

Positive moment envelope around local-z at 1st gauss point (start-section).

Type:

float

M5_pos

Positive moment envelope around local-z at 5th gauss point (mid-section).

Type:

float

M9_pos

Positive moment envelope around local-z at 9th gauss point (end-section).

Type:

float

V1

Shear envelope in local-y at 1st gauss point (start-section).

Type:

float

V5

Shear envelope in local-y at 5th gauss point (mid-section).

Type:

float

V9

Shear envelope in local-y at 9th gauss point (end-section).

Type:

float

class simdesign.rcmrf.bdim.baselib.beam.BeamBase(line, typology, gamma_rc)[source]

Bases: ABC

Abstract base class for beams.

Must be inherited by design-class-specific beams.

Parameters:
  • line (Line)

  • typology (Literal[1, 2])

  • gamma_rc (float)

ok

Flag to check section adequacy.

Type:

bool

line

Line representation of beam (tag and points).

Type:

Line

h

Beam height (depth).

Type:

float

b

Beam breadth (width).

Type:

float

steel

Steel material.

Type:

SteelBase

concrete

Concrete material.

Type:

ConcreteBase

typology

Beam typology: 1 for wide beams, 2 for emergent beams.

Type:

Literal[1, 2]

exterior

True if the beam is exterior.

Type:

bool

slab_wg

Uniformly distributed permanent loads transferred from slabs.

Type:

List[float]

slab_wq

Uniformly distributed variable loads transferred from slabs.

Type:

List[float]

slab_alpha

Beam load distribution coefficients, alpha.

Type:

List[float]

stairs_wg

Uniformly distributed permanent loads transferred from stairs.

Type:

float

stairs_wq

Uniformly distributed variable loads transferred from stairs.

Type:

float

infill_wg

Infill loading on beams.

Type:

float

gamma_rc

Reinforced concrete unit weight.

Type:

float

pre_Md

Bending moment for preliminary design.

Type:

float

pre_Vd

Shear force for preliminary design.

Type:

float

forces

Dictionary containing forces obtained from unique load cases (in load combos), e.g., ‘G’, ‘Q’, ‘E+X’, ‘E-X’, ‘E+Y’, ‘E-Y’.

Type:

Dict[str, BeamForces]

design_forces

List of forces obtained from each load combination (design forces).

Type:

List[BeamForces]

pre_h

Preliminary design beam height.

Type:

float

pre_b

Preliminary design beam breadth (width).

Type:

float

cover

Concrete cover.

Type:

float

columns

Columns connected to beam end nodes i and j: [Ci_top, Ci_bot, Cj_top, Cj_bot]. Columns which are not found are equal to None.

Type:

List[ColumnBase | None]

Asl_top_req

Required longitudinal reinforcement area at top.

Type:

Array3[np.float64]

Asl_bot_req

Required longitudinal reinforcement area at bottom.

Type:

Array3[np.float64]

Ash_sbh_req

Required transverse reinforcement area to spacing ratio.

Type:

Array3[np.float64]

dbl_t1

Diameter of top corner longitudinal bars.

Type:

Array3[np.float64]

nbl_t1

Number of top corner longitudinal bars.

Type:

Array3[np.int64]

dbl_t2

Diameter of top internal longitudinal bars.

Type:

Array3[np.float64]

nbl_t2

Number of top internal longitudinal bars.

Type:

Array3[np.int64]

dbl_b1

Diameter of bottom corner longitudinal bars.

Type:

Array3[np.float64]

nbl_b1

Number of bottom corner longitudinal bars.

Type:

Array3[np.int64]

dbl_b2

Diameter of bottom internal longitudinal bars.

Type:

Array3[np.float64]

nbl_b2

Number of bottom internal longitudinal bars.

Type:

Array3[np.int64]

dbh

Diameter of horizontal bars (transverse reinforcement).

Type:

Array3[np.float64]

sbh

Spacing of horizontal bars (transverse reinforcement).

Type:

Array3[np.float64]

nbh_b

Number of horizontal bars (stirrup legs) parallel to section width.

Type:

Array3[np.int64]

nbh_h

Number of horizontal bars (stirrup legs) parallel to section height.

Type:

Array3[np.int64]

MIN_H_EB

Default minimum height (depth) of emergent beams.

Type:

float

MIN_B_EB

Default minimum breadth (width) of emergent beams.

Type:

float

MAX_B_EB

Default maximum breadth (width) of emergent beams.

Type:

float

MAX_H_EB

Default maximum height (depth) of emergent beams.

Type:

float

MIN_H_WB

Default minimum height (depth) of wide beams.

Type:

float

MIN_B_WB

Default minimum breadth (width) of wide beams.

Type:

float

MAX_B_WB

Default maximum breadth (width) of wide beams.

Type:

float

MAX_H_WB

Default maximum height (depth) of wide beams.

Type:

float

B_INCR_EB

Amount of breadth increase per design iteration for emergent beams.

Type:

float

H_INCR_EB

Amount of height increase per design iteration for emergent beams.

Type:

float

B_INCR_WB

Amount of breadth increase per design iteration for wide beams.

Type:

float

H_INCR_WB

Amount of height increase per design iteration for wide beams.

Type:

float

MAX_ASPECT_RATIO_EB

Maximum aspect ratio (height to breadth) for emergent beams.

Type:

float

MAX_ASPECT_RATIO_WB

Maximum aspect ratio (breadth to height) for wide beams.

Type:

float

fc_q

In-situ (quality adjusted) concrete compressive strength.

Type:

float

fsyl_q

In-situ (quality adjusted) longitudinal reinforcement yield strength.

Type:

float

fsyh_q

In-situ (quality adjusted) transverse reinforcement yield strength.

Type:

float

nbh_b_q

In-situ number of horizontal bars (stirrup legs) parallel to section width.

Type:

Array3[np.int64]

nbh_h_q

In-situ (quality adjusted) number of horizontal bars (stirrup legs) parallel to section height.

Type:

Array3[np.int64]

dbh_q

In-situ (quality adjusted) diameter of transverse bars.

Type:

Array3[np.float64]

sbh_q

In-situ (quality adjusted) spacing of transverse bars.

Type:

Array3[np.float64]

cover_q

In-situ (quality adjusted) concrete cover.

Type:

float

dbl_t1_q

In-situ (quality adjusted) diameter of top corner longitudinal bars.

Type:

Array3[np.float64]

nbl_t1_q

In-situ (quality adjusted) number of top corner longitudinal bars.

Type:

Array3[np.int64]

dbl_t2_q

In-situ (quality adjusted) diameter of top internal longitudinal bars.

Type:

Array3[np.float64]

nbl_t2_q

In-situ (quality adjusted) number of top internal longitudinal bars.

Type:

Array3[np.int64]

dbl_b1_q

In-situ (quality adjusted) diameter of bottom corner longitudinal bars.

Type:

Array3[np.float64]

nbl_b1_q

In-situ (quality adjusted) number of bottom corner longitudinal bars.

Type:

Array3[np.int64]

dbl_b2_q

In-situ (quality adjusted) diameter of bottom internal longitudinal bars.

Type:

Array3[np.float64]

nbl_b2_q

In-situ (quality adjusted) number of bottom internal longitudinal bars.

Type:

Array3[np.int64]

Notes

Section view of beams along X direction:

Z (3)
|__Y (2)
    --------------    ----
    |     y      |    |
    |     |      |    |
    |  z--+      |    h
    |            |    |
    |            |    |
    --------------    ----
    |---- b -----|

Section view of beams along Y direction:

Z (3)
|__X (1)
    --------------    ----
    |     y      |    |
    |     |      |    |
    |     +--z   |    h
    |            |    |
    |            |    |
    --------------    ----
    |---- b -----|
property fck: float

Characteristic concrete compressive strength.

Returns:

Characteristic concrete compressive strength (in base units).

Return type:

float

property fsyk: float

Characteristic steel yield strength.

Returns:

Characteristic steel yield strength (in base units).

Return type:

float

property fsym: float

Mean steel yield strength.

Returns:

Mean steel yield strength (in base units).

Return type:

float

property fcd: float

Design concrete compressive strength.

Returns:

Design value of concrete compressive strength (in base units).

Return type:

float

property fcm: float

Mean concrete compressive strength.

Returns:

Mean value of concrete compressive strength (in base units).

Return type:

float

property fsyd: float

Design steel yield strength.

Returns:

Design value of steel yield strength (in base units).

Return type:

float

property Ecm: float

Mean elastic Young’s modulus of concrete.

Returns:

Mean value of elastic Young’s modulus of concrete (in base units).

Return type:

float

property Ecd: float

Design elastic Young’s modulus of concrete.

Returns:

Design value of elastic Young’s modulus of concrete (in base units).

Return type:

float

property Gcm: float

Mean elastic shear modulus of concrete.

Returns:

Mean value of elastic shear modulus of concrete (in base units).

Return type:

float

property Gcd: float

Design elastic shear modulus of concrete.

Returns:

Design value of elastic shear modulus of concrete (in base units).

Return type:

float

property Es: float

Elastic Young’s modulus of steel.

Returns:

Elastic Young’s modulus of steel (in base units).

Return type:

float

property Ag: float

Gross cross-sectional area of the beam.

Returns:

Gross cross-sectional area of the beam.

Return type:

float

property Iy: float

Second moment of area about the y-axis.

Returns:

Moment of inertia around y-axis of the beam.

Return type:

float

property Iz: float

Second moment of area about the z-axis.

Returns:

Moment of inertia around z-axis of the beam.

Return type:

float

property Iy_eff: float

Effective (cracked) second moment of area about the y-axis.

Returns:

Moment of inertia around y-axis of the beam.

Return type:

float

property Iz_eff: float

Effective (cracked) second moment of area about the z-axis.

Returns:

Moment of inertia around z-axis of the beam.

Return type:

float

property J: float

Second polar moment of area of the beam.

Returns:

Second polar moment of area of the beam.

Return type:

float

property L: float

Beam length.

Returns:

Beam length.

Return type:

float

property elastic_nodes: List[Point]

Beam nodes (points) in the elastic model.

Returns:

Beam nodes (points) in elastic model.

Return type:

List[Point]

property self_wg: float

Self-weight per unit length.

Returns:

Beam unit weight per length.

Return type:

float

property wg_total: float

Total uniformly distributed permanent load (G).

Returns:

Summation of uniformly distributed permanent loads (G).

Return type:

float

property wg_total_alpha: float

Total permanent load (G) with alpha-factored slab contributions.

Returns:

Summation of equivalent uniformly distributed permanent loads (G).

Return type:

float

Notes

Differently from wg_total, in this case, the slab loads are factored by alpha coefficient.

property wq_total: float

Total uniformly distributed variable load (Q).

Returns:

Summation of uniformly distributed variable loads (Q).

Return type:

float

property wq_total_alpha: float

Total variable load (Q) with alpha-factored slab contributions.

Returns:

Summation of equivalent uniformly distributed variable loads (Q).

Return type:

float

Notes

Differently from wq_total, in this case, the slab loads are factored by alpha coefficient.

property simple_Mg: float

Mid-span bending moment of a simply-supported beam under permanent loads.

Returns:

Expected bending moment at mid-span of simply-supported beam due to permanent loads.

Return type:

float

property simple_Mq: float

Mid-span bending moment of a simply-supported beam under variable loads.

Returns:

Expected bending moment at mid-span of simply-supported beam due to variable loads.

Return type:

float

property simple_Vg: float

Support shear of a simply-supported beam under permanent loads.

Returns:

Expected shear force at support of a simply-supported beam due to permanent loads.

Return type:

float

property simple_Vq: float

Support shear of a simply-supported beam under variable loads.

Returns:

Expected shear force at support of a simply-supported beam due to variable loads.

Return type:

float

property direction: Literal['x', 'y'] | None

Global axis parallel to the beam’s longitudinal axis.

Returns:

Global axis which is parallel to the beam’s line (its direction).

Return type:

Literal[‘x’, ‘y’] | None

property envelope_forces: BeamEnvelopeForces

Envelope forces computed from all design load combinations.

Returns:

Envelope forces computed from design_forces.

Return type:

BeamEnvelopeForces

property rhol_top: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Top longitudinal reinforcement ratio.

Returns:

Top longitudinal reinforcement ratio.

Return type:

Array3[np.float64]

property rhol_bot: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Bottom longitudinal reinforcement ratio.

Returns:

Bottom longitudinal reinforcement ratio.

Return type:

Array3[np.float64]

property rhol: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Total longitudinal reinforcement ratio.

Returns:

Total longitudinal reinforcement ratio.

Return type:

Array3[np.float64]

property rhol_max_tens: float

Maximum allowable longitudinal reinforcement ratio.

Returns:

Maximum longitudinal reinforcement ratio in tens. and comp. zones

Return type:

float

property rhoh_z: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Transverse reinforcement ratio in local-z.

Returns:

Horizontal (transverse) reinforcement ratio in local-z.

Return type:

Array3[np.float64]

property rhoh_y: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Transverse reinforcement ratio in local-y.

Returns:

Horizontal (transverse) reinforcement ratio in local-y.

Return type:

Array3[np.float64]

property max_b: float

Maximum allowed section breadth (width).

Returns:

Computed maximum allowed section breadth (width).

Return type:

float

property max_h: float

Maximum allowed section height (depth).

Returns:

Computed maximum allowed section height (depth).

Return type:

float

property min_b: float

Minimum allowed section breadth (width).

Returns:

Computed minimum allowed section breadth (width).

Return type:

float

property min_h: float

Minimum allowed section height (depth).

Returns:

Computed minimum allowed section height (depth).

Return type:

float

property mrd_pos: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Design resistance moment in the positive (sagging) direction.

Returns:

Design resistance moment of beam in positive direction. Computed for start, mid, end beam sections.

Return type:

Array3[np.float64]

Notes

Required for capacity design of columns.

property mrd_neg: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]

Design resistance moment in the negative (hogging) direction.

Returns:

Design resistance moment of beam in negative direction. Computed for start, mid, end beam sections.

Return type:

Array3[np.float64]

Notes

Required for capacity design of columns.

restore_dimensions()[source]

Restore beam dimension attributes.

b, h

Return type:

None

set_restore_point()[source]

Set the restore point for specific beam attributes.

b, h

increase_dimensions()[source]

Method used for increasing dimensions of inadequate sections.

Used in design iterations. Can be overwritten for each design class.

Notes

Usually, the beam aspect ratio is between 1.5-2.0. Hence, added aspect ratio limit for emergent beams.

Return type:

None

predesign_section_dimensions(slab_h)[source]

Perform preliminary design of beam.

This method makes initial guess for section dimensions.

Parameters:

slab_h (float) – Slab thickness.

Return type:

None

Notes

It can be overwritten for specific design classes.

validate_section_dimensions()[source]

Method for validating section dimensions against maximum.

Return type:

None

validate_longitudinal_reinforcement()[source]

Method for validating longitudinal reinforcement against maximum.

This method is intended to run after determining beam rebars.

Return type:

None

validate_transverse_reinforcement()[source]

Method for validating transverse reinforcement.

This method is intended to run after determining beam rebars.

Return type:

None

abstractmethod verify_section_adequacy()[source]

Abstract method for verifying adequacy of section dimensions.

Return type:

None

abstractmethod compute_required_longitudinal_reinforcement()[source]

Abstract method for computing required longitudinal reinforcement.

Final solution is determined after finding rebar solution to meet the detailing requirements.

Return type:

None

abstractmethod compute_required_transverse_reinforcement()[source]

Abstract method for computing required transverse reinforcement.

Final solution is determined after finding rebar solution to meet the detailing requirements.

Return type:

None