pycba.analysis#
PyCBA - Continuous Beam Analysis
Implements the direct stiffness method for linear-elastic continuous beam
analysis. The primary entry point is BeamAnalysis, which assembles
the global stiffness matrix, applies boundary conditions (including prescribed
displacements / support settlements), solves for nodal displacements, and
recovers reactions and member load effects.
PyCBA is unit-agnostic. No conversions are performed; any internally
consistent set of units (e.g. kN/m/kNm, or N/mm/Nmm) may be used as long as
all inputs share the same system. The only exception is BeamAnalysis.plot_results(),
which scales deflections by 1×10³ and labels the axis “mm” — that label is
only correct when the length unit is metres.
Sign conventions#
Vertical displacements and forces: positive upward.
Rotations and moments: positive counter-clockwise.
Settlement (prescribed displacement): negative value = downward.
UDL / point loads: positive value = downward acting load.
Moment loads: positive value = counter-clockwise.
Restraint vector R#
One entry per nodal DOF (vertical then rotational, node by node):
-1— fully fixed (zero displacement unless overridden byD).0— free.+k— elastic spring with stiffness k in consistent force/length (translational) or force·length/angle (rotational) units.
An OO Python adaptation of CBA, originally written for MATLAB: http://www.colincaprani.com/programming/matlab/
Classes
Direct-stiffness continuous beam analyser. |