GenSec — Generic Section Calculator

Version: 0.2.2.dev3

GenSec is a modular Python package for fiber-based cross-section analysis of composite structural members under combined axial force and biaxial bending.

It computes the resistance domain \((N, M_x, M_y)\) of any cross-section composed of arbitrary materials — concrete, reinforcing steel, structural steel, CFRP, timber, or any user-defined \(\sigma\text{-}\varepsilon\) curve — and verifies load demands against it.

Important

GenSec is under active development and has not yet been fully validated for production use. Always cross-check results against independent calculations.

Key capabilities

  • Material-agnostic constitutive laws: parabola-rectangle concrete (EC2 / NTC 2018), elastic-plastic steel with optional hardening, EN 10025-2 structural steel, and arbitrary tabulated \(\sigma\text{-}\varepsilon\) curves.

  • Biaxial bending: full \((N,\,M_x,\,M_y)\) interaction surface with convex-hull demand verification.

  • Uniaxial bending: classic \(N\text{-}M\) interaction diagram as a special case.

  • Utilization ratios: \(\eta = d/r\) for each demand point, where \(d\) is the distance from the domain centroid and \(r\) the distance to the boundary.

  • Per-fiber post-processing: strain and stress at every fiber and rebar for any load state.

  • YAML-driven input: section geometry, materials, and demands in a single file.

  • CLI and Python API: use from the command line or import as a library.

  • EC2 Table 3.1 integration: automatic computation of all concrete parameters from \(f_{ck}\), including high-strength classes (\(f_{ck} > 50\;\text{MPa}\)).

Indices and tables