# Example 6 pag 56 from "Basic Mechanics of Laminated Composite Plates" # A.T. Nettles # NASA Reference Publication 1351


In [1]:
import pyPLY

print "pyPLY Version:", pyPLY.__pyPLYversion__

AS4_3501_6 = pyPLY.CompositeMaterial()
AS4_3501_6.define("AS4_3501_6", "imperial", E11=20010000.0, E22=1301000.0, G12=1001000.0, niu12=0.3, thk=0.005,
             Sigma_ut0 = 616.0, Sigma_uc0 = 355.0, Sigma_ut90 = 42.0, Sigma_uc90 = 105.0, Tau_u = 50.0,
             alpha_11 = -0.04e-6, alpha_22 = 18.0e-6, beta_11 = 0.01, beta_22 = 0.35)

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

layer1.define("Layer_1", 1, 0)
layer2.define("Layer_2", 1, 45)
layer3.define("Layer_3", 1, 45)
layer4.define("Layer_4", 1, 0)

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

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

laminate1.update()

load1 = pyPLY.Loading()
load1.define_Load(0,0,0,5,0,0,0,0)
load1.apply_To(laminate1)

from numpy import set_printoptions
set_printoptions(suppress=True)


pyPLY Version: 0.1

In [2]:
print load1.epsilon_K


[[-0.        ]
 [-0.        ]
 [ 0.        ]
 [ 0.4182108 ]
 [-0.16501182]
 [-0.0978853 ]]

In [3]:
print "     layerNo", "epsx", " epsy", " gammaxy"
for i in range (0, 4):
    strain = load1.list_ply_strains_xy[i*3 + 0]
    print "bottom  ", i+1, '{0:+.4}'.format(strain[0,0]), '{0:+.4}'.format(strain[1,0]), '{0:+.4}'.format(strain[2,0])
    strain = load1.list_ply_strains_xy[i*3 + 1]
    print "centroid", i+1, '{0:+.4}'.format(strain[0,0]), '{0:+.4}'.format(strain[1,0]), '{0:+.4}'.format(strain[2,0])
    strain = load1.list_ply_strains_xy[i*3 + 2]
    print "top     ", i+1, '{0:+.4}'.format(strain[0,0]), '{0:+.4}'.format(strain[1,0]), '{0:+.4}'.format(strain[2,0])


     layerNo epsx  epsy  gammaxy
bottom   1 -0.004182 +0.00165 +0.0009789
centroid 1 -0.003137 +0.001238 +0.0007341
top      1 -0.002091 +0.0008251 +0.0004894
bottom   2 -0.002091 +0.0008251 +0.0004894
centroid 2 -0.001046 +0.0004125 +0.0002447
top      2 -3.39e-20 -1.101e-19 +1.928e-19
bottom   3 -3.39e-20 -1.101e-19 +1.928e-19
centroid 3 +0.001046 -0.0004125 -0.0002447
top      3 +0.002091 -0.0008251 -0.0004894
bottom   4 +0.002091 -0.0008251 -0.0004894
centroid 4 +0.003137 -0.001238 -0.0007341
top      4 +0.004182 -0.00165 -0.0009789

In [4]:
print "     layerNo", "sigmax", "    sigmay", "    sigmaxy"
for i in range (0, 4):
    stress = load1.list_ply_stresses_xy[i*3 + 0]
    print "bottom  ", i+1, '{0:+.4}'.format(stress[0,0]), '{0:+.4}'.format(stress[1,0]), '{0:+.4}'.format(stress[2,0])
    stress = load1.list_ply_stresses_xy[i*3 + 1]
    print "centroid", i+1, '{0:+.4}'.format(stress[0,0]), '{0:+.4}'.format(stress[1,0]), '{0:+.4}'.format(stress[2,0])
    stress = load1.list_ply_stresses_xy[i*3 + 2]
    print "top     ", i+1, '{0:+.4}'.format(stress[0,0]), '{0:+.4}'.format(stress[1,0]), '{0:+.4}'.format(stress[2,0])


     layerNo sigmax     sigmay     sigmaxy
