Skip to main content

Github Actions status:

Actions Status

Coverage status:

Codecov 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 stiffness kCfollower in Shell and MultiDomain
    • 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.Dts and Laminate.Fts, requires composites>=0.9.12 and structsolve>=0.5.0
  • 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 MultiDomain connection '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_dmg and fkCSB22_dmg take the distances dt and db from 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() with composites>=0.9.0
  • version 0.6.21 (2026-09-18)
    • Fixed the mass of the base of BladeStiff2D, which was missing, and the section forces of MultiDomain.force(), which lacked the Jacobian
    • StiffPanelBay.calc_kA() sums the contribution of every panel, and calc_kA, calc_cA, calc_fext, save, get_size and uvw_stiffener of StiffPanelBay and Shell.calc_cA no longer raise
    • Shell.strain() and Shell.stress() work for a plate with r=None
    • Line coverage of the tests raised from 67 % to 92 %
    • Fixed StiffPanelBay.add_panel and the partial-domain integration of Shell.calc_kC, calc_kG and calc_kM
    • The limits Shell.x1, x2, y1, y2 of the integration domain default to None instead of the sentinels -1 and +1, which silently integrated the full domain for a limit at 1.0 and ignored a limit given on one side only; the old -1 now raises
    • Fixed the MultiDomain skin-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 MultiDomain connection 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 every MultiDomain connection
    • Fixed the argument handling of the stiffness API: an invalid c or c_cte no longer reaches the nogil kernels, and a model that needs a radius raises instead of computing with r = 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
    • Shell and MultiDomain can be passed directly to structsolve.Analysis, including the arc-length methods
    • Gauss-Legendre points and weights from scipy.special.roots_legendre
    • Modules of the models renamed without the _bardell suffix, and the legacy _bardell model names removed from panels.modelDB.db
    • Sphinx documentation with usage examples
  • 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)

Source distribution for panels 0.11.0
File Size Uploaded
panels-0.11.0.tar.gz 7.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for panels 0.11.0
File
panels-0.11.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
panels-0.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
panels-0.11.0-cp314-cp314-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) Details
panels-0.11.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
panels-0.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
panels-0.11.0-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details
panels-0.11.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
panels-0.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
panels-0.11.0-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details
panels-0.11.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
panels-0.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
panels-0.11.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
panels-0.11.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
panels-0.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
panels-0.11.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
panels-0.11.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
panels-0.11.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
panels-0.11.0-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details

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
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