pycba.section#

PyCBA - Variable (non-prismatic) section properties#

This module provides SectionEI, a segment builder describing the flexural rigidity \(EI(x)\) of a single non-prismatic span. The rigidity is assembled from one or more contiguous segments, each of which is constant, linear, piecewise-linear (pwl) or polynomial (poly). The resulting piecewise function \(EI(x)\) is consumed by the flexibility-integrated element stiffness in pycba.beam.Beam and by the curvature-based post-processing in pycba.results.BeamResults.

The prismatic (constant-\(EI\), scalar) path in PyCBA is completely unaffected: a member is treated as non-prismatic only when its rigidity is supplied as a SectionEI object rather than a scalar float.

Coordinate convention#

x is the span-local physical coordinate: 0 at the start (i-end) of the span and L (the real span length, in length units) at the end. It is not normalised and not a global multi-span coordinate.

Segments and breakpoints#

Segments are added head-to-tail and must be contiguous: each new segment’s x[0] must equal the running end coordinate (the first segment starts at 0). A coincident x carrying a different EI across a join is an allowed step (a genuine discontinuity in EI). The breakpoints are the sorted span-local boundary coordinates, including every segment join and every interior pwl kink; the element flexibility is integrated piece-by-piece between consecutive breakpoints so that kinks and steps are captured exactly.

The total coverage (the running end coordinate of the last segment) is validated against the span length when the section is attached to a Beam.

Classes

SectionEI

Segment-built, piecewise variable flexural rigidity over one span.