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.
- Variables:
M1 (float) – Moment around local-z at 1st gauss point (start-section).
M5 (float) – Moment around local-z at 5th gauss point (mid-section).
M9 (float) – Moment around local-z at 9th gauss point (end-section).
V1 (float) – Shear in local-y at 1st gauss point (start-section).
V5 (float) – Shear in local-y at 5th gauss point (mid-section).
V9 (float) – Shear in local-y at 9th gauss point (end-section).
case (Literal['gravity', 'seismic', None], optional) – Type of load combination if forces are computed for a combo, otherwise None. By default None.
- Parameters:
M1 (float)
M5 (float)
M9 (float)
V1 (float)
V5 (float)
V9 (float)
case (Literal['gravity', 'seismic', None])
- M1: float
- M5: float
- M9: float
- V1: float
- V5: float
- V9: float
- case: Literal['gravity', 'seismic', None] = None
- 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.
- Variables:
M1_neg (float) – Negative moment envelope around local-z at 1st gauss point (start-section).
M5_neg (float) – Negative moment envelope around local-z at 5th gauss point (mid-section).
M9_neg (float) – Negative moment envelope around local-z at 9th gauss point (end-section).
M1_pos (float) – Positive moment envelope around local-z at 1st gauss point (start-section).
M5_pos (float) – Positive moment envelope around local-z at 5th gauss point (mid-section).
M9_pos (float) – Positive moment envelope around local-z at 9th gauss point (end-section).
V1 (float) – Shear envelope in local-y at 1st gauss point (start-section).
V5 (float) – Shear envelope in local-y at 5th gauss point (mid-section).
V9 (float) – Shear envelope in local-y at 9th gauss point (end-section).
- 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: float
- M5_neg: float
- M9_neg: float
- M1_pos: float
- M5_pos: float
- M9_pos: float
- V1: float
- V5: float
- V9: 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.
- Variables:
ok (bool) – Flag to check section adequacy.
line (Line) – Line representation of beam (tag and points).
h (float) – Beam height (depth).
b (float) – Beam breadth (width).
steel (SteelBase) – Steel material.
concrete (ConcreteBase) – Concrete material.
typology (Literal[1, 2]) – Beam typology: 1 for wide beams, 2 for emergent beams.
exterior (bool) – True if the beam is exterior.
slab_wg (List[float]) – Uniformly distributed permanent loads transferred from slabs.
slab_wq (List[float]) – Uniformly distributed variable loads transferred from slabs.
slab_alpha (List[float]) – Beam load distribution coefficients, alpha.
stairs_wg (float) – Uniformly distributed permanent loads transferred from stairs.
stairs_wq (float) – Uniformly distributed variable loads transferred from stairs.
infill_wg (float) – Infill loading on beams.
gamma_rc (float) – Reinforced concrete unit weight.
pre_Md (float) – Bending moment for preliminary design.
pre_Vd (float) – Shear force for preliminary design.
forces (Dict[str, BeamForces]) – Dictionary containing forces obtained from unique load cases (in load combos), e.g., ‘G’, ‘Q’, ‘E+X’, ‘E-X’, ‘E+Y’, ‘E-Y’.
design_forces (List[BeamForces]) – List of forces obtained from each load combination (design forces).
pre_h (float) – Preliminary design beam height.
pre_b (float) – Preliminary design beam breadth (width).
cover (float) – Concrete cover.
columns (List[ColumnBase | None]) – 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.
Asl_top_req (Array3[np.float64]) – Required longitudinal reinforcement area at top.
Asl_bot_req (Array3[np.float64]) – Required longitudinal reinforcement area at bottom.
Ash_sbh_req (Array3[np.float64]) – Required transverse reinforcement area to spacing ratio.
dbl_t1 (Array3[np.float64]) – Diameter of top corner longitudinal bars.
nbl_t1 (Array3[np.int64]) – Number of top corner longitudinal bars.
dbl_t2 (Array3[np.float64]) – Diameter of top internal longitudinal bars.
nbl_t2 (Array3[np.int64]) – Number of top internal longitudinal bars.
dbl_b1 (Array3[np.float64]) – Diameter of bottom corner longitudinal bars.
nbl_b1 (Array3[np.int64]) – Number of bottom corner longitudinal bars.
dbl_b2 (Array3[np.float64]) – Diameter of bottom internal longitudinal bars.
nbl_b2 (Array3[np.int64]) – Number of bottom internal longitudinal bars.
dbh (Array3[np.float64]) – Diameter of horizontal bars (transverse reinforcement).
sbh (Array3[np.float64]) – Spacing of horizontal bars (transverse reinforcement).
nbh_b (Array3[np.int64]) – Number of horizontal bars (stirrup legs) parallel to section width.
nbh_h (Array3[np.int64]) – Number of horizontal bars (stirrup legs) parallel to section height.
MIN_H_EB (float) – Default minimum height (depth) of emergent beams.
MIN_B_EB (float) – Default minimum breadth (width) of emergent beams.
MAX_B_EB (float) – Default maximum breadth (width) of emergent beams.
MAX_H_EB (float) – Default maximum height (depth) of emergent beams.
MIN_H_WB (float) – Default minimum height (depth) of wide beams.
MIN_B_WB (float) – Default minimum breadth (width) of wide beams.
MAX_B_WB (float) – Default maximum breadth (width) of wide beams.
MAX_H_WB (float) – Default maximum height (depth) of wide beams.
B_INCR_EB (float) – Amount of breadth increase per design iteration for emergent beams.
H_INCR_EB (float) – Amount of height increase per design iteration for emergent beams.
B_INCR_WB (float) – Amount of breadth increase per design iteration for wide beams.
H_INCR_WB (float) – Amount of height increase per design iteration for wide beams.
MAX_ASPECT_RATIO_EB (float) – Maximum aspect ratio (height to breadth) for emergent beams.
MAX_ASPECT_RATIO_WB (float) – Maximum aspect ratio (breadth to height) for wide beams.
fc_q (float) – In-situ (quality adjusted) concrete compressive strength.
fsyl_q (float) – In-situ (quality adjusted) longitudinal reinforcement yield strength.
fsyh_q (float) – In-situ (quality adjusted) transverse reinforcement yield strength.
nbh_b_q (Array3[np.int64]) – In-situ number of horizontal bars (stirrup legs) parallel to section width.
nbh_h_q (Array3[np.int64]) – In-situ (quality adjusted) number of horizontal bars (stirrup legs) parallel to section height.
dbh_q (Array3[np.float64]) – In-situ (quality adjusted) diameter of transverse bars.
sbh_q (Array3[np.float64]) – In-situ (quality adjusted) spacing of transverse bars.
cover_q (float) – In-situ (quality adjusted) concrete cover.
dbl_t1_q (Array3[np.float64]) – In-situ (quality adjusted) diameter of top corner longitudinal bars.
nbl_t1_q (Array3[np.int64]) – In-situ (quality adjusted) number of top corner longitudinal bars.
dbl_t2_q (Array3[np.float64]) – In-situ (quality adjusted) diameter of top internal longitudinal bars.
nbl_t2_q (Array3[np.int64]) – In-situ (quality adjusted) number of top internal longitudinal bars.
dbl_b1_q (Array3[np.float64]) – In-situ (quality adjusted) diameter of bottom corner longitudinal bars.
nbl_b1_q (Array3[np.int64]) – In-situ (quality adjusted) number of bottom corner longitudinal bars.
dbl_b2_q (Array3[np.float64]) – In-situ (quality adjusted) diameter of bottom internal longitudinal bars.
nbl_b2_q (Array3[np.int64]) – In-situ (quality adjusted) number of bottom internal longitudinal bars.
- Parameters:
line (Line)
typology (Literal[1, 2])
gamma_rc (float)
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 -----|- concrete: ConcreteBase
- pre_Md: float
- pre_Vd: float
- design_forces: List[BeamForces]
- pre_h: float
- pre_b: float
- cover: float
- columns: List[ColumnBase | None]
- Asl_top_req: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- Asl_bot_req: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- Ash_sbh_req: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- dbl_t1: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_t1: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbl_t2: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_t2: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbl_b1: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_b1: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbl_b2: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_b2: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbh: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- sbh: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbh_b: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- nbh_h: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- MIN_H_EB: float = 0.3
- MIN_B_EB: float = 0.2
- MAX_B_EB: float = 1.0
- MAX_H_EB: float = 1.0
- MIN_H_WB: float = 0.15
- MIN_B_WB: float = 0.3
- MAX_B_WB: float = 0.8
- MAX_H_WB: float = 1.0
- B_INCR_EB: float = 0.05
- H_INCR_EB: float = 0.05
- B_INCR_WB: float = 0.05
- H_INCR_WB: float = 0.05
- MAX_ASPECT_RATIO_EB: float = 2.0
- MAX_ASPECT_RATIO_WB: float = 3.0
- fc_q: float
- fsyl_q: float
- fsyh_q: float
- nbh_b_q: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- nbh_h_q: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbh_q: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- sbh_q: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- cover_q: float
- dbl_t1_q: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_t1_q: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbl_t2_q: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_t2_q: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbl_b1_q: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_b1_q: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- dbl_b2_q: Annotated[ndarray[tuple[Any, ...], dtype[float64]], Literal[3]]
- nbl_b2_q: Annotated[ndarray[tuple[Any, ...], dtype[int64]], Literal[3]]
- gamma_rc: float
- typology: Literal[1, 2]
- b: float
- h: float
- exterior: bool
- ok: bool
- slab_wg: List[float]
- slab_wq: List[float]
- slab_alpha: List[float]
- forces: Dict[str, BeamForces]
- stairs_wg: float
- stairs_wq: float
- infill_wg: float
- 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