simdesign.rcmrf.bnsm.baselib.column
This module provides a base class for representing columns within the BNSM layer and for building and exporting their OpenSees representations.
- class simdesign.rcmrf.bnsm.baselib.column.ColumnBase(design, bondslip_factor, capacity_design, load_factors, cyclic_model=False, cracked_section=False)[source]
Bases:
ABCAbstract Base Class for column implementations in BNSM layer.
This class defines the common interface and core behaviour required to: (1) define a column member in the OpenSees domain, and (2) export equivalent Python and Tcl commands.
The column is modelled using a force-based beam-column formulation (
forceBeamColumn) with a plastic-hinge integration scheme (e.g.,HingeRadau). Geometric nonlinearity is accounted for through a P-Delta transformation (geomTransf('PDelta', ...)).Nonlinear behaviour is concentrated within finite plastic-hinge regions at the element ends, while the interior region remains elastic.
Flexural response about the local axes (My and Mz) is represented by phenomenological moment-curvature relationships implemented using uniaxial
Hystereticmaterials and assembled into an aggregated hinge section.When
capacity_designis False, shear behaviour is additionally modelled throughPinching4materials (for Vy and Vz), wrapped withMinMaxlimiters to enforce strength and deformation bounds. These shear components are included in the same aggregated hinge section.The interior region is represented by an elastic section, with optional use of cracked-section (effective) stiffness properties derived from moment-curvature analysis.
- Variables:
design (ColumnBase) – Instance of column design information model.
capacity_design (bool) – Flag to check whether capacity shear design is followed or not.
bondslip_factor (float) – Bondslip factor.
axial_force (float) – Considered axial force on column.
ele_node_i (Node) – Element node at the start of column.
ele_node_j (Node) – Element node at the end of column.
ele_load (float) – Uniformly distributed gravity load along the column.
jnt_offsets (List[float]) – Rigid joint offset values (dx_i, dy_i, dz_i, dx_j, dy_j, dz_j), specified with respect to the global coordinate system.
cracked_section (bool) – If True, the elastic sections uses cracked-section (effective) flexural properties. If False, gross-section properties are used.
cyclic_model (bool) – If True, the model parameters will be adjusted for cyclic analysis.
_cy (float) – Neutral axis depth for shear hinge calculations in local-y.
_cx (float) – Neutral axis depth for shear hinge calculations in local-x.
_Iy_eff (float) – Effective column moment of inertia around local-y.
_Ix_eff (float) – Effective column moment of inertia around local-x.
- Parameters:
design (ColumnBase)
bondslip_factor (float)
capacity_design (bool)
load_factors (Dict[Literal['G', 'Q'], float])
cyclic_model (bool)
cracked_section (bool)
Notes
Section view:
Y (2) |__X (1) -------------- ---- | y | | | | | | | z--+ | by | | | | | | -------------- ---- |---- bx ----| Vectors defining the local axes in Global Coordinate System: vx = np.array([0.0, 0.0, 1.0]) vy = np.array([0.0, 1.0, 0.0]) vz = np.array([-1.0, 0.0, 0.0]) vecxz = np.array([-1.0, 0.0, 0.0]) Compatibility check: np.allclose(vy, np.cross(vecxz, vx)) np.allclose(vz, np.cross(vx,vy))- property ele_tag: int
- Returns:
Tag of beam-column element representing the column.
- Return type:
int
- property vecxz: List[float]
- Returns:
X, Y, and Z components of vecxz for column elements along Z (3).
- Return type:
List[float]
- property Ecm_q: float
- Returns:
Elastic young’s modulus of concrete (in base units).
- Return type:
float
Note
Based on quality adjusted concrete strength.
- property Gcm_q: float
- Returns:
Elastic shear modulus of concrete (in base units).
- Return type:
float
Note
Based on quality adjusted concrete strength.
- property Acc: float
- Returns:
Confined concrete area.
- Return type:
float
- property rhol_q: float
- Returns:
In situ (quality adjusted) longitudinal reinforcement area ratio.
- Return type:
float
- property rhol_q_: float
- Returns:
In situ (quality adjusted) longitudinal reinforcement area ratio. Computed using confined concrete dimensions.
- Return type:
float
- property rhoh_x_q: float
- Returns:
In situ (quality adjusted) transverse reinforcement area (in x) ratio.
- Return type:
float
- property rhoh_y_q: float
- Returns:
In situ (quality adjusted) transverse reinforcement area (in y) ratio.
- Return type:
float
- property rhoh_x_q_: float
- Returns:
In situ (quality adjusted) transverse reinforcement area (in x) ratio. Computed using confined concrete dimensions.
- Return type:
float
- property rhoh_y_q_: float
- Returns:
In situ (quality adjusted) transverse reinforcement area (in y) ratio. Computed using confined concrete dimensions.
- Return type:
float
- property mz_mat_tag: int
Uniaxial material tag for the flexural hinge about local-z (Mz).
- property my_mat_tag: int
Uniaxial material tag for the flexural hinge about local-y (My).
- property vy_mat_tag_: int
Pinching4 material tag for the shear hinge in local-y (Vy).
- property vy_mat_tag: int
MinMax material tag for the shear hinge in local-y (Vy).
- property vz_mat_tag_: int
Pinching4 material tag for the shear hinge in local-z (Vz).
- property vz_mat_tag: int
MinMax material tag for the shear hinge in local-z (Vz).
- property elastic_sec_tag: int
Section tag for the elastic (interior) section.
- property inelastic_sec_tag: int
Section tag for the inelastic aggregated section.
- property int_tag: int
Beam integration tag used by OpenSees.
- property geo_transf_tag: int
Geometric transformation tag used by OpenSees.
- design: ColumnBase
- bondslip_factor: float
- capacity_design: bool
- cyclic_model: bool
- cracked_section: bool
- axial_force: float
- ele_load: float
- jnt_offsets: List[float]
- add_to_ops()[source]
Adds column components to the OpenSees domain (i.e, column element and nodes).
Notes
Same hinge materials are used at both ends.
- Return type:
None
- to_py()[source]
Gets the Python commands to construct column components in OpenSees domain (i.e, column element and nodes).
- Returns:
List of Python commands for constructing the components of column object in OpenSees.
- Return type:
List[str]
Notes
Same hinge materials are used at both ends.
- to_tcl()[source]
Gets the Tcl commands to construct column components in OpenSees domain (i.e, column element and nodes).
- Returns:
List of Tcl commands for constructing the components of column object in OpenSees.
- Return type:
List[str]
Notes
Same hinge materials are used at both ends.
- add_grav_loads_to_ops()[source]
Adds gravity load objects to the OpenSees domain (i.e, point loads at both ends).
- Return type:
None