Roland's homepage

My random knot in the Web

lamprop

(tl;dr: download the latest version from github.)

Introduction

The purpose of this program is to calculate some properties of fiber-reinforced composite laminates. It calculates:

  • engineering properties like Ex, Ey, Gxy
  • thermal properties αx and αy
  • physical properties like density (ρ) and laminate thickness (t)
  • stiffness (or ABD) and compliance (or abd) matrices

Although these properties are not very difficult to calculate, (the relevant equations and formulas can be readily found in the available composite literature) the calculation is time-consuming and error-prone when done by hand.

Below is a sample of the program’s output, formatted with LaTeX.

LaTeX formatted table generated by lamprop

N.B.: This program can not calculate the strength of composite laminates. Because there are many different failure modes, strengths of composite laminates cannot readily be calculated from the strengths of the separate materials that form the laminate. These strengths have to be determined from tests.

History

The precursor for this program was a spreadsheet that I wrote because of the aforementioned tedium in doing laminate properties caclulations by hand. This worked, but had significant limitations in the sense that it could only handle a fixed number of layers, and that the spreadsheet calculations sometimes did not yield the correct result!

So I wrote lamprop in C. By design the output was printed by a single function, so it was easy to implement e.g. LaTeX and HTML output next to plain text.

As an exercise in learning the language, the author ported the program to the Python programming language. This proved to be a much cleaner, more maintainable and shorter implementation.

Additionally, the generally hard to obtain transverse fiber properties were replaced with properties derived from the matrix.

In 2015, the source repository was published on github.

Changes in version 2

In version 2.0 the software was ported to Python 3. Also the internal API was completely reworked. The different output formats were made more consistent. Text output on ms-windows avoids using unicode output since cmd.exe doesn’t handle that well. Output in rich text format (“RTF”) was added.

From version 2.1, the laminae in the output are numbered from 1 instead of 0.

Changes in version 3

Support for old style fiber properties (which also specified properties in the radial direction of the fiber) has been removed from the code. The reason for that is that such radial properties are generally not specified for anisotropic fibers.

Design

The current version is written in python, and requires version 3.4 and the numpy library.

The following references were used in creating this program;

  • L.J. Hart-Smith, The ten-percent rule for preliminary sizing of fibrous composite structures, Weight Engineering, 52, 29-45, 1992
  • M. W. Hyer, Stress Analysis of Fiber Reinforced Composite Materials, McGraw-Hill, Boston, USA, 1997
  • Stephen W. Tsai, Theory of composites design, Think Composites, Dayton, USA, 1992
  • J.R. Vinson and R.L. Sierakowski, The Behavior of Structures Composed of Composite Materials, Martinus Nijhoff Publishers, Dordrecht, The Netherlands, 1987

Download

The latest version is found on github.


Latest version in C

The source code of the last version written in C:

source:lamprop-1.3.3.tar.gz
GPG signature:
——-BEGIN PGP SIGNATURE——-
Version: GnuPG v2.0.22 (FreeBSD)

iQIcBAABAgAGBQJTEzemAAoJEED21dyjijPgoBAP/03JsxKMrZ6w/ZNx2zW7EiVi
M1CPWGmpMib4Auw74RcvCH5vCa8KrF63rcAlPWFEGNi59+Kx5LHaDIrB9foLNXmT
/qUfZxRPkm+5QC0FI6B/N/YoDVpsKajxmKw/l8tac8XoaNwIEpInUWRe02VpQVt5
EPGHzcfnkX53oSSn7nAkLjVut7YkL4eXTONxDd9+Zwz2DmVXPv49nUW2YMNo1UNY
6eOxi8RKidgdjTnR8h2PZFy703RcoMcHMcGaQuQqyPUJwAixv0QyCdiyE13sxbeP
Ar5XnmMVxjL0xkmCBr7E9YU8UCa95yGwMEW62pfFTu66X+chdQEy1lxO6OSScF3A
FxwdiDz+S5ZCRcMYF6XJIHPk9qKwGeXaTmbaEWWli34qauUbwiC29exV8Onv5kNv
Z82KHrsDl3qiWV93FqRxi7HMq8u4KxLKYnrkGgP6WmJlzSMvNIjqxWTqk4Pni1hE
NiMFLoIuSiOHWZZn8DMkI1+t/HS6obZXABDt8MWkAfAc4CE8TIylnQtXpyUcoB9H
eEsFczEFWw09W1cwMmo4kZ1yuZARtJaV7/27XgYfPHxvlM2vxQKuJER+Xs4KUNg2
3qCL6PafzAQc+KwUKArKRpqnsOqIPtkLdP9dvURIKgs8QQOVqd8ba9wX/vTJKjl0
EYN2z0HmSCmAm1ITsmPt
=ZsOc
——-END PGP SIGNATURE——-
SHA256 hash:1b9362e629686773a09a27caa5fb608ca39f4b91da53e59e97cad0826ba1d35f
Requirements:C development environment

←  rrm py-stl / stl2pov  →