simdesign.rcmrf.bdim.baselib.column

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

class simdesign.rcmrf.bdim.baselib.column.ColumnForces(N1, Mx1, Vy1, My1, Vx1, N9, Mx9, Vy9, My9, Vx9, case=None)[source]

Bases: object

Data class for storing element forces.

Parameters:
  • N1 (float)

  • Mx1 (float)

  • Vy1 (float)

  • My1 (float)

  • Vx1 (float)

  • N9 (float)

  • Mx9 (float)

  • Vy9 (float)

  • My9 (float)

  • Vx9 (float)

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

N1

Axial force at 1st gauss point (start-section).

Type:

float

Mx1

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

Type:

float

Vy1

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

Type:

float

My1

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

Type:

float

Vx1

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

Type:

float

N9

Axial force at 9th gauss point (end-section).

Type:

float

Mx9

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

Type:

float

Vy9

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

Type:

float

My9

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

Type:

float

Vx9

Shear in local-x 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.column.ColumnEnvelopeForces(N1_neg, N1_pos, Mx1_neg, Mx1_pos, Vy1, My1_neg, My1_pos, Vx1, N9_neg, N9_pos, Mx9_neg, Mx9_pos, Vy9, My9_neg, My9_pos, Vx9)[source]

Bases: object

Data class for storing element envelope forces.

Parameters:
  • N1_neg (float)

  • N1_pos (float)

  • Mx1_neg (float)

  • Mx1_pos (float)

  • Vy1 (float)

  • My1_neg (float)

  • My1_pos (float)

  • Vx1 (float)

  • N9_neg (float)

  • N9_pos (float)

  • Mx9_neg (float)

  • Mx9_pos (float)

  • Vy9 (float)

  • My9_neg (float)

  • My9_pos (float)

  • Vx9 (float)

N1_neg

Negative axial force envelope (maximum compression force) at 1st gauss point (start-section).

Type:

float

N1_pos

Positive axial force envelope (maximum tension force) at 1st gauss point (start-section).

Type:

float

Mx1_neg

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

Type:

float

Mx1_pos

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

Type:

float

Vy1

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

Type:

float

My1_neg

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

Type:

float

My1_pos

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

Type:

float

Vx1

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

Type:

float

N9_neg

Negative axial force envelope (maximum compression force) at 9th gauss point (end-section).

Type:

float

N9_pos

Positive axial force envelope (maximum tension force) at 9th gauss point (end-section).

Type:

float

Mx9_neg

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

Type:

float

Mx9_pos

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

Type:

float

Vy9

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

Type:

float

My9_neg

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

Type:

float

My9_pos

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

Type:

float

Vx9

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

Type:

float

class simdesign.rcmrf.bdim.baselib.column.ColumnBase(line, section, gamma_rc)[source]

Bases: ABC

Abstract base class for columns.

Must be inherited by design-class-specific columns.

Parameters:
  • line (Line)

  • section (Literal[1, 2])

  • gamma_rc (float)

steel

Steel material.

Type:

SteelBase

concrete

Concrete material.

Type:

ConcreteBase

bx

Breadth (width) along global X.

Type:

float

by

Breadth (width) along global Y.

Type:

float

section

Column cross-section type: 1: square solid section. 2: rectangular solid section.

Type:

Literal[1, 2]

line

Line representation of column (tag and points).

Type:

Line

gamma_rc

Reinforced concrete unit weight.

Type:

float

pre_Nq_pos

Expected axial force due to variable loads (factored for position).

Type:

float

pre_Ng_pos

Expected axial force due to permanent loads (factored for position).

Type:

float

pre_Nq

Expected axial force due to variable loads (unfactored).

Type:

float

pre_Ng

Expected axial force due to permanent loads (unfactored).

Type:

float

pre_Nd

Expected preliminary design axial force.

Type:

float

orient

Direction of greater dimension in global axis.

Type:

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

ok_x

Flag to check section adequacy in x direction.

Type:

bool

