# Example 8 from "Basic Mechanics of Laminated Composite Plates" # A.T. Nettles # NASA Reference Publication 1351 # in the original article some values for eps1, eps2, gamma12 are wrong


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(0,0,0,2.5,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.01018287]
 [-0.0009646 ]
 [-0.00921827]
 [ 5.11321711]
 [-0.92911675]
 [-3.4372968 ]]

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.01538 +0.003681 +0.007968
centroid 1 -0.0026 +0.001358 -0.000625
top      1 +0.01018 -0.0009646 -0.009218
bottom   2 +0.01018 -0.0009646 -0.009218
centroid 2 +0.02297 -0.003287 -0.01781
top      2 +0.03575 -0.00561 -0.0264

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 -3.082e+05 -1222.0 +7976.0
centroid 1 -5.18e+04 +756.6 -625.7
top      1 +2.046e+05 +2735.0 -9227.0
bottom   2 +1.9e+04 -3317.0 -4222.0
centroid 2 +5.18e+04 -756.6 +625.7
top      2 +8.461e+04 +1804.0 +5474.0

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.01538 +0.003681 +0.007968
centroid 1 -0.0026 +0.001358 -0.000625
top      1 +0.01018 -0.0009646 -0.009218
bottom   2 +2.006e-18 +0.009218 -0.01115
centroid 2 +0.0009335 +0.01875 -0.02625
top      2 +0.001867 +0.02827 -0.04136

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 -3.082e+05 -1.2223e+03 +7976.0
centroid 1 -5.18e+04 +7.5659e+02 -625.7
top      1 +2.046e+05 +2.7354e+03 -9227.0

bottom   2 +3619.0 +1.2064e+04 -1.116e+04
centroid 2 +2.615e+04 +2.4897e+04 -2.628e+04
top      2 +4.868e+04 +3.7731e+04 -4.14e+04