simdesign.rcmrf.bnsm.baselib.joint
This module provides base classes for representing beam-column joints within the BNSM layer.
The module includes:
JointBase: abstract interface for joint objects, including access to design properties and common functionality.StairsJointBase: mid-storey (stairs) joint implementation that creates a central joint node used to connect offset beam and column elements.FloorJointBase: floor-level joint implementation that can optionally model joint flexibility (rigid, elastic, or inelastic).
- class simdesign.rcmrf.bnsm.baselib.joint.JointBase[source]
Bases:
ABCAbstract base class for beam-column joint implementations in the BNSM layer.
- Variables:
design (JointDesign) – Instance of joint design information model.
- property bx: float
Joint width along global x-axis.
- Returns:
Joint width along global x-axis (based on columns’ section widths).
- Return type:
float
- property by: float
Joint width along global y-axis.
- Returns:
Joint width along global y-axis (based on columns’ section widths).
- Return type:
float
- property h: float
Joint height based on all beam section heights.
- Returns:
Joint height based on all beam section heights.
- Return type:
float
Notes
The largest of the beam heights is selected.
- property fcm: float
Mean concrete compressive strength.
- Returns:
Mean value of concrete compressive strength (in base units).
- Return type:
float
- abstractmethod add_to_ops()[source]
Adds joint model objects to the OpenSees domain.
- Return type:
None
- class simdesign.rcmrf.bnsm.baselib.joint.StairsJointBase(design, mass)[source]
Bases:
JointBaseBase class implementation used in the BNSM layer to represent beam-column joints at a mid-storey level (stairs joint). It provides methods to define a stairs joint in the OpenSees domain and to export equivalent Python and Tcl commands.
The mid-storey joint modelling approach follows macro-model formulations, where joint behaviour is represented through rotational springs based on O’Reilly 2016.
References
O’Reilly, G. J. (2016). Performance-based seismic assessment and retrofit of existing RC frame buildings in Italy (Doctoral dissertation, IUSS Pavia).
- Variables:
center_node (Node) – Central joint node for connecting nodes at joint offset distances.
- Parameters:
design (JointBase)
mass (float)
See also
JointBaseBase class joint definition extended by this class.
- add_to_ops()[source]
Adds stairs joint model objects to the OpenSees domain (i.e., nodes).
- Return type:
None
- class simdesign.rcmrf.bnsm.baselib.joint.FloorJointBase(design, mass, model, load_factors)[source]
Bases:
StairsJointBaseBase class implementation used in the BNSM layer to represent beam-column joints at a floor level. It provides methods to define an floor-level joint in the OpenSees domain and to export equivalent Python and Tcl commands.
- Variables:
floor_node (Node) – Floor node which is constrained by the floor diaphragm.
flexibility_model (Literal['inelastic', 'elastic', 'rigid']) – Joint flexibility model.
axial_force (float) – Axial force acting on joint.
- Parameters:
design (JointBase)
mass (float)
model (Literal['inelastic', 'elastic', 'rigid'])
load_factors (Dict[Literal['G', 'Q'], float])
See also
StairsJointBaseMid-storey (stairs) joint definition that this class extends.
- property mz_tag: int
Material tag for the joint hinge about global-z (Mz).
- Returns:
Material tag for the joint hinge about global-z (Mz).
- Return type:
int
- property my_tag: int
Material tag for the joint hinge about global-y (My).
- Returns:
Material tag for the joint hinge about global-y (My).
- Return type:
int
- property sec_tag: int
Tag of aggregated beam-column joint element section.
- Returns:
Tag of aggregated beam-column joint element section.
- Return type:
int
- property ele_tag: int
Tag of beam-column joint element.
- Returns:
Tag of beam-column joint element.
- Return type:
int
- property fcm: float
Mean concrete compressive strength.
- Returns:
Mean value of concrete compressive strength (in base units).
- Return type:
float
- property hstorey: float
Internal storey height.
- Returns:
Internal storey height.
- Return type:
float
Notes
The equations were derived using constant storey height. If possible the average one is used.
- flexibility_model: Literal['inelastic', 'elastic', 'rigid']
- axial_force: float
- add_to_ops()[source]
Adds floor joint model objects to the OpenSees domain (i.e., joint nodes and flexibility element).
- Return type:
None