Deformation Calculator

Introduction

This file containts functions to calculate what the deformation or load on a laminate is. To perform this calculation the ABD matrix and its inverse are required in combination with either:

  • Load vector \((N_x, N_y, N_{xy}, M_x, M_y, M_{xy})^T\)
  • Deformation vector \((\varepsilon_x, \varepsilon_y, \varepsilon_{xy},\kappa_x, \kappa_y, \kappa_{xy})^T\)

Eventually it will calculate the stress and strain values inside each ply of the laminate.

Routines

Calculate the resulting deformation or stresses for loading conditions.

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

deformation.deformation_applied(abd, deformation)

Calculate the running load and moment of the plate under a given using Kichhoff plate theory.

Parameters:
  • abd (matrix) – The ABD matrix.
  • deformation (vector) – This deformation consists of \((\varepsilon_x, \varepsilon_y, \varepsilon_{xy},\kappa_x, \kappa_y, \kappa_{xy})^T\)
Returns:

load – The load vector consits of are \((N_x, N_y, N_{xy}, M_x, M_y, M_{xy})^T\)

Return type:

vector

deformation.load_applied(abd_inv, load)

Calculate the strain and curvature of the full plate under a given load using Kirchhoff plate theory.

Parameters:
  • abd (matrix) – The inverse of the ABD matrix.
  • load (vector) – The load vector consits of are \((N_x, N_y, N_{xy}, M_x, M_y, M_{xy})^T\)
Returns:

deformation – This deformation consists of \((\varepsilon_x, \varepsilon_y \varepsilon_{xy},\kappa_x, \kappa_y, \kappa_{xy})^T\)

Return type:

vector

deformation.ply_strain(deformed, Q, angles, thickness)

Calculate the strain at the top and bottom of each ply.

Small and linear deformations are assumed. For each ply two strain states are retured, one for the top and bottom of each ply. As bending moments can leed to different stresses depending on the \(z\) location in the ply. Top plies should be listed first in the lists of Q, angles and thickness..

Parameters:
  • deformed (vector) – This deformation consists of \((\varepsilon_x, \varepsilon_y \varepsilon_{xy},\kappa_x, \kappa_y, \kappa_{xy})^T\)
  • Q (list) – The local stiffness matrix of each ply.
  • angles (list) – The rotation of each ply in degrees.
  • thickness (list) – The thickness of each ply.
  • plotting (bool, optional) – Plotting the stress distribution or not.
Returns:

strain – The stress vector \((\sigma_{xx}, \sigma_{yy}, \tau_{xy})^T\) of the top, middle and bottom of each ply in the laminate.

Return type:

list

deformation.ply_stress(deformed, Q, angles, thickness, plotting=False)

Calculate the stresses at the top and bottom of each ply.

Small and linear deformations are assumed. For each ply two stress states are retured, one for the top and bottom of each ply. As bending moments can leed to different stresses depending on the \(z\) location in the ply. Top plies should be listed first in the lists of Q, angles and thickness.

If required the stresses can be plotted as a function of the \(z\) coordinates. In this plot the stresses shown are in the global axsis system \(x\) and \(y\).

Parameters:
  • deformed (vector) – This deformation consists of \((\varepsilon_x, \varepsilon_y \varepsilon_{xy},\kappa_x, \kappa_y, \kappa_{xy})^T\)
  • Q (list) – The local stiffness matrix of each ply.
  • angles (list) – The rotation of each ply in degrees.
  • thickness (list) – The thickness of each ply.
  • plotting (bool, optional) – Plotting the through thickness stress distribution or not.
Returns:

stress – The stress vector \((\sigma_{xx}, \sigma_{yy}, \tau_{xy})^T\) of the top, middle and bottom of each ply in the laminate.

Return type:

list

deformation.ply_stress_thermal(deformed, angles, Q, thickness, alpha, dT)

Calculate the stress due to mechanical and thermal deformation.

Parameters:
  • deformed (vector) – This deformation of the entire laminate. \((\varepsilon_x, \varepsilon_y, \varepsilon_{xy},\kappa_x, \kappa_y, \kappa_{xy})^T\)
  • Q (list) – The local stiffness matrix of each ply in 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.
  • dT (float) – Change in temperature.
Returns:

stress – The stress vector \((\sigma_{xx}, \sigma_{yy}, \tau_{xy})^T\) of the top, middle and bottom of each ply in the laminate.

Return type:

list

deformation.strain_rotation(strain, angle)

Rotates a strain vector against a given angle.

This rotates the strain from local to the global axis sytem. Use a negative angle to rotate from global to local system. The strain vector must be in Voigt notation and engineering strain is used.

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

strain_rot – A rotated version of the matrix.

Return type:

vector

deformation.stress_rotation(stress, angle)

Rotates a stress vector against a given angle.

This rotates the stress from local to the global axis sytem. Use a negative angle to rotate from global to local system. The stress vector must be in Voigt notation and engineering stress is used.

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

stress_rot – A rotated version of the matrix.

Return type:

vector