Structural analysis solvers tailored for semi-analytical models
- Linear statics: [K]{u} = {f}
- Eigensolver for Linear buckling: ([K] + lambda[KG]){u} = 0
- Eigensolver for dynamics: ([K] + lambda^2[M]){u} = 0
- Nonlinear statics using Newton-Raphson
- Nonlinear statics using the Arc-Length method
Currently these solvers are pretty much compatible with my other repositories panels, buckling.
Citing this library
Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.4.3). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
Documentation
The documentation is available on: https://saullocastro.github.io/structsolve.
History
See CHANGELOG.md for the details of each version.
- version 0.4.3 (2026-09-17)
- Fixed the eigenvalue shift of the sparse solver of
lb, which could return buckling loads higher than the critical ones - Fixed wrong buckling loads of the sparse solver of
lbwhen SciPy is linked against Intel MKL 2024.2.0 to 2025.0.0 (e.g. Anaconda on Windows), whosedsteqrroutine breaks ARPACK lbcondenses out the dofs whereKGis null and solves small condensed problems with a dense solverlbverifies the eigenpairs of the sparse solver, raising an error instead of returning wrong results- The sparse solver of
lbreturns the load multipliers sorted as the dense solver - Newton-Raphson with full Newton iterations and a relative convergence criterion by default, reaching quadratic convergence with exact tangent stiffness matrices
- Fixed the load-factor bookkeeping of Newton-Raphson, which could finish before reaching the full load
- Arc-length methods (Riks and Crisfield) rewritten, able to trace limit points, snap-through and snap-back until a load factor of exactly 1.0
- Sphinx documentation
- Fixed the eigenvalue shift of the sparse solver of
- version 0.3.1 (2026-04-09)
- Robust estimation of the eigenvalue shift for singular matrices in
freqandlb, and newskip_null_colsargument - Python 3.14 support
- Estimation of the eigenvalue shift in
freqandlb - Packaging with
pyproject.toml, GitHub Actions and a test suite
- Robust estimation of the eigenvalue shift for singular matrices in
- version 0.2.2 (2019-03-02)
- Release of 0.2.1 with an updated distribution
- Fixed the dense solver of
freq freqreturns the eigenvalueslambda**2instead of the natural frequencies
- version 0.1.0 (2018-06-23)
- First release, with the solvers from
compmech
- First release, with the solvers from
License
Distributed in the 3-Clause BSD license (https://raw.github.com/saullocastro/structsolve/master/LICENSE).
Contact: S.G.P.Castro@tudelft.nl
Metadata
Release files for structsolve 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| structsolve-0.4.3.tar.gz | 33.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| structsolve-0.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.2 kB
Release files / structsolve-0.4.3.tar.gz
| Download URL | structsolve-0.4.3.tar.gz |
|---|---|
| Size | 33.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a42b06fd8d2a7591cbf2cd640285c6731882ad2004f7e408b405e1318d5836c4
|
|
BLAKE2b-256 checksum How to use checksums |
b40271418968b583f88ffebf17f21ac670c9eae6185dab7609765add40d4d0b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / structsolve-0.4.3-py3-none-any.whl
| Download URL | structsolve-0.4.3-py3-none-any.whl |
|---|---|
| Size | 27.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e55cebb786c76b76c06dfe4efcbb4fcbf3b43a99c91add48d26b6d7988208afc
|
|
BLAKE2b-256 checksum How to use checksums |
f56924c06d5cd70aaf1d876ce2173192a4d43639544950772156e7a1dba99139
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|