N-M diagram and resistance surface¶
The resistance domain of a cross-section is the set of all internal force states \((N, M_x, M_y)\) that the section can carry at the ultimate limit state. GenSec computes this domain numerically by scanning strain configurations that satisfy the ultimate strain limits of the constituent materials.
Uniaxial N-M diagram¶
For uniaxial bending (\(\chi_y = 0\)), the resistance domain reduces to a 2-D curve in the \((N, M_x)\) plane.
GenSec generates the \(N\text{-}M\) diagram by:
Identifying the pivot points — the extreme fibers of the section and the rebar positions. At ultimate, at least one material is at its strain limit.
For each pivot, scanning the curvature \(\chi_x\) from a large negative value to a large positive value (controlling the neutral axis depth). At each step, the axial strain \(\varepsilon_0\) is computed to satisfy the ultimate strain constraint at the pivot fiber.
Evaluating the direct problem \((\varepsilon_0, \chi_x) \to (N, M_x)\) at each configuration.
Collecting all \((N, M_x)\) points to form the domain boundary.
Important
The curvature scan must cover both positive and negative directions to produce a symmetric, complete diagram. Scanning only one direction is a known source of incorrect asymmetric results.
The number of points along the boundary is controlled by n_points
(default 400).
Biaxial resistance surface¶
For biaxial bending, the resistance domain is a 3-D surface in \((N, M_x, M_y)\) space. GenSec generates it by:
Discretizing the curvature direction angle \(\theta\) in the \((\chi_x, \chi_y)\) plane into
n_anglesequally-spaced values from \(0\) to \(2\pi\).For each angle \(\theta\), performing the same pivot-based scan as in the uniaxial case, but with:
\[\chi_x = \chi \cos\theta, \qquad \chi_y = \chi \sin\theta\]where \(\chi\) is the curvature magnitude being scanned.
Collecting the resulting \((N, M_x, M_y)\) point cloud.
The surface is represented as a point cloud. For demand verification,
it is wrapped in a scipy.spatial.ConvexHull (see
Demand verification).
\(M_x\text{-}M_y\) contour at constant \(N\)¶
A useful 2-D slice of the 3-D surface: at a specified axial force \(N_{\text{fixed}}\), GenSec extracts the \((M_x, M_y)\) interaction contour. This is obtained by intersecting the 3-D convex hull with the plane \(N = N_{\text{fixed}}\) and projecting onto the \((M_x, M_y)\) plane.
This is particularly useful for verifying biaxial bending demands at a known axial load level (e.g. seismic columns).
Convergence and resolution¶
The accuracy of the domain depends on:
Fiber mesh density: controls the accuracy of the direct problem. A finer mesh gives better stress integration but increases computation time. Typical values:
mesh_size = 10–20 mmfor parametric sections,n_fibers_y = 60–120for rectangular sections.Number of scan points (
n_points): controls the density of the domain boundary. 400 points are typically sufficient for smooth \(N\text{-}M\) curves.Number of curvature angles (
n_angles): controls the angular resolution of the biaxial surface. 36 angles give a reasonable approximation; 72 or 144 for publication-quality surfaces.