Skip to main content

Github Actions status: pytest Deploy

Coverage status: codecov Codecov Status

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
  • Support for unsymmetric problems, such as those involving follower forces

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.5.0). 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.5.0 (2026-10-01)
    • Configuration-dependent loads and unsymmetric eigenproblems
  • 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 lb when SciPy is linked against Intel MKL 2024.2.0 to 2025.0.0 (e.g. Anaconda on Windows), whose dsteqr routine breaks ARPACK
    • lb condenses out the dofs where KG is null and solves small condensed problems with a dense solver
    • lb verifies the eigenpairs of the sparse solver, raising an error instead of returning wrong results
    • The sparse solver of lb returns 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
  • version 0.3.1 (2026-04-09)
    • Robust estimation of the eigenvalue shift for singular matrices in freq and lb, and new skip_null_cols argument
    • Python 3.14 support
    • Estimation of the eigenvalue shift in freq and lb
    • Packaging with pyproject.toml, GitHub Actions and a test suite
  • version 0.2.2 (2019-03-02)
    • Release of 0.2.1 with an updated distribution
    • Fixed the dense solver of freq
    • freq returns the eigenvalues lambda**2 instead of the natural frequencies
  • version 0.1.0 (2018-06-23)
    • First release, with the solvers from compmech

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.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for structsolve 0.5.0
File Size Uploaded
structsolve-0.5.0.tar.gz 43.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for structsolve 0.5.0
File Interpreter ABI Platform
structsolve-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 76.7 kB

Release files / structsolve-0.5.0.tar.gz

Download URL structsolve-0.5.0.tar.gz
Size 43.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e6082baa356704438259dd2a0517d35a09c34bbb8b9e89ebe3f58d6b4643e311
BLAKE2b-256 checksum
How to use checksums
fe263838aebf725efe432b9f47c43b9c90539a893a7a164b07003b90b2650fd8
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.5.0-py3-none-any.whl

Download URL structsolve-0.5.0-py3-none-any.whl
Size 33.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1cd42fab6f36e994fde63255b8d28f7e03a87bf694151944a9d23a7775b0398d
BLAKE2b-256 checksum
How to use checksums
9e860f5b5788db91a2f721c581382cde0c809ffd14b1f64e3050cb6e899cea74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

This release

0.5.0 This release

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page