Github Actions status:
Coverage status:
Semi-analytical methods for plates, shells and stiffened panels
- Linear and non-linear static analyses, with field outputs of displacements, strains and stresses
- Linear buckling
- Vibration, with or without pre-stress
- Panel flutter using the piston theory
- Geometrically non-linear static analyses (postbuckling) using the Newton-Raphson method or the arc-length methods of Riks and Crisfield
- Dead or follower (hydrostatic) pressure loads, with the unsymmetric load stiffness of the follower pressure
- Multi-domain assemblies of plates, cylindrical shells, cylinders, stiffened panels, with the domains connected exactly with the null-space method, the default, or by penalty stiffnesses. Debonding defects or cohesive zone can be simulated
- CLPT, FSDT and TSDT kinematics for plates and cylindrical shells
- Donnell and Sanders-Koiter kinematics for cylindrical shells
The structural matrices are solved with structsolve.
Citing this library
Saullo G. P. Castro, Nathan D'Souza. (2026). Semi-analytical methods for plates, shells and stiffened panels (Version 0.11.0). Zenodo. DOI: https://doi.org/10.5281/zenodo.2541522.
Documentation
The documentation is available on: https://saullocastro.github.io/panels.
Installation
To get the latest version:
python -m pip install panels
History
See CHANGELOG.md for the details of each version.
- version 0.11.0 (2026-10-07)
- Follower (hydrostatic) pressure loads,
Shell.add_pressure_load(..., follower=True), with the unsymmetric load stiffnesskCfollowerinShellandMultiDomain - Theory documentation, verification tests and validation notebooks of the follower pressure
- Interactive 3D plots of multi-domain assemblies with plotly,
MultiDomain.plot3d() - Improved Cython and compiler flags
- TSDT uses
Laminate.DtsandLaminate.Fts, requirescomposites>=0.9.12andstructsolve>=0.5.0
- Follower (hydrostatic) pressure loads,
- version 0.9.0 (2026-09-24)
- Null-space connection, exact, new default, as alternative to penalty-based connection
- version 0.8.0 (2026-09-23)
- FSDT and TSDT for plate and cylindrical shells
- Sanders-Koiter for cylindrical shells
- Shell and Multidomain connections supporting FSDT, TSDT and Sanders-Koiter kinematics
- Many improvements in the documentation
- New tests based on literature
- BUG fixes on aerodynamic matrix of cylindrical shells and mass matrix of stiffener 1D
- version 0.7.1 (2026-09-21)
- Fixed the cohesive zone of the
MultiDomainconnection'SB_TSL', which could not capture the onset of failure of the DCB: tangential separation with the rotation of each panel, tractions with the uncorrected separation and separation correction as in the thesis of D'Souza (2024) - Consistent tangent of the cohesive zone,
MultiDomain.calc_kT_TSL(), and faster assembly of the'SB_TSL'secant stiffness - The kernels
fkCSB11_dmg,fkCSB12_dmgandfkCSB22_dmgtake the distancesdtanddbfrom each mid-surface to the interface - Validation of the cohesive zone against mode I DCB results in the
literature, in
notebooks/, with a convergence study - Fixed
StiffPanelBay.save()withcomposites>=0.9.0
- Fixed the cohesive zone of the
- version 0.6.21 (2026-09-18)
- Fixed the mass of the base of
BladeStiff2D, which was missing, and the section forces ofMultiDomain.force(), which lacked the Jacobian StiffPanelBay.calc_kA()sums the contribution of every panel, andcalc_kA,calc_cA,calc_fext,save,get_sizeanduvw_stiffenerofStiffPanelBayandShell.calc_cAno longer raiseShell.strain()andShell.stress()work for a plate withr=None- Line coverage of the tests raised from 67 % to 92 %
- Fixed
StiffPanelBay.add_paneland the partial-domain integration ofShell.calc_kC,calc_kGandcalc_kM - The limits
Shell.x1, x2, y1, y2of the integration domain default toNoneinstead of the sentinels-1and+1, which silently integrated the full domain for a limit at1.0and ignored a limit given on one side only; the old-1now raises - Fixed the
MultiDomainskin-base connections: the'SB'penalty was a hard-coded mm-unit value, the top and bottom panels depended on their order in the assembly, and the connection dictionaries were modified - Penalty constants of each
MultiDomainconnection can be given with'kt'and'kr' - Reproduction of Stamatelos and Labeas with plate domains only in
tests/multidomain/test_stamatelos_labeas_2023_multidomain.py, using everyMultiDomainconnection - Fixed the argument handling of the stiffness API: an invalid
corc_cteno longer reaches the nogil kernels, and a model that needs a radius raises instead of computing withr = 0 - Reproduction of Stamatelos and Labeas (Computation 2023, 11, 110) in
notebooks/stamatelos_labeas_2023.ipynb - Tangent stiffness matrix that is the exact derivative of the internal force vector, giving quadratic convergence to the Newton-Raphson method
ShellandMultiDomaincan be passed directly tostructsolve.Analysis, including the arc-length methods- Gauss-Legendre points and weights from
scipy.special.roots_legendre - Modules of the models renamed without the
_bardellsuffix, and the legacy_bardellmodel names removed frompanels.modelDB.db - Sphinx documentation with usage examples
- Fixed the mass of the base of
- versions 0.5.x
- Damaged multidomain connections
- up to version 0.3.x
- Multidomain methods for pristine structures
License
Distributed under the 3-Clause BSD license (https://raw.github.com/saullocastro/panels/main/LICENSE).
Contact: S.G.P.Castro@tudelft.nl
Metadata
Release files for panels 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| panels-0.11.0.tar.gz | 7.4 MB | Details |
Built distributions (wheels)
Total release size: 308.8 MB
Release files / panels-0.11.0.tar.gz
| Download URL | panels-0.11.0.tar.gz |
|---|---|
| Size | 7.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03b26f35480dc7ed2f19ad05e8f3026f5cb4c6be75f2ff84335ebffeaf05f621
|
|
BLAKE2b-256 checksum How to use checksums |
7563b03e9b3da14a43524af4b5abd999c943f42426d1c7680852f18b3c43a8ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / panels-0.11.0-cp314-cp314-win_amd64.whl
| Download URL | panels-0.11.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
57e0ecaf85dfc349ca60004b1e6f18575f6e8bcf41ad9c9b2eb90679a3bedf54
|
|
BLAKE2b-256 checksum How to use checksums |
fad3e1f33833941595b19b803bcfcf1696feedc323917f88e1b68025296f6987
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / panels-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
25a8b614d76ad061e9253b50d41f107b2212de0350ed4bfacae0e4cd0af175e9
|
|
BLAKE2b-256 checksum How to use checksums |
89bfabd6d52e25861191d959c21fee3e2376c10deca8bc765dec6a999253f931
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / panels-0.11.0-cp314-cp314-macosx_10_15_universal2.whl
| Download URL | panels-0.11.0-cp314-cp314-macosx_10_15_universal2.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
e40cbe7d66f90f69babd48a672beef8f3386c08c7cc38b743fdcd16907dde74e
|
|
BLAKE2b-256 checksum How to use checksums |
d91a4923254bba72e747114aea209a5ef61634c9f9831ac64f7c4bca3112277f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / panels-0.11.0-cp313-cp313-win_amd64.whl
| Download URL | panels-0.11.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bc5ff92b83e06db7aaa83031b86f249764b161eb882dd420be4b351d88f3d6f5
|
|
BLAKE2b-256 checksum How to use checksums |
5e8121fa682d40b78173970c8497508acefa9302aec417131b6a926305fb672c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / panels-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
94411ff68e0057c3d91b71846cc6c75d3e268b43a41c06970097d5195ce4aba6
|
|
BLAKE2b-256 checksum How to use checksums |
06104256f81c166dcaa9734b04ad8c7a996cd5026f6d3260edf73a6a38306ec5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / panels-0.11.0-cp313-cp313-macosx_10_13_universal2.whl
| Download URL | panels-0.11.0-cp313-cp313-macosx_10_13_universal2.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
4a094ce787d76cf8b78982434e56f85c145e20f5cfea3e7ec6c8e2b2a61d8fdc
|
|
BLAKE2b-256 checksum How to use checksums |
80527c607bf388a1f32b901c2e5ecec05e03691884f7a47334d940b1262d992f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / panels-0.11.0-cp312-cp312-win_amd64.whl
| Download URL | panels-0.11.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d10ddedfa47e395d466d44ec910ac723584ad03db988e8fdbb049f87f72d9812
|
|
BLAKE2b-256 checksum How to use checksums |
c765c7d695d90677efb16493ead3dcbbab1de4319264a5a01f5a7768fb54713b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / panels-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5806b2a9a77ac37fbde88fcd9ee58b778ac7524d82e17c8ec6c0631f0e1528fa
|
|
BLAKE2b-256 checksum How to use checksums |
90a71c6f1778a887a2dfe3f4f7132617664d84e449340c6fecbe510bde0c01ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / panels-0.11.0-cp312-cp312-macosx_10_13_universal2.whl
| Download URL | panels-0.11.0-cp312-cp312-macosx_10_13_universal2.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
6fe93f8307166a5b9444185251758100969f421aed34e09fa1c739a801e20faa
|
|
BLAKE2b-256 checksum How to use checksums |
89eee65f3d65690332d9af42321b8ae2682bba5b364d5243506286c7df9caa63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / panels-0.11.0-cp311-cp311-win_amd64.whl
| Download URL | panels-0.11.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
06b9ab50f29090b5673a334a1e773aa3108c4ccc5b937c361b181776280fc5fd
|
|
BLAKE2b-256 checksum How to use checksums |
a5bc77ff88d0ee63b082afd3e7f6e9e4626f12f49a5735c5a36b7df87da82346
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / panels-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.6 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1d0e8566dc9797b80dedaabc5123bd7b382fdd82e5a1234ffb52731f790e6e83
|
|
BLAKE2b-256 checksum How to use checksums |
ab9cfe97dc44e8e72ffb20691047b1eb7d99b88d436f2cd6f0361e139433609c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / panels-0.11.0-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | panels-0.11.0-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.6 MB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
a1adf6c715b14acdbe3a1c831a823443bf32c447bf1814f89c71803b81d20d5c
|
|
BLAKE2b-256 checksum How to use checksums |
575bf023507111592526bfe4795589f243348f59c9fdfc069a2ecc74a709f42b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / panels-0.11.0-cp310-cp310-win_amd64.whl
| Download URL | panels-0.11.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
eac8ac9ba93732c1c1b692181bc1f8490bc72106451bdebb68a3c1672ad71768
|
|
BLAKE2b-256 checksum How to use checksums |
e09bf6382f4c1a24ed08c81d2b11575d3820df140de14fcb86c75409f4ce8590
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / panels-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 35.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c6f09dfaf9535f0a181a2aa2f1fc5109f85203a4e4ae3c0a0046a009d0dea6c7
|
|
BLAKE2b-256 checksum How to use checksums |
c9e772222ef9eb7c37af9a5b2b15efee5fcbdd515a1a2346e1b24223b01c2212
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / panels-0.11.0-cp310-cp310-macosx_10_9_universal2.whl
| Download URL | panels-0.11.0-cp310-cp310-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
d2f627f2710c49f075e486351e1ba62c36178a03f36de9cbc1306692c1409d9c
|
|
BLAKE2b-256 checksum How to use checksums |
d31a6267c826837a0bb0a6cb41be578c193d648003d360bde8c1d2aa2bca38de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / panels-0.11.0-cp39-cp39-win_amd64.whl
| Download URL | panels-0.11.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4e8fbcd79163d5745ddd0e210ec187f30e2aae8a89683ed424ca2178b03a5bce
|
|
BLAKE2b-256 checksum How to use checksums |
8c62ba76aeb8c7fd31eae35c5af3f5a3a0c5636674558e7225c4b35c86351189
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|
Release files / panels-0.11.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.11.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 35.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5148bbcabb43d62c70a53645dff737f6f4f6e39d90811130a0835f3128c1b608
|
|
BLAKE2b-256 checksum How to use checksums |
75a6af19c1ed4044c6ea3dd440dd1c2f48cdaab2a66fdfc08f3e8f74150c5861
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / panels-0.11.0-cp39-cp39-macosx_10_9_universal2.whl
| Download URL | panels-0.11.0-cp39-cp39-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
900613fa36f25335e157938568822127c3ec860bbe587be8c397e0494b8f5c14
|
|
BLAKE2b-256 checksum How to use checksums |
eabc63fce2a735c04f7a59d5384e6c5b5d1b0b37091fcd73f5e8e3c214b072ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|