# Roland's homepage

My random knot in the Web

# lamprop

## Introduction

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

• engineering properties like $$E_x$$, $$E_y$$, $$G_{xy}$$
• thermal properties $$\alpha_x$$ and $$\alpha_y$$
• physical properties like density ($$\rho$$) 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.

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.

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