Changelog¶
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
[0.1.3] - 2026-06-08¶
Changed¶
- User guide: focus on
ops.system/ops.eigen; simplifiedto_openseespy(), preconditioners (built-in vs custom), and solver-object pages. - API overview: scipy/cupy/nvmath compatibility examples; cross-links to module and constructor reference pages.
- Docs terminology: solver constructor instead of factory; Development overview with GitHub repository, issues, and pull-request links.
- RTD navigation: Get Started, User Guide, API Reference, and Development tabs.
[0.1.2] - 2026-06-08¶
Added¶
- Brick-bar benchmark plot script (
examples/plot_brick_bar_benchmark.py) with live progress, incremental CSV writes, and--appendresume. - Published static and eigen benchmark assets under
docs/assets/. - Contributor guide: Adding a solver.
- Tutorial FEM theory section and MathJax support in the docs site.
Changed¶
- Rewrote the Examples page with mesh tables, analysis snippets, and timing plots (mesh sweeps through factor 11, ~91k equations).
- Normalized backend naming in solver docstrings and PyPI description.
- Docs navigation: merged API reference, workflow diagram, removed
recommended-solvers.md; refreshed preconditioner guidance. - Static benchmark: dropped native OpenSees
UmfPackfrom comparisons. - Examples:
RCMnumberer for direct solvers; benchmark scripts skip completed mesh/solver pairs when appending results.
Fixed¶
- Example smoke tests: isolate
sys.argvso pytest flags are not passed tobrick_bar.py/brick_bar_eigen.pyargparse.
[0.1.1] - 2026-06-05¶
Added¶
hybrid(direct=...)— frozen direct factorization reused as a GMRES preconditioner.- CUDA optional extras
[cuda12]and[cuda13](matchingcupy+ nvmath GPU wheels). - Documentation: full install walkthrough, verify checklist (
pytest/ examples / benchmarks), serial OpenSeesPy note.
Changed¶
- Install hints and error messages recommend
[cuda12]/[cuda13]instead of generic[cupy]. - PyPI metadata: description, classifiers, and project URLs.
- LOBPCG example scripts use a larger mesh and are manual-only (not pytest smoke tests).
[0.1.0] - 2026-06-03¶
Added¶
- Per-backend namespaces
openseespy_solvers.scipyandopenseespy_solvers.cupy. - scipy solvers:
spsolve,cg,gmres,eigsh,lobpcg. - cupy solvers:
spsolve,cg,gmres,lobpcg(no generalizedeigsh). .to_opensees()helper for OpenSeesPyPythonSparsesystem and eigen commands.formApmatrix-vector product on all linear solvers.copy.copysupport via__copy__/__deepcopy__for OpenSees SOE cloning.- Exposed solver arrays:
A,b,x(linear) andK,M(eigen). - Preconditioner factories:
M=accepts a ready operator or callableM(A). - Built-in scipy preconditioners in
openseespy_solvers.scipy.precond(jacobi,ilu). - Solver statistics via
.stats. - Examples and tests that do not require OpenSeesPy.