Skip to content
joaopbernhardtPublic

About

Composite laminates engineering simulations in Python.

Topics

Resources

Stars

50 stars

Watchers

5 watching

Forks

Latest commit

 

History

51 Commits

Folders and files

Repository files navigation

lamipy

Laminated composites engineering simulations in Python.

Brief description:

This project's purpose is to provide simple & accurate computations for engineering simulations of fiber-reinforced composites. This kind of advanced material is used in many areas of engineering: spacecrafts, pressure vessels, risers etc. Basically, the idea behind composite laminates is to produce a component which has the required engineering properties (high elastic modulus, low self-weight and others) through stacking many layers of laminae, in such way that each one can be layed in different fiber angles and can consist of different materials.

Therefore, a composite laminate consists of a material resultant of layers (laminae) bonded together. In this program, the layers are considered continuous and orthotropic. It is possible to input different properties for each used material in the layers.

The implementation uses the Classical Laminate Theory (CLT) for computations. The summary of this theory can be found in: NASA's Basic Mechanics of Laminated Composite Plates, Prof. W. Stein's document and other sources.

lamipy can be installed and run, but it is not ready for engineering use yet. Verification against published examples is still incomplete.

Project goals:

  • Provide a simple interface for laminate testing;
  • Display accurate information of results, including graphical analysis;

Technical features:

  • Calculates CLT stresses & strains (lamina & laminate coord. systems);
  • Failure tests for individual laminas (Tsai-Wu, Max. Stress, Max Strain and Hashin criteria);
  • Progressive failure analysis using Ply Discount method;
  • Plotting of progressive failure analysis;
  • Easy entry of laminate data;
  • Puck failure criteria;
  • Thermal & moisture effects on CLT calculations;
  • Laminate materials simple database
  • ...

How to use

Install and test with uv:

uv sync
uv run pytest
uv run pip-audit
uv run lamipy-demo

uv sync creates a virtual environment and installs lamipy with NumPy and Matplotlib. uv run pytest runs the unit tests. uv run pip-audit checks the installed packages against the Python advisory database. uv run lamipy-demo runs the progressive-failure example and writes figures under plots/. The example layup lives in lamipy/runfailuretest.py.

From another environment, install this repository with pip install . or uv pip install . and call the library directly:

from lamipy.clt import calc_stressCLT

Understanding lamipy:

As previously stated, lamipy works through the CLT computations. This way, the user input consists of the material properties, layup configurations, force vectors and other settings.

Below is a summary of the data flow inside lamipy for a simple analysis (i.e. not a progressive failure analysis).

Example results:

Through the obtained results from an analysis, it is possible to plot charts for better visualisation:

Also, since lamipy is capable of running a progressive failure analysis, it is possible to automatically plot the Load Factor vs. Average Strain of the laminate while directly pointing First Ply Failure and Last Ply Failure:

About

Composite laminates engineering simulations in Python.

Topics

Resources

Stars

50 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages