Skip to content
/ lp2ss Public

A fast and deterministic python implementation to convert Lamination Parameters (LPs) into production-friendly Stacking Sequences (SS) using FFTs and a Branch-and-Bound algorithm.

License

Notifications You must be signed in to change notification settings

DLR-SY/lp2ss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LP2SS

A fast and deterministic python implementation to convert Lamination Parameters (LPs) into production-friendly Stacking Sequences (SS) using FFTs and a Branch-and-Bound algorithm.

This work is based on the method submitted to the Journal of Composite Structures (2025).

The raw data required to reproduce findings in the aforementioned article are available to download from DOI


✨ Key Features

  • Deterministic and highly-efficient alternative to Genetic Algorithms for LP-to-SS conversion
  • Requires less than 1% of the time taken by state-of-the-art methods for comparable results
  • Ingenious use of Fast Fourier Transforms (FFT) for rapid Fibre Angle Distribution (FAD) design
  • Use of Branch-and-Bound to design Stacking Sequence (SS) from the given FAD

🧑‍💻 Contributors


🔍 Motivation

Conventionally used methods for converting LPs to SS—such as Genetic Algorithms or Branch-and-Bound approaches—struggle with scalability as the number of plies and allowable orientations increases, all the while enforcing design guidelines.

Hence, LP2SS proposes a partitioned approach that is more informed and efficient:

  1. First, determine the Fibre Angle Distribution (FAD)—i.e., how many plies belong to each orientation. This was accomplished with the ingenious use of Fast Fourier Transforms (FFTs).
  2. Then, design a Stacking Sequence (SS) from the FAD that complies with Out-of-Plane LPs and manufacturing guidelines. The use of FFTs to know avaiulable fibre angles beforehand, significantly reduces computational overhead for the Branch-and-Bound.

LP2SS Process Overview


📦 Repository Structure

This paritioned approach leads to: lp2ss.py = lp2fad.py + fad2ss.py. As such, the following codes are in the src:

  • lp2fad/: FFT-based implementation for converting In-Plane LPs (VA) into FADs.
  • fad2ss/: Branch-and-Bound algorithm for converting FADs into stacking sequences that match Out-of-Plane LPs (VD).
  • relay_src/ and relay_front_end_to_lp2ss/: Open-source tools for enforcing design guidelines, and interfacing with fad2ss.

🚀 Usage

Four tutorials are provided to guide users:

  • run_tutorial_1_lp2fad.py: Convert In-Plane LPs (VA) into FADs with relevant design guideline enforcement
  • run_tutorial_2_fad2ss.py: Convert a FAD into SS while matching Out-of-Plane LPs (VD) and enforcing desired design guidelines
  • run_tutorial_3_lp2ss.py: Convert a single LP set (VA and VD) into an SS, while enforcing desired design guidelines

📥 Installation

Requirements

  • Python IDE ≥ 3.12
  • Libraries: numpy, pandas, matplotlib

Setup

Clone the repository and run:

pip install .

📈 Validation

The implementation has been validated using publicly available benchmark datasets and extended with newly-introduced datasets for more rigorous testing. This ensures LP2SS efficiently and accurately translates conceptual stiffness requirements into guideline-compliant SS, regardless of laminate size or angles used ([Δ45°] or [Δ15°]).


🛠 Support

While LP2SS has been thoroughly tested, bugs may still arise. If you encounter any issues or have suggestions for improvement, feel free to reach out:

📧 [email protected]

If you decide to use LP2SS in your work or project, we’d love to hear about it—please feel free to get in touch!


🗺 Roadmap

The long-term goal is to enable the efficient design of variable stiffness composite laminates, where stacking sequences vary spatially to meet structural performance demands. While LP2SS currently supports the design of SS for a given set of stiffness requirements, they will be coupled with methods that blend/patch together different SS to make a variable stiffness composite strtucture.


📜 License

LP2SS © 2025 by Rakshith Manikandan is licensed under multiple licenses:

Please see the individual files for more accurate and specific licensing information.

Third-Party Code

The src/relay_src directory contains code originally released under the MIT license by Noémie Fedon.
We have included the original LICENSE file in that directory. Modifications made by us are covered under Apache 2.0 as noted in the headers.


📖 Citation

If you use LP2SS in any design or research, please cite the corresponding research article published in Composite Structures (2025): DOI

🙏 Acknowledgements

The FFT-based method for FAD design was a part of the main developer's MSc thesis at TU Delft (Faculty of Aerospace Engineering) and later extended for practical laminate design at the DLR-Institute of Lightweight Systems.

About

A fast and deterministic python implementation to convert Lamination Parameters (LPs) into production-friendly Stacking Sequences (SS) using FFTs and a Branch-and-Bound algorithm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages