Coverage status:
Methods for analysis and design of composites
High-performance module to calculate properties of laminated composite materials. Usually, this module is used to calculate:
-
A, B, D, E, F, H plane-stress stiffness matrices
- A, B, D, for classical plate theory (CLT, or CLPT)
- A44, A45, A55 for first-order shear deformation theory (FSDT), with the shear correction already applied, by default with the equilibrium approach of Rohwer (1988); also available: Vlachoutsis (1992), Whitney (1973), Chow (1971), Birman and Bert (2002), the thickness-shear frequency of Yang, Norris and Stavsky (1966), and a constant 5/6
- E, F, H for third-order shear deformation theory (TSDT)
-
Transverse shear stresses through the thickness, from the shear forces or recovered a posteriori from the strain gradients of an FSDT solution (Noor and Peters, 1989), with the corresponding transverse shear strain energies
-
Material invariants, trace-normalized or not
-
Lamination parameters based on material invariants
-
Stiffness matrices (ABD) based on lamination parameters
-
Saving and loading of laminates, plies, materials and lamination parameters in JSON
Documentation
The documentation is available on: https://saullocastro.github.io/composites.
Running in the browser with Pyodide
From version 0.9.20, a WebAssembly wheel is published on PyPI for Pyodide 314
(CPython 3.14), such that composites runs in the browser, e.g. in
JupyterLite or in a web page with Pyodide::
import micropip
await micropip.install('composites')
from composites import laminated_plate, to_json
lam = laminated_plate([0, 45, -45, 90], plyt=0.125e-3,
laminaprop=(142e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 3.2e9))
print(lam.ABD)
s = to_json(lam) # strict JSON, readable with JSON.parse in JavaScript
Citing this repository
Castro, SGP. Methods for analysis and design of composites (Version 0.9.20) [Computer software]. 2026. https://doi.org/10.5281/zenodo.2871782
Bibtex :
@misc{composites2026,
author = {Castro, Saullo G. P.},
doi = {10.5281/zenodo.2871782},
title = {{Methods for analysis and design of composites (Version 0.9.20)}},
year = 2026
}
History
- version 0.1.0, from sub-module of compmech 0.7.2
- version 0.2.2, from sub-module of meshless 0.1.19
- version 0.2.3 onwards: independent of previous packages
- version 0.3.0 onwards: with fast Cython version, not compatible with previous versions
- version 0.4.0 onwards: fast Cython and cimportable by other packages, full compatibility with finite element mass matrices of plates and shells, supporting laminated plates with materials of different densities
- version 0.5.4 onwards: verified lamination parameters, analytical gradients of Aij, Bij, Dij with respect to lamination parameters, supportting MAC-OS
- version 0.5.17 onwards: installing with pip
- version 0.6.0 onwards: cibuildwheel to distribute for Linux
- version 0.7.0 onwards: added Kassapoglou's module
- version 0.8.0 onwards: support for Third-order Shear Deformation Theory (TSDT)
- version 0.9.1 onwards: A44, A45, A55 with the shear correction already applied (Rohwer, 1988), transverse shear stress recovery, picklable Laminate and GradABD, improved Cython and compiler flags (0.9.2), see CHANGELOG.md
- version 0.9.12 onwards: shear correction methods of Whitney (1973), Chow (1971), Birman and Bert (2002) and Yang, Norris and Stavsky (1966), a posteriori transverse shear stresses and energies (Noor and Peters, 1989), Atrans, Dtrans and Ftrans deprecated in favour of Ats, Dts and Fts, see CHANGELOG.md
- version 0.9.20 onwards: saving and loading in JSON, support for Pyodide (WebAssembly) with wheels on PyPI, see CHANGELOG.md
License
Distrubuted under the 3-Clause BSD license (https://raw.github.com/saullocastro/composites/master/LICENSE).
Contact: S.G.P.Castro@tudelft.nl.
Metadata
Release files for composites 0.9.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| composites-0.9.20.tar.gz | 468.4 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| composites-0.9.20-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details |
| composites-0.9.20-cp314-cp314-pyemscripten_2026_0_wasm32.whl | CPython 3.14 | CPython 3.14 | PyEmscripten 2026.0+ WebAssembly | Details |
| composites-0.9.20-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| composites-0.9.20-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| composites-0.9.20-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| composites-0.9.20-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.28+ x86-64, Linux glibc 2.17+ x86-64 | Details |
| composites-0.9.20-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
Total release size: 4.3 MB
Release files / composites-0.9.20.tar.gz
| Download URL | composites-0.9.20.tar.gz |
|---|---|
| Size | 468.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04420b9966a68b363c87252be8e95883d1b38fe82088ef6d1618bc7c0ec1074e
|
|
BLAKE2b-256 checksum How to use checksums |
514e25b05b83e0c33737c880d7dd360828ec7a10f692f03267afc22af8623bc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / composites-0.9.20-cp314-cp314-win_amd64.whl
| Download URL | composites-0.9.20-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 291.6 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b3e713e3ca06ac8fbbb00c5b36b351e027a2a0d1161ea5a3a73edbc99f8520ff
|
|
BLAKE2b-256 checksum How to use checksums |
89dee23dd86b416272bf13b11c0234cb7565e607d5ffeb9d142867eaf35453a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / composites-0.9.20-cp314-cp314-pyemscripten_2026_0_wasm32.whl
| Download URL | composites-0.9.20-cp314-cp314-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 167.3 kB |
| Tags | CPython 3.14 PyEmscripten 2026.0+ WebAssembly |
|
SHA-256 checksum How to use checksums |
bfe400a8fe2f908a0b8246da09ad90f2dc9eda786ed6b20286fb96cb2aba67d6
|
|
BLAKE2b-256 checksum How to use checksums |
3d32cff87eaf31d1198cf321fe95eb9fa3b9cdb6d4b52bc3a402e19e3e4473c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / composites-0.9.20-cp313-cp313-win_amd64.whl
| Download URL | composites-0.9.20-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 285.8 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a15ead3877359fa5476c22e0436f239243df8182ca3c05dd714ed5a2b2f0dd07
|
|
BLAKE2b-256 checksum How to use checksums |
b3c2536d53a9f74637b05e2544ca11fd2ba7c90496cf84cbac0279b9ee9acbd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / composites-0.9.20-cp312-cp312-win_amd64.whl
| Download URL | composites-0.9.20-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 286.0 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ae144b75e3c1b0a2b67557cdbc601a0ea4f241608162b2da0d5706c205dae56b
|
|
BLAKE2b-256 checksum How to use checksums |
ca342fbfb91e7991e215e2e3bc62cc71acf052a9b3a92d8bb092b6b5c02a5854
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / composites-0.9.20-cp311-cp311-win_amd64.whl
| Download URL | composites-0.9.20-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 299.2 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f6060965854a571719fbf98f1567fc64cdd34b5186df076509b925e8f4c57a8e
|
|
BLAKE2b-256 checksum How to use checksums |
e0820d4e3c7073b4fb38c2c2d2ea35bbf27bf12d8549666438c35a62a3fbb9c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / composites-0.9.20-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | composites-0.9.20-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c1dea45ca47b53510b035212c2332bc32164fa041c26780b24946a6334d8e607
|
|
BLAKE2b-256 checksum How to use checksums |
4de3effe0e41fee777e44635c2c24b1b27e8f1fa834c37f0cff4781ff0c82212
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / composites-0.9.20-cp310-cp310-win_amd64.whl
| Download URL | composites-0.9.20-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 299.6 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9a3374699553eae89024a524a3cc887989c59a9a58dbbd2860f52b030c3299c1
|
|
BLAKE2b-256 checksum How to use checksums |
842863b0d67b5606fde4b7210f27c2e59da946a035c1df03b4fe12d74598a68c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|