Example Problem 8 page 358 from Mark. E. Tuttle's "Structural Analysis of Polymeric Composite Materials", first edition.


In [35]:
import pyPLY

# see separate examples for details.

GraphiteEpoxy = pyPLY.CompositeMaterial()
GraphiteEpoxy.define("GraphiteEpoxy", "metric", E11=170e9, E22=10e9, G12=13e9, niu12=0.3, thk=0.125e-3,
             Sigma_ut0 = 1500e6, Sigma_uc0 = 1200e6, Sigma_ut90 = 50e6, Sigma_uc90 = 100e6, Tau_u = 75e6,
             alpha_11 = -0.9e-6, alpha_22 = 27.0e-6, beta_11 = 150e-6, beta_22 = 4800e-6)

layer1 = pyPLY.Lamina()
layer2 = pyPLY.Lamina()
layer3 = pyPLY.Lamina()
layer4 = pyPLY.Lamina()
layer5 = pyPLY.Lamina()
layer6 = pyPLY.Lamina()

layer1.define("Layer_1", 1, 30)
layer2.define("Layer_2", 1, 0)
layer3.define("Layer_3", 1, 90)
layer4.define("Layer_4", 1, 90)
layer5.define("Layer_5", 1, 0)
layer6.define("Layer_6", 1, 30)

layer1.update()
layer2.update()
layer3.update()
layer4.update()
layer5.update()
layer6.update()

laminate1 = pyPLY.Laminate()
laminate1.add_Lamina(layer1)
laminate1.add_Lamina(layer2)
laminate1.add_Lamina(layer3)
laminate1.add_Lamina(layer4)
laminate1.add_Lamina(layer5)
laminate1.add_Lamina(layer6)

laminate1.update()

In [36]:
load1 = pyPLY.Loading()
load1.define_Load(0,0,0,0,0,0,-155,0.5)
load1.apply_To(laminate1)

Results:

[abd] matrix


In [37]:
from pyPLYTools import LXMatrix
from IPython.display import Latex

Latex("$abd = " + LXMatrix(laminate1.abd, '.3e', ipython=True) + "$")


Out[37]:
$abd = \left[\begin{array}{cccccc} 1.599e-08 & -1.228e-09 & -1.198e-08 & 5.148e-21 & -3.559e-23 & -5.949e-21\\ -1.228e-09 & 2.002e-08 & -5.992e-09 & -1.058e-21 & -6.310e-21 & 4.497e-21\\ -1.198e-08 & -5.992e-09 & 7.584e-08 & -3.626e-21 & 2.216e-21 & 3.055e-21\\ 5.152e-21 & -2.632e-22 & -3.905e-21 & 3.510e-01 & -2.918e-02 & -3.918e-01\\ -2.591e-21 & -6.180e-21 & 4.153e-21 & -2.918e-02 & 1.408e+00 & -6.957e-01\\ -4.629e-21 & 3.508e-21 & 2.374e-21 & -3.918e-01 & -6.957e-01 & 1.788e+00 \end{array}\right]$

[ABD] matrix


In [38]:
Latex("$ABD = " + LXMatrix(laminate1.ABD, '.3e', ipython=True) + "$")


Out[38]:
$ABD = \left[\begin{array}{cccccc} 7.215e+07 & 8.024e+06 & 1.203e+07 & -9.095e-13 & 0.000e+00 & 0.000e+00\\ 8.024e+06 & 5.204e+07 & 5.380e+06 & 1.137e-13 & 2.274e-13 & 0.000e+00\\ 1.203e+07 & 5.380e+06 & 1.551e+07 & 0.000e+00 & 0.000e+00 & 0.000e+00\\ -9.095e-13 & 0.000e+00 & 0.000e+00 & 4.234e+00 & 6.762e-01 & 1.191e+00\\ 1.137e-13 & 2.274e-13 & 0.000e+00 & 6.762e-01 & 9.875e-01 & 5.324e-01\\ 0.000e+00 & 0.000e+00 & 0.000e+00 & 1.191e+00 & 5.324e-01 & 1.027e+00 \end{array}\right]$

The effective extensional moduli of the laminate are:


In [39]:
Latex("$E_{x}^{ex} = " + '{0:.3}'.format(laminate1.Ex) + "$")


Out[39]:
$E_{x}^{ex} = 8.34e+10$

In [40]:
Latex("$E_{y}^{ex} = " + '{0:.3}'.format(laminate1.Ey) + "$")


Out[40]:
$E_{y}^{ex} = 6.66e+10$

In [41]:
Latex("$G_{xy}^{ex} = " + '{0:.3}'.format(laminate1.Gxy) + "$")


Out[41]:
$G_{xy}^{ex} = 1.76e+10$

The flexural Poisson ratios and the flexural coefficients of mutual influence are:


In [42]:
Latex("$\nu_{xy}^{fl} = " + '{0:.3}'.format(laminate1.niuxyfl) + "$")


Out[42]:
$ u_{xy}^{fl} = 0.0831$

In [43]:
Latex("$\nu_{yx}^{fl} = " + '{0:.3}'.format(laminate1.niuyxfl) + "$")


Out[43]:
$ u_{yx}^{fl} = 0.0207$