simdesign.rcmrf.bnsm.cp02.building
This module provides the Building Nonlinear Structural Model (BNSM)
implementation for the CP02 modelling configuration.
- class simdesign.rcmrf.bnsm.cp02.building.Building(design, load_factors={'G': 1.0, 'Q': 0.3}, mass_factors={'G': 1.0, 'Q': 0.3}, scheme='EQL', max_drift=0.05, dincr=0.001, include_infills=True, cyclic_model=False, cracked_beam=False, cracked_column=False)[source]
Bases:
BuildingBaseBNSM implementation for the
CP02model.This class aggregates CP02-specific structural components (e.g. beams, columns, joints, infills) and relies on the behaviour defined in
BuildingBasewithout modification.- Variables:
foundations (List[Foundation]) – List of foundation instances.
floors (List[FloorDiaphragm]) – List of floor instances.
floor_joints (List[FloorJoint]) – List of floor joints instances.
stairs_joints (List[StairsJoint]) – List of stairs joints instances.
beams (List[Beam]) – List of beam instances.
columns (List[Column]) – List of column instances.
infills (List[Infill]) – List of infill instances.
- Parameters:
design (BuildingBase)
load_factors (Dict[Literal['G', 'Q'], float])
mass_factors (Dict[Literal['G', 'Q'], float])
scheme (Literal['FMP', 'EQL', 'MPP', 'TRI', 'UNI'])
max_drift (float)
dincr (float)
include_infills (bool)
cyclic_model (bool)
cracked_beam (bool)
cracked_column (bool)
See also
BuildingBaseBase class defining the core behaviour and configuration.
- foundations: List[Foundation]
- floors: List[FloorDiaphragm]
- floor_joints: List[FloorJoint]
- stairs_joints: List[StairsJoint]
- FoundationClass
alias of
Foundation
- FloorDiaphragmClass
alias of
FloorDiaphragm
- FloorJointClass
alias of
FloorJoint
- StairsJointClass
alias of
StairsJoint
- export_hinges(directory=None)[source]
Export plastic-hinge capacity data for beams and columns to JSON.
For every floor joint and foundation joint in the model, this method computes the hysteretic energy capacity (Eh_cap) and ultimate chord rotation (theta_ult) of the plastic hinges framing into that joint, then writes the collected data to “info_hinges.json” in the target directory.
The hysteretic energy capacity is computed as:
Eh_cap = My * (theta_ult - theta_y) * lambda
where “lambda” is an empirical definition that depends on concrete strength (fc), longitudinal-steel yield strength (fsyl), normalised axial load (niu), and the transverse-reinforcement spacing ratio (s_h = s / h).
lambda = 52 * 0.41^(0.01*(fc + 0.1*fsyl)) * 0.34^niu * 0.21^(s/h)
Notes
Beam ends are tagged “I” for the start end (right/front beam) and “J” for the end (left/rear beam), following the convention in “BEAM_END_MAP”.
Column ends are tagged “I” for the top column and “J” for the bottom column.
For beams, “niu” is assumed to be 0 (axial load neglected).
- Parameters:
directory (str | Path | None)
- Return type:
None