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
- 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.9.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.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.9.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.9.0.tar.gz | 7.5 MB | Details |
Built distributions (wheels)
Total release size: 304.3 MB
Release files / panels-0.9.0.tar.gz
| Download URL | panels-0.9.0.tar.gz |
|---|---|
| Size | 7.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8437324fd0d707e4c419b4bf408251be659b134dc0732421b8aca0ca34239f94
|
|
BLAKE2b-256 checksum How to use checksums |
c0835922901caa5664a536f1fb1bfc01c2b262b7a2c29004c7b398cfc21c204f
|
| 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.9.0-cp314-cp314-win_amd64.whl
| Download URL | panels-0.9.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0522d776966120e598004438487cb0a9c016e36f64625128351d34e9cb95ee78
|
|
BLAKE2b-256 checksum How to use checksums |
37c34fc4806e6bb7d2ab6bbcb812f0632a395e7c498e9519edd46b752bdf6183
|
| 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.9.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.9.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.4 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ac5f82e7b4dbe0fbf52bb093d04324f069f9097316e165a4eec0fbe1bc4ab780
|
|
BLAKE2b-256 checksum How to use checksums |
dd2de96c02b67789e35bc8016e233b9d18efef3c7fe79ba4f50e119cbf1be35e
|
| 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.9.0-cp314-cp314-macosx_10_15_universal2.whl
| Download URL | panels-0.9.0-cp314-cp314-macosx_10_15_universal2.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
491e9521ba1bd03d95779785982f21f2e78aa24ea54a13c72954c9fa3caf038a
|
|
BLAKE2b-256 checksum How to use checksums |
434d2785108d46ddfe56696dfa70ad74535cb20db56ff78f2220508296ed8a44
|
| 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.9.0-cp313-cp313-win_amd64.whl
| Download URL | panels-0.9.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5c3e52aef39421c29ec7fc0f0fad8db41185aad705eaf27b4ee0bb43d84ae395
|
|
BLAKE2b-256 checksum How to use checksums |
3ea7f1fdabbe538659783cb77a203f3d96008e58cb6757676aa26fef1ace0d53
|
| 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.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a221a0138e5a6aed9a061aab363594872c5e16f399c8e83365075cbb605f4773
|
|
BLAKE2b-256 checksum How to use checksums |
831481184e26a8addf39edbb35ea0f50fc745e3f6212ea4e1b0e34615e088819
|
| 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.9.0-cp313-cp313-macosx_10_13_universal2.whl
| Download URL | panels-0.9.0-cp313-cp313-macosx_10_13_universal2.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
684b9327509c8c6f4ffb2fb2f179c76743e08e43b851194d80ee277501b681c6
|
|
BLAKE2b-256 checksum How to use checksums |
bcbf581518a273900ecd3a8d5e18b03b3592ed5607940487616c7c44c519d2df
|
| 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.9.0-cp312-cp312-win_amd64.whl
| Download URL | panels-0.9.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a46e2e23172ec8b0baba27577cd3200c58959f3ece7f091a5b7d96499ad8d020
|
|
BLAKE2b-256 checksum How to use checksums |
9da9e7510ce874b90166a988a5d4eb4be19011df53b2c41a4a3357f099197e99
|
| 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.9.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.9.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0987496ec04e25c8cfb1bc69e65d1a126ac7cb8fadb3d690acdc31b02172259d
|
|
BLAKE2b-256 checksum How to use checksums |
916c257dd81dd63bedfe2c455bcc18b073f456b62e2d8051159ffe92df361dc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / panels-0.9.0-cp312-cp312-macosx_10_13_universal2.whl
| Download URL | panels-0.9.0-cp312-cp312-macosx_10_13_universal2.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
904469083b0dec84e0cfdfe663112cac9edd6c993297fc5515d20239d98bbdfc
|
|
BLAKE2b-256 checksum How to use checksums |
829c2914551b44dbe23009fedaba0d2cfca8443956c64e32cbcfdc885ffc7e7b
|
| 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.9.0-cp311-cp311-win_amd64.whl
| Download URL | panels-0.9.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5d92e91a4df8c6d4a2de0b5c0aae90cd8f93e6d547e51175099c1dc7bb5f622b
|
|
BLAKE2b-256 checksum How to use checksums |
49b6d2191465f341fd039276b19d2f1b7afe24f98efa270f9830fbf3219db1b1
|
| 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.9.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.9.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 36.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6192294a9413c33c5b6aab94115722bef739870fea7ecafa25299a23aec9e201
|
|
BLAKE2b-256 checksum How to use checksums |
6055738ddc6f77f3dc12fd2f6995863148cdf1b05cfb5becc7812ac7b2de53fe
|
| 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.9.0-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | panels-0.9.0-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
12a3ef65eb32e9ab70a603222b2384fb7ad8b674594bb108a0765b48e8d05197
|
|
BLAKE2b-256 checksum How to use checksums |
925dad5c2653f478cf68215de192f05fb6195fdf8befba6c183e856be39cc1da
|
| 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.9.0-cp310-cp310-win_amd64.whl
| Download URL | panels-0.9.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b2f0a68387f6d0c4fbe71fedef38e3b0008b9fd2c0aa6c203ceea62d084f7116
|
|
BLAKE2b-256 checksum How to use checksums |
07cb714cfaf9f8b5b76bc7cf7a501161663e57709a71302fc4cbb6e87b03b2f8
|
| 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.9.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.9.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 35.2 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6935d2798ed6f3eabdb93bee38e8b20c283532a4c44404cf8be5db759cf7144d
|
|
BLAKE2b-256 checksum How to use checksums |
907ecbce9e3eae3530cef7b244632b4388eca03634a2cec0cf3b3128122b9191
|
| 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.9.0-cp310-cp310-macosx_10_9_universal2.whl
| Download URL | panels-0.9.0-cp310-cp310-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
5783e63b48648f7209cfa4110fc205a26806a406a3f4ab7946938caf3002e44e
|
|
BLAKE2b-256 checksum How to use checksums |
c73b44018aac815620df21cc637e67a76e4dc4e770f087ae164c85479d877066
|
| 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.9.0-cp39-cp39-win_amd64.whl
| Download URL | panels-0.9.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
726fd66c5b347f318b029585c3eb0791fcbc0be4588531f473a55597525152ee
|
|
BLAKE2b-256 checksum How to use checksums |
c4ae4645fd4bfee483090998bcfd9cef702153350fc23b96516714c294928669
|
| 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.9.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panels-0.9.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 35.1 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f6bd1f957b99859e2c3edb27129091774ff65aa4a022163df72a5c90583f9aba
|
|
BLAKE2b-256 checksum How to use checksums |
bc9a516da33459a5382d94ef13b0f3f8bd1999f2599e0ebcf6c5b23a38a1977c
|
| 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.9.0-cp39-cp39-macosx_10_9_universal2.whl
| Download URL | panels-0.9.0-cp39-cp39-macosx_10_9_universal2.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
e5b6ae858de82458a27d683ee6944d9b505e82cf72af328ec1b7a66faebddf88
|
|
BLAKE2b-256 checksum How to use checksums |
9eeea89659cfe3796e9294ac75119e20a8246221d95b127cfd156bf5f510d64c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|