Metadata-Version: 2.4
Name: nst1
Version: 0.1.2
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Development Status :: 4 - Beta
License-File: LICENSE
Summary: A finite-element solver for bridges and structures
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# NST1

**A fast finite-element solver for bridges and structures — in a few lines of Python.**

> **DISCLAIMER — hobby project; no warranty, no liability.** NST1 is a personal, experimental hobby
> project, provided free and **as is**, with **no warranty** and **no liability or responsibility** of
> any kind. It is **not** certified or validated engineering software and **must not** be used for real
> structural design, construction, or any safety-critical decision — always have results independently
> verified by a qualified, licensed engineer. **Use entirely at your own risk.**

NST1 lets you build a structural model and run a full finite-element analysis straight from Python —
statics, traffic loads, prestressing, construction phasing, dynamics, buckling, nonlinear analysis,
cables, thin-walled sections, seismic, and fire. Install it with `pip`, `import nst1`, and go. Results
are deterministic and reproducible run to run.

## Installation

```bash
pip install nst1
```

Prebuilt for **Windows, macOS, and Linux** (Python 3.9+). Nothing to compile and no extra tools — just
`pip install`.

## Quickstart

```python
import nst1

m = nst1.Model(option="spatiale")
mat = m.add_material(E=210e9, nu=0.3, rho=7850.0)                 # steel
sec = m.add_section(sx=5e-3, iy=8e-5, iz=8e-5, ix=1e-6, ipol=1.6e-4)

n1 = m.add_node(0.0, 0.0, 0.0)
n2 = m.add_node(2.0, 0.0, 0.0)
m.add_bar(n1, n2, section=sec, material=mat, beta=0.0)
m.support(n1, dofs="dx dy dz rx ry rz")                          # fully fixed end

lc = m.load_case("tip load")
lc.nodal_force(n2, fz=-1000.0)

res = m.solve()
print(res.node_disp(n2, "dz"))      # cantilever tip deflection
```

## What it can do

- **Statics** — 3D/2D frames; end releases, rigid offsets, eccentricities.
- **Supports & soil** — rigid/elastic and lift-off (unilateral) supports; elastic (Winkler) foundations.
- **Traffic** — influence lines & surfaces; Eurocode EN 1991-2 (LM1–LM4), railway models, Fascicule-61;
  multi-lane / Courbon transverse distribution.
- **Prestressing & cables** — tendons with friction, anchorage-set and relaxation losses; exact-catenary
  cable elements with form-finding and tension tuning.
- **Construction phasing** — staged activation, jacking, hinge placement, grouting; time-dependent creep
  & shrinkage.
- **Dynamics** — modal analysis, buckling, time-history (Newmark / HHT), response spectrum, seismic
  isolation.
- **Nonlinear** — large-displacement (P-Δ / corotational) and material (fiber plasticity).
- **Sections** — thin-walled (torsion / shear / warping) and fiber sections.
- **Fire** — thermal transient + structural response.
- **Results** — query forces and displacements in Python; export to ParaView (VTU / XDMF) or JSON.

## License

NST1 is **free for non-commercial use** under the [PolyForm Noncommercial 1.0.0](LICENSE) license
(personal, research, academic, and non-profit use). **Commercial use requires a separate license** —
please contact **pavlishenku@gmail.com**.

Copyright (c) 2026 Pavlishenku.

