structsolve 0.9.3__tar.gz → 0.9.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. {structsolve-0.9.3/structsolve.egg-info → structsolve-0.9.4}/PKG-INFO +4 -3
  2. {structsolve-0.9.3 → structsolve-0.9.4}/README.md +3 -2
  3. {structsolve-0.9.3 → structsolve-0.9.4}/pyproject.toml +1 -1
  4. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/convergence.py +5 -1
  5. {structsolve-0.9.3 → structsolve-0.9.4/structsolve.egg-info}/PKG-INFO +4 -3
  6. {structsolve-0.9.3 → structsolve-0.9.4}/LICENSE +0 -0
  7. {structsolve-0.9.3 → structsolve-0.9.4}/setup.cfg +0 -0
  8. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/__init__.py +0 -0
  9. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/analysis.py +0 -0
  10. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/arc_length.py +0 -0
  11. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/arc_length_crisfield.py +0 -0
  12. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/arc_length_riks.py +0 -0
  13. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/arpackutils.py +0 -0
  14. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/callbacks.py +0 -0
  15. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/freq.py +0 -0
  16. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/linear_buckling.py +0 -0
  17. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/logger.py +0 -0
  18. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/newton_raphson.py +0 -0
  19. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/sparseutils.py +0 -0
  20. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve/static.py +0 -0
  21. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve.egg-info/SOURCES.txt +0 -0
  22. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve.egg-info/dependency_links.txt +0 -0
  23. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve.egg-info/requires.txt +0 -0
  24. {structsolve-0.9.3 → structsolve-0.9.4}/structsolve.egg-info/top_level.txt +0 -0
  25. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_analysis.py +0 -0
  26. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_arc_length.py +0 -0
  27. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_arc_length_fung_kaplan.py +0 -0
  28. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_arpackutils.py +0 -0
  29. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_follower_freq_static.py +0 -0
  30. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_follower_loads.py +0 -0
  31. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_freq.py +0 -0
  32. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_linear_buckling.py +0 -0
  33. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_linear_buckling_unsymmetric.py +0 -0
  34. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_load_factor_dependent_load.py +0 -0
  35. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_newton_raphson.py +0 -0
  36. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_reuse.py +0 -0
  37. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_sparse_first.py +0 -0
  38. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_sparseutils.py +0 -0
  39. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_static.py +0 -0
  40. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_static_deflection.py +0 -0
  41. {structsolve-0.9.3 → structsolve-0.9.4}/tests/test_warnings_registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: structsolve
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: Structural analysis solvers
5
5
  Author-email: "Saullo G. P. Castro" <castrosaullo@gmail.com>
6
6
  License-Expression: BSD-3-Clause
@@ -63,7 +63,7 @@ Currently these solvers are pretty much compatible with my other repository
63
63
  Citing this library
64
64
  ===================
65
65
 
66
- Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.9.3). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
66
+ Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.9.4). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
67
67
 
68
68
 
69
69
  Documentation
@@ -78,7 +78,7 @@ History
78
78
 
79
79
  See [CHANGELOG.md](CHANGELOG.md) for the details of each version.
80
80
 
81
- * version 0.9.3 (2026-10-26)
81
+ * version 0.9.4 (2026-10-28)
82
82
  - Crisfield's convergence criterion is the default of the non-linear analyses, `Analysis.convergence = 'crisfield'`, with `relTOL = 1e-9`: the residual and the reference forces are measured with the norm scaled by the diagonal of `calc_kC()` over the free degrees of freedom; the former check is kept with `convergence = 'relative'`
83
83
  - With both convergence criteria, an iteration also converges at the round-off floor of its residual, `3 eps ||(|K_C0| |c|)||`: the arc-length methods trace the snap-through of a low arch at `relTOL = 1e-9` through the null load where they stopped
84
84
  - `lb` returns the negative load multipliers closest to zero after the positive ones, and a tensile reference load no longer needs the dense fallback