ok_y

Flag to check section adequacy in y direction.

Type:

bool

pre_bx

Preliminary design breadth (width) along global X.

Type:

float

pre_by

Preliminary design breadth (width) along global Y.

Type:

float

cover

Concrete cover.

Type:

float

Aslx_req

Required longitudinal reinforcement area at bottom or top side of the section. In other words, required area of bars distributed along -x on one side.

Type:

float

Asly_req

Required longitudinal reinforcement area at left or right side of the section. In other words, required area of bars distributed along -y on one side.

Type:

float

Ashx_sbh_req

Required ratio of transverse reinforcement area along -x axis (i.e., parallel to -x axis) to the bar spacing.

Type:

float

Ashy_sbh_req

Required ratio of transverse reinforcement area along -y axis (i.e., parallel to -y axis) to the bar spacing.

Type:

float

dbl_cor

Diameter of corner longitudinal bars (reinforcement).

Type:

float

dbl_int

Diameter of internal longitudinal bars (reinforcement).

Type:

float

nblx_int

Number of internal longitudinal bars at bottom or top side of the section. In other words, half of the total number of internal bars distributed along X (on one side).

Type:

int

nbly_int

Number of internal longitudinal bars at left or right side of the section. In other words, half of the total number of internal bars distributed along Y (on one side).

Type:

int

dbh

Diameter of horizontal bars (transverse reinforcement).

Type:

float

sbh

Spacing of horizontal bars (transverse reinforcement).

Type:

float

nbh_x

Number of horizontal bars (stirrup legs) along -x axis.

Type:

float

nbh_y

Number of horizontal bars (stirrup legs) along -y axis.

Type:

float

MAX_B_SQUARE

The default maximum square column dimension.

Type:

float

MAX_B_RECTANGLE

The default maximum rectangular column dimension.

Type:

float

MIN_B_SQUARE

The default minimum square column dimension.

Type:

float

MIN_B_RECTANGLE

The default minimum rectangular column dimension.

Type:

float

BX_INCR

Controls amount of bx increase in design iterations.

Type:

float

BY_INCR

Controls amount of by increase in design iterations.

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, ColumnForces]

design_forces

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

Type:

List[ColumnForces]

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

sbh_q

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

Type:

float

dbh_q

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

Type:

float

nbh_x_q

In-situ (quality adjusted) number of horizontal bars (stirrup legs) along -x axis.

Type:

float

nbh_y_q

In-situ (quality adjusted) number of horizontal bars (stirrup legs) along -y axis.

Type:

float

cover_q

In-situ (quality adjusted) concrete cover.

Type:

float

dbl_cor_q

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

Type:

float

dbl_int_q

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

Type:

float

nblx_int_q

In-situ (quality adjusted) number of internal longitudinal bars at bottom or top side of the section.

Type:

int

nbly_int_q

In-situ (quality adjusted) number of internal longitudinal bars at left or right side of the section.

Type:

int

position_factor

Position factor considered to account for the column axial force increase during seismic loading.

Type:

float

hinge_Nq

Expected axial force due to variable loads in nonlinear model (used in hinge calculations).

Type:

float

hinge_Ng

Expected axial force due to permanent loads in nonlinear model (used in hinge calculations).

Type:

float

Notes

Section view:

Y (2)
|__X (1)
    --------------    ----
    |     y      |    |
    |     |      |    |
    |     +--x   |    by
    |            |    |
    |            |    |
    --------------    ----
    |---- bx ----|
property fck: float

Characteristic concrete compressive strength (in base units).

Returns:

Characteristic concrete compressive strength (in base units).

Return type:

float

property fsyk: float

Characteristic steel yield strength (in base units).

Returns:

Characteristic steel yield strength (in base units).

Return type:

float

property fsym: float

Mean steel yield strength (in base units).

Returns:

Mean steel yield strength (in base units).

Return type:

float

property fcd: float

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

Returns:

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

Return type:

float

property fcm: float

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

Returns:

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

