Skip to main content

openseespy-solvers

scipy-style sparse linear and eigen solvers for OpenSeesPy PythonSparse.

openseespy-solvers wraps numerical backends such as scipy.sparse.linalg, Intel MKL PARDISO, cupyx.scipy.sparse.linalg, and NVIDIA nvmath.sparse as solver objects that OpenSeesPy can call directly. OpenSeesPy assembles the stiffness, mass, and right-hand-side arrays; the solver object performs the sparse solve and writes the result back to OpenSeesPy.

Documentation: openseespy-solvers.readthedocs.io

Installation

python -m pip install openseespy-solvers

The base install provides NumPy and scipy.sparse.linalg CPU solvers. It requires Python 3.12 or newer.

OpenSeesPy is optional so the package can be used and tested without forcing an OpenSees install. If OpenSeesPy is not already in your environment, install the extra:

python -m pip install "openseespy-solvers[opensees]"

Optional backends:

# CPU UMFPACK direct solver
python -m pip install "openseespy-solvers[umfpack]"

# CPU PARDISO direct solver (needs only the MKL runtime)
python -m pip install mkl

# NVIDIA GPU backends: choose the CUDA generation reported by nvidia-smi
python -m pip install "openseespy-solvers[cuda13]"   # or [cuda12]

On Windows, install UMFPACK with conda-forge instead of pip:

conda install -c conda-forge scikit-umfpack

See the installation guide for platform notes, CUDA 12.x alternatives, and verification steps.

Quick Example

import openseespy.opensees as ops
from openseespy_solvers.scipy import spsolve

solver = spsolve()

# after defining the OpenSeesPy model:
ops.system("PythonSparse", solver.to_openseespy())

For eigen analysis:

from openseespy_solvers.scipy import eigsh

eig_solver = eigsh()
eigenvalues = ops.eigen("PythonSparse", 5, eig_solver.to_openseespy())

Default Solvers

Analysis CPU NVIDIA GPU
Static or transient linear solve scipy.spsolve; scipy.umfpack for larger CPU systems nvmath.direct_solver
Generalized eigen solve scipy.eigsh cupy.eigsh

The tutorial and API pages cover the other solvers and the optional backends: openseespy-solvers.readthedocs.io.

Modules

Module Provides
openseespy_solvers.scipy CPU solvers: spsolve, umfpack, pardiso, cg, gmres, eigsh, lobpcg
openseespy_solvers.scipy.precond CPU preconditioners: jacobi, ilu, direct
openseespy_solvers.cupy GPU solvers: spsolve, cg, gmres, eigsh, lobpcg
openseespy_solvers.cupy.precond GPU preconditioners: jacobi, ilu, direct
openseespy_solvers.nvmath GPU direct sparse solver: direct_solver
openseespy_solvers.hybrid Direct factorization reused as a GMRES preconditioner

Factory signatures follow the corresponding scipy/cupy functions where possible. The matrix and right-hand side are supplied by OpenSeesPy at solve time.

Examples and Development

The pip wheel contains the library. Examples, benchmarks, and tests live in the source repository:

git clone https://github.com/gaaraujo/openseespy-solvers.git
cd openseespy-solvers
python -m pip install -e ".[dev,opensees]"
pytest

Then run a smoke example:

cd examples
python solvers/scipy_spsolve.py
python solvers/scipy_eigsh.py

License

BSD 3-Clause. See LICENSE.

Metadata

Release files for openseespy-solvers 0.3.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 openseespy-solvers 0.3.0
File Size Uploaded Provenance
openseespy_solvers-0.3.0.tar.gz 47.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for openseespy-solvers 0.3.0
File Interpreter ABI Platform
openseespy_solvers-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 102.2 kB

Release files / openseespy_solvers-0.3.0.tar.gz

Download URL openseespy_solvers-0.3.0.tar.gz
Size 47.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6d29f21265d86a949b18f6bf58344a4319d5274e7a9bd54c26eb6d03b8b3b6e3
BLAKE2b-256 checksum
How to use checksums
cd1ca2df2dd257c1ce4587c87831a72c4c1b3013c5ddc878eae2c37b230d5caf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.5

Release files / openseespy_solvers-0.3.0-py3-none-any.whl

Download URL openseespy_solvers-0.3.0-py3-none-any.whl
Size 54.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
95338c69dc481fc4364c3a6a3cb8fbb9dbf15136df491054079df0a6eb1b2496
BLAKE2b-256 checksum
How to use checksums
1bf8ed5a54eaf2a53f0d18e741fd40b0189e50a485eb104fcc123a29d23a8c7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.5

Security for openseespy-solvers 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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