ABD Matrix Calculator

Introduction

This file contains functions to analyze the properties of a laminate. It will allow the calculation of the stiffness and compliance matrix for plane stress and it can execute a given stacking sequence to calculate the ADB matrix.

Routines

ABD matrix calculator for a given stacking sequence.

The methods in this file will call create a ABD matrix of a composit for given ply properties and stacking sequence.

A.J.J. Lagerweij COHMAS Mechanical Engineering KAUST 2020

abdcal.QPlaneStrain(El, Et, nult, G)

Generate the plane strain local stiffness matrix.

Warning

Not yet implemented. It raises a NotImplementedError.

Parameters:
  • El (float) – Elastic modulus in the longitudional direction.
  • Et (float) – Elastic modulus in the transverse direction.
  • nult (float) – Poisson ratio in longitudional-transverse direction.
  • G (float) – Shear modulus in longitudional-transverse directions.
Returns:

Q – Stiffness matrix in longitudional-transverse directions.

Return type:

matrix

abdcal.QPlaneStress(El, Et, nult, G)

Generate the plane stress local stiffness matrix.

Parameters:
  • El (float) – Elastic modulus in the longitudional direction.
  • Et (float) – Elastic modulus in the transverse direction.
  • nult (float) – Poisson ratio in longitudional-transverse direction.
  • G (float) – Shear modulus in longitudional-transverse directions.
Returns:

Q – Stiffness matrix in longitudional-transverse directions.

Return type:

matrix

abdcal.abd(Q, angles, thickness, truncate=False)

Calculate the full ABD matrix of a laminate.

Top plies should be listed first in the lists of Q, angles and thickness.

Parameters:
  • Q (list) – The stiffness matrix of each ply in its l-t axis system.
  • angles (list) – The rotation of each ply in degrees.
  • thickness (list) – The thickness of each ply.
  • truncate (bool) – Truncates very small numbers when true.
Returns:

ABD – The stiffness matrix of the thin laminate.

Return type:

matrix

abdcal.abdthin(Q, angles, thickness, truncate=False)

ABD matrix calculator for a thin laminate.

In the thin laminate theroy it is assumed that the out of plane stiffness is negligible and that the layup is symmetric. Hence only the membrane (A part) of the ABD matrix remains. Top plies should be listed first in the lists of Q, angles and thickness.

Parameters:
  • Q (list) – The stiffness matrix of each ply in its l-t axis system.
  • angles (list) – The rotation of each ply in degrees.
  • thickness (list) – The thickness of each ply.
  • truncate (bool) – Truncates very small numbers when true.
Returns:

C – The stiffness matrix of the thin laminate.

Return type:

matrix

abdcal.compliance_rotation(compliance, angle)

Rotate the compliance matrix over a given angle.

This rotates the complianc matrix from local to the global axis sytem. Use a negative angle to rotate from global to local system.

Parameters:
  • compliance (matrix) – The matrix that must be rotated.
  • angle (float) – The rotation angle in degrees.
Returns:

stiffness_rot – A rotated version of the matrix.

Return type:

matrix

abdcal.cte(Q, angles, thickness, alpha)

Coefficient of Thermal Expansion calculator.

This funcion calculates the CTE in the x-y axis sytem. It summs up the rotated CTE of each layer and multiplies them by layer stiffness and thickness. The resulting CTE relates thermal change (\(\Delta T\)) to the deformation vector (strains and curvatures). Top plies should be listed first in the lists of Q, angles, thickness and alpha.

Parameters:
  • Q (list) – The stiffness matrix of each ply in its l-t axis system.
  • angles (list) – The rotation of each ply in degrees.
  • thickness (list) – The thickness of each ply.
  • alpha (list) – The coeficcient of termal expansion of each ply in l-t axis system.
Returns:

cte – The coefficient of termal expansion of the laminate, in x-y axis sytem.

Return type:

vector

abdcal.ctethin(Q, angles, thickness, alpha)

Thin laminate Coefficient of Thermal Expansion calculator.

This funcion calculates the CTE in the x-y axis sytem. It summs up the rotated CTE of each layer and weights them by layer stiffness and thickness. Here it is assumed that there is no bending behaviour this is only true for thin and symmetric layups. Top plies should be listed first in the lists of Q, angles, thickness and alpha.

Parameters:
  • Q (list) – The stiffness matrix of each ply in its l-t axis system.
  • angles (list) – The rotation of each ply in degrees.
  • thickness (list) – The thickness of each ply.
  • alpha (list) – The coeficcient of termal expansion of each ply in l-t axis system.
Returns:

cte – The coefficient of termal expansion of the laminate, in x-y axis sytem.

Return type:

vector

abdcal.matrix_inverse(matrix)

Inverts a matrix.

Parameters:matrix (matrix) – The matrix to be inverted.
Returns:inverse – The inverse of the matrix.
Return type:matrix
abdcal.stiffness_rotation(stiffness, angle)

Rotate the stiffness matrix against given angle.

This rotates the stiffness matrix from local to the global axis sytem. Use a negative angle to rotate from global to local system.

Parameters:
  • stiffness (matrix) – The matrix that must be rotated.
  • angle (float) – The rotation angle in degrees.
Returns:

stiffness_rot – A rotated version of the matrix.

Return type:

matrix