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:
objectData 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:
objectData 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:
ABCAbstract 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
- h
Beam height (depth).
- Type:
float
- b
Beam breadth (width).
- Type:
float
- concrete
Concrete material.
- Type:
- 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:
- 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.
- 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