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
Segment-built, piecewise variable flexural rigidity over one span. |