Numerical validation policy#

Validation is layered. Many public scalar helpers reject nonfinite inputs and impossible physical ranges before division, logarithms or square roots. Geometric/distribution/matrix routines validate ordering, shape or integer indices where needed. Domain guides distinguish enforced bounds from assumptions that cannot be inferred from the arguments. Passing validation does not certify that a physical model applies to a particular apparatus.

Independent benchmark matrix#

Domain

Independent evidence

Structural

Beam equilibrium/curvature, support values, bar reaction balance, energy derivative

Electrical

Closed-form transient current, charge integral, RC energy accounting, resonance

Controls

Analytic scalar LQR/Kalman, matrix Riccati residuals and shape/weight failures

Thermodynamics

Integrated P dV, T delta_S, four-state cycle balances and COP identities

Fluids

Integrated parabolic profile, laminar Darcy equivalence, implicit Colebrook residual

Heat transfer

Interface Q*R drops, thin-wall limit, equal-temperature and exchanger limits

Materials

Isotropic modulus identity, elastic strain-energy triangle, fracture inverse, composite bounds

Mechanical

Undamped energy, damping dissipation, critical solution, gear power, forced equilibrium

Aerodynamics

Shock mass/momentum/energy balances, sonic and infinite-wing limits

Signals

Parseval, periodogram integral, cutoff gain, sinc nodes, ADC error bounds

Communications

Analytic FM phase, unsigned bit handling, linear/log link budgets and noise limits

Reliability

Survival integral, SciPy distributions, exhaustive independent system states, sensitivities

Tests use analytical values, invariants, independent quadrature and established SciPy distributions. Where a governing-equation residual is checked, it verifies the numerical solve but does not independently prove the equation’s physics. Most assertions use tight tolerances for algebraic identities; integrations allow appropriate quadrature/discretization error. Source coverage excludes tests and is a diagnostic, not a proof of correctness. Coverage gaps and untested branches are retained in the release report.

Behavior retained in v0.1#

SeriesRLC returns current, correcting the previous charge/current mismatch. FM integration starts at zero modulation phase and supports nonuniform grids. Unsigned BPSK/QPSK input is converted before subtraction. Physical range errors raise ValueError instead of propagating NaNs or divisions by zero. Colebrook transition inputs are rejected. Rare-failure PFD and empirical Oswald estimates now enforce their documented implementation ranges. NumPy 1.24 remains supported by using SciPy trapezoid for stress-strain integration.

Coverage gate#

The release suite covers all executable production statements. Coverage excludes only test code; production validation, plotting, constants and unit helpers are included. The report’s fail_under=100 gate fails on any missed statement. This is statement coverage; branch coverage is not configured. An executed statement can still contain an error or rely on an invalid model assumption, so analytical benchmarks and the domain guides remain essential.