Overview

The package is organised into layered modules, each published as its own subpath export. Every calculation returns a result object carrying the design value, the intermediate calculationDetails, the unit, and a warnings array.

ℹ️ All inputs and outputs use SI units implicitly: MPa for stresses, mm / mm² for geometry, kN·m for moments and kN for forces. Each result object states its unit in the unit field.
ℹ️ Code-provision violations that leave the calculation valid are returned as entries in the warnings array, each citing the exact ACI clause. Broken calculation assumptions throw an RCDesignError (or a FrameAnalysisError in the fea module) instead — a result is never silently returned when its assumptions failed.
Modules
Installation
Shell
# pnpm
pnpm add @theerapat-s28/ts-structural-eng-tools

# npm
npm install @theerapat-s28/ts-structural-eng-tools

Import everything from the package root, or narrow to a module through its subpath export:

TypeScript
import { rectBeamMomentCapacity } from "@theerapat-s28/ts-structural-eng-tools";
import { rectBeamMomentCapacity } from "@theerapat-s28/ts-structural-eng-tools/rc";
import { calculateSteelJacketedBeamMomentCapacity } from "@theerapat-s28/ts-structural-eng-tools/strengthening";
import { analyzeFrame } from "@theerapat-s28/ts-structural-eng-tools/fea";
import { RCDesignError } from "@theerapat-s28/ts-structural-eng-tools/core";
import { roundToDecimalPlaces } from "@theerapat-s28/ts-structural-eng-tools/utils";
Quick start

Design moment capacity of a singly reinforced rectangular section:

TypeScript
import { rectBeamMomentCapacity } from "@theerapat-s28/ts-structural-eng-tools/rc";

const result = rectBeamMomentCapacity({
  Es: 200000,  // MPa
  fy: 400,     // MPa
  fc: 28,      // MPa
  b: 300,      // mm
  h: 500,      // mm
  d: 440,      // mm
  As: 1520,   // mm²
});

console.log(result.phiMn, result.unit); // design moment capacity, kN·m
console.log(result.warnings);            // code-clause warnings, if any
ℹ️ See the RC Beam Design and Strengthening reference pages for the full parameter tables, worked outputs, warnings, and error codes of every export.
Units & conventions

Units are implicit in the numbers — no unit objects, no conversion wrappers. Supply SI values and read the unit field of the result.

QuantityUnitNotes
fc, fy, EsMPaConcrete strength, steel yield strength, elastic modulus
b, h, d, d′mmSection geometry, measured from the compression face
As, As′mm²Reinforcement areas
phiMnkN·mDesign moment capacity (φ applied)
phiVc, phiVskNDesign shear capacity contributions (φ applied)
⚠️ Values are rounded only for presentation. Intermediate arithmetic inside every calculation stays unrounded, so re-deriving a result from the rounded calculationDetails may differ in the last digit.
Export Summary
SubpathModuleContents
. root barrel Re-exports every public function, type, constant, and error below
./rc RC Beam Design Moment and shear capacity, stirrup checks, bar layout, section properties for frame analysis, material helpers
./strengthening Strengthening Steel-plate jacketing, side plate shear strengthening (non-code models per AISC 360 G2.1 / ACI 440.2R-17 §11.4), and plate-to-concrete interface bolting
./fea Frame Analysis 3D direct-stiffness frame analysis with load cases and combinations, member loads, self-weight and releases, force diagrams, envelopes, design demands, reference beam stiffness matrix
./core Core Section and result types, ACI constants, frame constants, RCDesignError and Errors, FrameAnalysisError and FrameErrors
./utils Utils solveQuadratic, roundToDecimalPlaces, mergeWarnings, matrix helpers (matMul, transpose, choleskySolve, …), skyline (banded) Cholesky solver and reverseCuthillMcKee ordering