# Example 7 page 63 from "Basic Mechanics of Laminated Composite Plates" # A.T. Nettles # NASA Reference Publication 1351


In [1]:
import pyPLY

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()

layer1.define("Layer_1", 1, 0)
layer2.define("Layer_2", 1, 45)

layer1.update()
layer2.update()

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

laminate1.update()

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

from numpy import set_printoptions
set_printoptions(suppress=True)
print "A=", laminate1.A


A= [[ 133420.93537597   24735.02596905   23523.9018575 ]
 [  24735.02596905   39325.32794599   23523.9018575 ]
 [  23523.9018575    23523.9018575    30819.05284596]]

In [2]:
print "B=", laminate1.B


B= [[-169.6421414    52.02263211   58.80975464]
 [  52.02263211   65.59687717   58.80975464]
 [  58.80975464   58.80975464   52.02263211]]

In [3]:
print "D=", laminate1.D


D= [[ 1.11184113  0.20612522  0.19603252]
 [ 0.20612522  0.32771107  0.19603252]
 [ 0.19603252  0.19603252  0.25682544]]

In [4]:
print "load1.epsilon_K=", load1.epsilon_K


load1.epsilon_K= [[ 0.00426101]
 [-0.00077426]
 [-0.00286441]
 [ 1.01828684]
 [-0.0964596 ]
 [-0.92182724]]

In [5]:
print "     layerNo", "epsx", " epsy", " gammaxy"
for i in range (0, 2):
    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.0008304 -0.000292 +0.001745
centroid 1 +0.001715 -0.0005331 -0.0005598
top      1 +0.004261 -0.0007743 -0.002864
bottom   2 +0.004261 -0.0007743 -0.002864
centroid 2 +0.006807 -0.001015 -0.005169
top      2 +0.009352 -0.001257 -0.007474

In [6]:
print "     layerNo", "sigmax", "    sigmay", "    sigmaxy"
for i in range (0, 2):
    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 -1.683e+04 -708.1 +1746.0
centroid 1 +3.432e+04 -24.24 -560.4
top      1 +8.546e+04 +659.6 -2867.0
bottom   2 +1.093e+04 +853.6 +1616.0
centroid 2 +1.568e+04 +24.24 +560.4
top      2 +2.043e+04 -805.1 -495.2

In [7]:
print "     layerNo", "eps11", "      eps22", "    gamma12"
for i in range (0, 2):
    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.0008304 -0.000292 +0.001745
centroid 1 +0.001715 -0.0005331 -0.0005598
top      1 +0.004261 -0.0007743 -0.002864
bottom   2 +0.0003112 +0.003176 -0.005035
centroid 2 +0.0003112 +0.00548 -0.007822
top      2 +0.0003112 +0.007785 -0.01061

In [8]:
print "     layerNo", "sigma11", "      sigma22", "    tau12"
for i in range (0, 2):
    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 -1.683e+04 -7.0810e+02 +1746.0
centroid 1 +3.432e+04 -2.4244e+01 -560.4
top      1 +8.546e+04 +6.5962e+02 -2867.0

bottom   2 +7510.0 +4.2779e+03 -5040.0
centroid 2 +8415.0 +7.2938e+03 -7830.0
top      2 +9319.0 +1.0310e+04 -1.062e+04