Layup Analysis Tool

Versione 5.1.3 (1,23 MB) da fsgeek
Strength analysis and layup optimisation of unidirectional fibre-reinforced composites.
456 download
Aggiornato 17 feb 2026
Preamble
There are already several decent tools for the analysis of composite layups available on the MATLAB File Exchange, so why add another?
Layup Analysis Tool is a comprehensive package which offers ABD matrix output, stress calculation, failure assessment and layup design optimisation within a convenient and simple-to-use file submission:
  • Definition of n-ply layups with user-defined fibre orientations
  • Support for user-defined orthotropic elastic material properties (per ply)
  • Support for variable thickness plies
  • Support for n evenly-distributed section points (per ply)
  • Computation of the A, B and D matrices, and their inverse
  • Computation of the equivalent extensional and bending moduli (symmetric layups)
  • Stress and strain calculation in X-Y and ply coordinates, based on applied forces and moments
  • Pretty MATLAB figures of through-thickness stresses and strains
  • Inclusion of thermal and hydroscopic loads
  • User-defined output locations: Face (top, middle, bottom), envelope or section point list
  • Evaluation of stress and strain-based static failure criteria (Maximum Stress, Tsai-Hill, 2D Hoffman, Tsai-Wu, Azzi-Tsai-Hill and Maximum Strain)
  • Evaluation of stress-based damage initiation criteria (Hashin's Theory and LaRC05)
  • Support for user-defined failure criteria
  • Stacking sequence optimiser: Find the stacking sequence which minimises a user-selected criterion based on an objective function (maximum or mean). The optimiser algorithm takes advantage of the Parallel Computing Toolbox
Methodology
The methodology used by Layup Analysis Tool follows classical lamination theory (CLT) and assumes that the laminate obeys the Kirchhoff Hypothesis:
  1. Transverse shear is negligible (plane stress in each ply)
  2. Displacements u and v (in the plane of the lamina) are assumed to be linear functions of the thickness coordinate z (no warping)
Getting started
The main analysis function is called as follows:
[<output-structure>] = abd.main(<input-structure>);
Detailed information about defining <input-structure> is found in the help text located inside lat.m:
help lat
The following template file automatically generates the input structure based on the supplied user definitions. Simply fill out the options, then select Run or hit F5 to start the analysis:
edit user_definitions.m
Output
The output of the analysis is located under output\<job-name>.
Analysis summary file:
summary.log
Output variable file:
output.mat
Job settings record file:
settings.mat
The job settings record file can be used as input to the main analysis function:
[..] = abd.main('settings.mat');
Creating user-defined failure criteria
Generate a template routine file for the user-defined failure criterion:
abd.createUcrt('<criterion-name>')
Specify the user-define criterion in the user definition file:
OUTPUT_STRENGTH = {@<criterion-name>, {'RESERVE' | 'VALUE'}};
Example template routine file containing a user-defined failure criterion:
edit ucrt_example.m
Files
Main analysis function:
+abd/main.m
Validation cases to show that Layup Analysis Tool produces reliable output:
validation/validate_hashin.m
validation/validate_abaqus.m
validation/validate_joyce.m
Abaqus input files for validation:
validation/hashin_abaqus.inp
validation/uniaxial_abaqus.inp
Internal functions for calculation:
+abd/internal_<fun>.m
Documentation
For detailed instructions on the required inputs for Layup Analysis Tool, please consult the help text located inside lat.m:
help lat
Example Layup Analysis Tool analyses:
edit examples.m
Support
For questions, comments or suggestions, please contact the author: help.qft@gmail.com.
Acknowledgements
Theory reference
  • H. N. R. Wagner, Python code (GitHub link)
  • Y. Jack Weitsman et al., Coefficient of hydroscopic expansion (ScienceDirect link)
  • Abbott Aerospace Canada Ltf, Definition of laminate plate element behaviour (link)
Resources
  • Interactive composite laminate calculator (link)
  • Finding stiffness matrices A, B and D (eFunda link)

Cita come

fsgeek (2026). Layup Analysis Tool (https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v5.1.3), GitHub. Recuperato .

Compatibilità della release di MATLAB
Creato con R2025b
Compatibile con R2023a e release successive
Compatibilità della piattaforma
Windows macOS Linux
Tag Aggiungi tag
Versione Pubblicato Note della release
5.1.3

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v5.1.3

5.1.2

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v5.1.2

5.1.1

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v5.1.1
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v5.1.1

5.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/5.1.0

5.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v5.0.0

4.2.3

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v4.2.3

4.2.2

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v4.2.2

4.2.1

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v4.2.1

4.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v4.2.0

4.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v4.1.0

4.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v4.0.0

3.0.6

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.6

3.0.4

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.4

3.0.3

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.3

3.0.2

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.2

3.0.1

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.1

3.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.0

2.7.3

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.3

2.7.2

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.2

2.7.1

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.1

2.7.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.0

2.6.7.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.7

2.6.6.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.6

2.6.5.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.5

2.6.4.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.4

2.6.3.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.3

2.6.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.2

2.6.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.1

2.6.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.0

2.5.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.2

2.5.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.1
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.1

2.5.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.0

2.4.5.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.5

2.4.4.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.4

2.4.3.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.3

2.4.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.2

2.4.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.1
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.1

2.4.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.0

2.3.4.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.4

2.3.3.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.3

2.3.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.2

2.3.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.1

2.3.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.0
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.0

2.2.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.2.1

2.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.2.0

2.1.11

- The tool now includes output for failure measure components and stacking sequence optimisation
- Updated documentation

2.1.10

- Changed smoothing type to 'LOESS' for OUTPUT_FIGURE = 'SMOOTH'

2.1.9

- Minor update

2.1.8

- Added option to smooth MATLAB figure output at the ply boundaries

2.1.7

- Minor update

2.1.6

- Updated description

2.1.5

- Updated description

2.1.4

- Fixed an edge case which caused weirdness when the layup contained one section point
- Fixed a couple of crashes due to unassigned output
- Results output is now written to its own "output" folder by default

2.1.3

- Updated description

2.1.2

- Fixed a bug where output was sometimes missing at some plies when OUTPUT_PLY = 'MIDDLE'

2.1.1

- Pinpoint fix

2.1.0

- Fixed bug where stress/strain figures were not correctly aligned to ply boundaries
- Fixed bug where PARFOR was not included in optimiser code
- Improved optimiser output
- Updated description

2.0.2

- Updated description

2.0.1

- Updated description

2.0.0

- Added support for user-defined number of section points per ply (evenly distributes over the layup)
- Added stacking sequence optimiser tool which calculates the best layup stacking sequence based on the material data and load matrix
- Bug fixes

1.1.13

- Minor update

1.1.12

- Minor update

1.1.11

- Improved formatting of ABD matrix output

1.1.10

- Fixed a bug where certain layup definitions would incorrectly produce zero-valued elements in the ABD matrix

1.1.9

- Minor update

1.1.8

- Minor update

1.1.7

- Minor update

1.1.6

- Fixed a bug where the analysis would crash if OUTPUT_STRENGTH = true and there was no load
- Minor enhancements to output formatting

1.1.5

- Updated description
- Updated documentation

1.1.4

- Improved handling of stacking symmetry

1.1.3

- Minor update

1.1.2

- Minor update

1.1.1

- Minor improvement to failure measure output

1.1.0

- Fixed a bug where the program would crash when MATLAB figures are requested

1.0.7

- Minor update

1.0.6

- Minor update

1.0.5

- Updated documentation

1.0.4

- Updated description

1.0.3

- Small update

1.0.2

- Updated description

1.0.1

- Updated description

1.0.0

Per visualizzare o segnalare problemi su questo componente aggiuntivo di GitHub, visita GitHub Repository.
Per visualizzare o segnalare problemi su questo componente aggiuntivo di GitHub, visita GitHub Repository.