@@ -87,6 +87,7 @@ See [CHANGELOG.md](CHANGELOG.md) for the details of each version.
87
87
  - documentation published again: pandoc installed in the documentation workflow
88
88
  - `lb` and `freq` no longer reset the registry of the warnings already shown, which made a warning of the caller under the `'default'` action be shown again after each call
89
89
  - The residual is `R = Fint - lbd*Fext`, the convention of `pyfe3d.solver` and `panels`, with `K_T dc = -R` in the Newton-Raphson corrections and `dR/dlbd = -Fext`; the solutions are bitwise identical
90
+ - `structsolve.convergence`: the round-off floor cites Higham (2002), Sec. 3.5, for the componentwise bound of the rounding error of a matrix-vector product
90
91
  * version 0.8.0 (2026-10-14)
91
92
  - Fewer evaluations and factorizations, same solutions: `dR/dlbd` is evaluated together with the tangent stiffness matrix only, Newton-Raphson reuses the factorization of the tangent while it is not updated, the follower linear static analysis factorizes `K0` once, and `lb` estimates its shift and the inertia of `K` once for all its attempts
92
93
  * version 0.7.0 (2026-10-13)
@@ -28,7 +28,7 @@ Currently these solvers are pretty much compatible with my other repository
28
28
  Citing this library
29
29
  ===================
30
30
 
31
- Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.9.3). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
31
+ Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.9.4). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
32
32
 
33
33
 
34
34
  Documentation
@@ -43,7 +43,7 @@ History
43
43
 
44
44
  See [CHANGELOG.md](CHANGELOG.md) for the details of each version.
45
45
 
46
- * version 0.9.3 (2026-10-26)
46
+ * version 0.9.4 (2026-10-28)
47
47
  - Crisfield's convergence criterion is the default of the non-linear analyses, `Analysis.convergence = 'crisfield'`, with `relTOL = 1e-9`: the residual and the reference forces are measured with the norm scaled by the diagonal of `calc_kC()` over the free degrees of freedom; the former check is kept with `convergence = 'relative'`
48
48
  - With both convergence criteria, an iteration also converges at the round-off floor of its residual, `3 eps ||(|K_C0| |c|)||`: the arc-length methods trace the snap-through of a low arch at `relTOL = 1e-9` through the null load where they stopped
49
49
  - `lb` returns the negative load multipliers closest to zero after the positive ones, and a tensile reference load no longer needs the dense fallback
@@ -52,6 +52,7 @@ See [CHANGELOG.md](CHANGELOG.md) for the details of each version.
52
52
  - documentation published again: pandoc installed in the documentation workflow
53
53
  - `lb` and `freq` no longer reset the registry of the warnings already shown, which made a warning of the caller under the `'default'` action be shown again after each call
54
54
  - The residual is `R = Fint - lbd*Fext`, the convention of `pyfe3d.solver` and `panels`, with `K_T dc = -R` in the Newton-Raphson corrections and `dR/dlbd = -Fext`; the solutions are bitwise identical
55
+ - `structsolve.convergence`: the round-off floor cites Higham (2002), Sec. 3.5, for the componentwise bound of the rounding error of a matrix-vector product
55
56
  * version 0.8.0 (2026-10-14)
56
57
  - Fewer evaluations and factorizations, same solutions: `dR/dlbd` is evaluated together with the tangent stiffness matrix only, Newton-Raphson reuses the factorization of the tangent while it is not updated, the follower linear static analysis factorizes `K0` once, and `lb` estimates its shift and the inertia of `K` once for all its attempts
57
58
  * version 0.7.0 (2026-10-13)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "structsolve"
7
- version = "0.9.3"
7
+ version = "0.9.4"
8
8
  description = "Structural analysis solvers"
9
9
  readme = "README.md"
10
10
  license = "BSD-3-Clause"
@@ -116,7 +116,8 @@ the component itself, e.g. under large self-equilibrated axial forces,
116
116
  such that the residual cannot be computed more accurately than about
117
117
  `\varepsilon \| |\boldsymbol{K}_{C0}| \, |\boldsymbol{c}| \|`, with `\varepsilon` the machine
