Units and Consistency

Tensyl does not own a unit system. It carries unit labels through to exported artifacts, but it never inspects, infers, or converts the numbers you give it. That keeps the library small and predictable — and it puts the entire burden of consistency on you. Pick one unit system, use it for every input into an ABD stiffness or cell, and Tensyl will hand you back results in that same system.

This is the one page that owns the unit policy. Other pages link here instead of repeating it.

The Rule

All numeric inputs to a single ABD stiffness or cell must already be in one consistent unit system. "Consistent" means stiffness, length, force, and moment all derive from the same base units — so that, for example, lbf/in times in genuinely gives lbf.

Mixing unit systems fails silently

Tensyl will not catch a mixed-unit input. Feed it E in psi and a thickness in millimetres and it will dutifully compute an ABD stiffness from nonsense — no exception, no warning, just wrong numbers that look plausible. Unit discipline is yours to enforce before the data reaches Tensyl.

Reference Unit Systems

For the US customary examples throughout this manual:

Quantity Unit
Length in
Force lbf
Stress psi
Moment lbf*in
Membrane stiffness (A, As) lbf/in
Bending stiffness (D) lbf*in
Coupling stiffness (B) lbf

For SI examples, use m, N, and Pa; the corresponding stiffness blocks come out in N/m, N, and N*m. Either system is fine. Do not mix the two inside one ABD stiffness or one cell.

Recording Units in Exports

When you serialize a result, attach the labels explicitly so the downstream consumer knows what the numbers mean:

from tensyl.io import to_yaml

text = to_yaml(
    result,
    units={"length": "in", "force": "lbf", "stress": "psi"},
)

The labels travel with the artifact; the values are passed through untouched. See External Workflows for the full serialization schema.