Return type:

float

property fsyd: float

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

Returns:

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

Return type:

float

property Ecm: float

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

Returns:

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

Return type:

float

property Ecd: float

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

Returns:

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

Return type:

float

property Gcm: float

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

Returns:

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

Return type:

float

property Gcd: float

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

Returns:

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

Return type:

float

property Es: float

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

Returns:

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

Return type:

float

property Ag: float

Gross area of the column cross-section.

Returns:

Gross area of the column cross-section.

Return type:

float

property Ix: float

Column moment of inertia around x-axis.

Returns:

Column moment of inertia around x-axis.

Return type:

float

property Iy: float

Column moment of inertia around y-axis.

Returns:

Column moment of inertia around y-axis.

Return type:

float

property Ix_eff: float

Effective (cracked) column moment of inertia around x-axis.

Returns:

Effective (cracked) column moment of inertia around x-axis.

Return type:

float

property Iy_eff: float

Effective (cracked) column moment of inertia around y-axis.

Returns:

Effective (cracked) column moment of inertia around y-axis.

Return type:

float

property H: float

Column height.

Returns:

Column height.

Return type:

float

property J: float

Column second polar moment of area.

Returns:

Column second polar moment of area.

Return type:

float

property self_wg: float

Column unit weight per length.

Returns:

Column unit weight per length.

Return type:

float

property elastic_nodes: List[Point]

Column element nodes (points) in elastic model.

Returns:

Column element nodes (points) in elastic model.

Return type:

List[Point]

property max_b: float

Computed maximum allowed column dimension.

Returns:

Computed maximum allowed column dimension.

Return type:

float

property min_b: float

Computed minimum allowed column dimension.

Returns:

Computed minimum allowed column dimension.

Return type:

float

property rhol_max: float

Maximum allowed longitudinal reinforcement ratio.

Returns:

Maximum allowed longitudinal reinforcement ratio.

Return type:

float

property rhol_min: float

Minimum longitudinal reinforcement ratio.

Returns:

Minimum longitudinal reinforcement ratio.

Return type:

float

property rhol: float

Longitudinal reinforcement area ratio.

Returns:

Longitudinal reinforcement area ratio.

Return type:

float

property rhoh_x: float

Transverse reinforcement area (in x) ratio.

Returns:

Transverse reinforcement area (in x) ratio.

Return type:

float

property rhoh_y: float

Transverse reinforcement area (in y) ratio.

Returns:

Transverse reinforcement area (in y) ratio.

Return type:

float

property envelope_forces: ColumnEnvelopeForces

Envelope forces computed from design_forces.

Returns:

Envelope forces computed from design_forces.

Return type:

ColumnEnvelopeForces

restore_dimensions()[source]

Restore column dimension attributes.

bx, by

Return type:

None

set_restore_point()[source]

Set the restore point for specific column attributes.

bx, by, steel, concrete

Return type:

None

increase_dimensions()[source]

Method used for increasing dimensions of inadequate sections.

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

Return type:

None

apply_section_compatibility()[source]

Modifies the section dimensions for compatibility with section type. i.e., square (1), rectangle (2).

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

Return type:

None

predesign_section_dimensions()[source]

Make an initial guess for column section dimensions.

Notes

It can be overwritten for specific design classes.

Return type:

None

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 column rebars.

Return type:

None

validate_transverse_reinforcement()[source]

Method for validating transverse reinforcement.

This method is intended to run after determining column rebars.

Return type:

None

get_mrdx(**kwargs)[source]

Computes the design value of moment of resistance around local x.

This method can be overwritten for specific design class.

Parameters:

Ned (float) – Mean axial force on column.

Returns:

Design value of moment of resistance around local x.

Return type:

float

get_mrdy(**kwargs)[source]

Computes the design value of moment of resistance around local y.

This method can be overwritten for specific design class.

Parameters:

Ned (float) – Mean axial force on column.

Returns:

Design value of moment of resistance around local y.

Return type:

float

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