118
118
  precision and `|\boldsymbol{K}_{C0}|` and `|\boldsymbol{c}|` the elementwise absolute values of the
119
- linear stiffness matrix and of the solution. When this level is above
119
+ linear stiffness matrix and of the solution, which is the componentwise
120
+ bound of the rounding error of a matrix-vector product [5]_. When this level is above
120
121
  `\epsilon` times the references of `\zeta_i`, e.g. near a null load, where
121
122
  the references, net force vectors, are small and the element contributions
122
123
  are not, the iterations stagnate and every step fails. The iteration `i`
@@ -174,6 +175,9 @@ References
174
175
  small curvature, NACA Technical Note 2840, National Advisory Committee
175
176
  for Aeronautics, Washington, 1952.
176
177
  https://ntrs.nasa.gov/citations/19930083579
178
+ .. [5] Higham, N. J., Accuracy and Stability of Numerical Algorithms, 2nd
179
+ ed., SIAM, 2002, Sec. 3.5, Eqs. (3.12) and (3.13).
180
+ https://doi.org/10.1137/1.9780898718027
177
181
 
178
182
  """
179
183
  import numpy as np
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: structsolve
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: Structural analysis solvers
5
5
  Author-email: "Saullo G. P. Castro" <castrosaullo@gmail.com>
6
6
  License-Expression: BSD-3-Clause
@@ -63,7 +63,7 @@ Currently these solvers are pretty much compatible with my other repository
63
63
  Citing this library
64
64
  ===================
65
65
 
66
- Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.9.3). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
66
+ Saullo G. P. Castro (2026). Structural analysis solvers tailored for semi-analytical models (Version 0.9.4). Zenodo. DOI: https://doi.org/10.5281/zenodo.2581212.
67
67
 
68
68
 
69
69
  Documentation
@@ -78,7 +78,7 @@ History
78
78
 
79
79
  See [CHANGELOG.md](CHANGELOG.md) for the details of each version.
80
80
 
81
- * version 0.9.3 (2026-10-26)
81
+ * version 0.9.4 (2026-10-28)
82
82
  - Crisfield's convergence criterion is the default of the non-linear analyses, `Analysis.convergence = 'crisfield'`, with `relTOL = 1e-9`: the residual and the reference forces are measured with the norm scaled by the diagonal of `calc_kC()` over the free degrees of freedom; the former check is kept with `convergence = 'relative'`
83
83
  - With both convergence criteria, an iteration also converges at the round-off floor of its residual, `3 eps ||(|K_C0| |c|)||`: the arc-length methods trace the snap-through of a low arch at `relTOL = 1e-9` through the null load where they stopped
84
84
  - `lb` returns the negative load multipliers closest to zero after the positive ones, and a tensile reference load no longer needs the dense fallback
@@ -87,6 +87,7 @@ See [CHANGELOG.md](CHANGELOG.md) for the details of each version.
87
87
  - documentation published again: pandoc installed in the documentation workflow
88
88
  - `lb` and `freq` no longer reset the registry of the warnings already shown, which made a warning of the caller under the `'default'` action be shown again after each call
89
89
  - The residual is `R = Fint - lbd*Fext`, the convention of `pyfe3d.solver` and `panels`, with `K_T dc = -R` in the Newton-Raphson corrections and `dR/dlbd = -Fext`; the solutions are bitwise identical
90
+ - `structsolve.convergence`: the round-off floor cites Higham (2002), Sec. 3.5, for the componentwise bound of the rounding error of a matrix-vector product
90
91
  * version 0.8.0 (2026-10-14)
91
92
  - Fewer evaluations and factorizations, same solutions: `dR/dlbd` is evaluated together with the tangent stiffness matrix only, Newton-Raphson reuses the factorization of the tangent while it is not updated, the follower linear static analysis factorizes `K0` once, and `lb` estimates its shift and the inertia of `K` once for all its attempts
92
93
  * version 0.7.0 (2026-10-13)
File without changes
File without changes