bottom   1 -8.353e+04 +517.6 +979.8
centroid 1 -6.265e+04 +388.2 +734.9
top      1 -4.176e+04 +258.8 +489.9
bottom   2 -7650.0 -1811.0 -3429.0
centroid 2 -3825.0 -905.7 -1715.0
top      2 +1.835e-13 +3.104e-14 +3.18e-13
bottom   3 +1.835e-13 +3.104e-14 +3.18e-13
centroid 3 +3825.0 +905.7 +1715.0
top      3 +7650.0 +1811.0 +3429.0
bottom   4 +4.176e+04 -258.8 -489.9
centroid 4 +6.265e+04 -388.2 -734.9
top      4 +8.353e+04 -517.6 -979.8

In [5]:
print "     layerNo", "eps11", "      eps22", "    gamma12"
for i in range (0, 4):
    strain = load1.list_ply_strains_12[i*3 + 0]
    print "bottom  ", i+1, '{0:+.4}'.format(strain[0,0]), '{0:+.4}'.format(strain[1,0]), '{0:+.4}'.format(strain[2,0])
    strain = load1.list_ply_strains_12[i*3 + 1]
    print "centroid", i+1, '{0:+.4}'.format(strain[0,0]), '{0:+.4}'.format(strain[1,0]), '{0:+.4}'.format(strain[2,0])
    strain = load1.list_ply_strains_12[i*3 + 2]
    print "top     ", i+1, '{0:+.4}'.format(strain[0,0]), '{0:+.4}'.format(strain[1,0]), '{0:+.4}'.format(strain[2,0])


     layerNo eps11       eps22     gamma12
bottom   1 -0.004182 +0.00165 +0.0009789
centroid 1 -0.003137 +0.001238 +0.0007341
top      1 -0.002091 +0.0008251 +0.0004894
bottom   2 -0.0003883 -0.0008777 +0.002916
centroid 2 -0.0001941 -0.0004389 +0.001458
top      2 +2.441e-20 -1.684e-19 -7.615e-20
bottom   3 +2.441e-20 -1.684e-19 -7.615e-20
centroid 3 +0.0001941 +0.0004389 -0.001458
top      3 +0.0003883 +0.0008777 -0.002916
bottom   4 +0.002091 -0.0008251 -0.0004894
centroid 4 +0.003137 -0.001238 -0.0007341
top      4 +0.004182 -0.00165 -0.0009789

In [6]:
print "     layerNo", "sigma11", "      sigma22", "    tau12"
for i in range (0, 4):
    stress = load1.list_ply_stresses_12[i*3 + 0]
    print "bottom  ", i+1, '{0:+.4}'.format(stress[0,0]), '{0:+.4e}'.format(stress[1,0]), '{0:+.4}'.format(stress[2,0])
    stress = load1.list_ply_stresses_12[i*3 + 1]
    print "centroid", i+1, '{0:+.4}'.format(stress[0,0]), '{0:+.4e}'.format(stress[1,0]), '{0:+.4}'.format(stress[2,0])
    stress = load1.list_ply_stresses_12[i*3 + 2]
    print "top     ", i+1, '{0:+.4}'.format(stress[0,0]), '{0:+.4e}'.format(stress[1,0]), '{0:+.4}'.format(stress[2,0])
    print


     layerNo sigma11       sigma22     tau12
bottom   1 -8.353e+04 +5.1756e+02 +979.8
centroid 1 -6.265e+04 +3.8817e+02 +734.9
top      1 -4.176e+04 +2.5878e+02 +489.9

bottom   2 -8160.0 -1.3011e+03 +2919.0
centroid 2 -4080.0 -6.5053e+02 +1460.0
top      2 +4.253e-13 -2.1075e-13 -7.623e-14

bottom   3 +4.253e-13 -2.1075e-13 -7.623e-14
centroid 3 +4080.0 +6.5053e+02 -1460.0
top      3 +8160.0 +1.3011e+03 -2919.0

bottom   4 +4.176e+04 -2.5878e+02 -489.9
centroid 4 +6.265e+04 -3.8817e+02 -734.9
top      4 +8.353e+04 -5.1756e+02 -979.8