def testKweonKim(self): """ (1999) Kim I K, Kang H G, Onohara K. Ultimate strength of composite laminates with free-edge delamination[J]. KSME International Journal, 1999, 13(7): 569-574. """ #mats=[94.1e3,5690,5690,0.3,0.01995,0.33,2190,2110,2110] mats = [94.1e3, 5690, 5690, 0.3, 0.3, 0.34834, 2190, 2110, 2110] lamS = Compliance(mats) plyAngles = np.pi / 180 * np.array( [30, 30, -30, -30, 90, 90, -30, -30, 30, 30]) plyThicks = np.ones_like(plyAngles) lam0 = Laminate(lamS, plyAngles, plyThicks) #for crack,stiff in zip(([],[4,],[3,],[1,],[3,5],[1,7]), # (3880,3530,3480,3410,3370,2980)): # print(lam0.DelaminateStiffness(cracks=crack)*1/3+lam0.DelaminateStiffness()*2/3,stiff) self.assertAlmostEqual(lam0.DelaminateStiffness(), 3880) self.assertAlmostEqual(lam0.DelaminateStiffness([ 4, ]), 3530) self.assertAlmostEqual(lam0.DelaminateStiffness([ 3, ]), 3480) self.assertAlmostEqual(lam0.DelaminateStiffness([ 1, ]), 3410) self.assertAlmostEqual(lam0.DelaminateStiffness([3, 5]), 3370) self.assertAlmostEqual(lam0.DelaminateStiffness([1, 7]), 2980)
def testgetitem(self): Pipes = [20.0, 2.1, 2.1, 0.21, 0.21, 0.21, 0.85, 0.85, 0.85] lamS = Compliance(Pipes, abaqus=True) plyAngles = np.pi / 180 * np.array([45, -45, -45, 45]) plyThicks = 0.125 * np.ones_like(plyAngles) lam0 = Laminate(lamS, plyAngles, plyThicks) lam1 = lam0[0:2] for i in range(2): self.assertEqual(lam1.plies[i].angle, plyAngles[i]) self.assertEqual(lam1.plies[i].thickness, plyThicks[i])
def testSSwang(self): """ Wang S S. Edge Delamination in Angle-Ply Composite Laminates[J]. AIAA journal, 1984, 22(2): 256-264. """ Pipes = [20.0, 2.1, 2.1, 0.21, 0.21, 0.21, 0.85, 0.85, 0.85] lamS = Compliance(Pipes, abaqus=True) for theta, Exp in zip([15, 30, 45, 60, 75], [8.1076, 4.0506, 0.5740, 0.0138, 0.0036]): plyAngles = np.pi * theta / 180 * np.array([1, -1, -1, 1]) plyThicks = 1.0 * np.ones_like(plyAngles) lam0 = Laminate(lamS, plyAngles, plyThicks) self.assertAlmostEqual(lam0.ObrienErr(cracks=[0, 2]) / Exp, 2.0, delta=0.05)
def testUniformAxiaExtentionSolution_Pipes1970(self): """ Pipes, R B. and N. J. Pagano. "Interlaminar Stresses in Composite Materials under Uniform Axial Extension," J Composite Materials, 4:538-548 (1970). Fig 3 """ Pipes = [20.0, 2.1, 2.1, 0.21, 0.21, 0.21, 0.85, 0.85, 0.85] lamS = Compliance(Pipes, abaqus=True) plyAngles = np.pi / 180 * np.array([45, -45, -45, 45]) plyThicks = 0.125 * np.ones_like(plyAngles) lam0 = Laminate(lamS, plyAngles, plyThicks) sgm, epl = lam0.UniformAxiaExtentionSolution(ex=1.0) self.assertAlmostEqual(sgm[0][0], 2.96, places=2) self.assertAlmostEqual(sgm[0][5], 1.15, places=2) self.assertAlmostEqual(epl[0][0], 1.0, places=2)
def testOBrien(self): """ O'Brien T K. Characterization of delamination onset and growth in a composite laminate,1982. """ OBrienMat = [138e3, 15e3, 15e3, 0.21, 0.21, 0.21, 5.9e3, 5.9e3, 5.9e3] lamS = Compliance(OBrienMat, abaqus=True) plyAngles = np.pi / 180 * np.array( [30, -30, 30, -30, 90, 90, 90, -30, 30, -30, 30]) plyThicks = 1.51 / 11 * np.ones_like(plyAngles) lam0 = Laminate(lamS, plyAngles, plyThicks) E0 = lam0.DelaminateStiffness(cracks=[]) E1 = lam0.DelaminateStiffness(cracks=[3, 6], formula=0) E1_1 = lam0.DelaminateStiffness(cracks=[3, 6], formula=3) self.assertAlmostEqual(E1 / E0, 0.69, delta=0.004) self.assertAlmostEqual(E1_1 / E0, 0.742, delta=0.003) self.assertAlmostEqual( lam0.ObrienErr(cracks=[3, 6], ex=0.00347, formula=3) * 1000, 137, delta=2)
def testQuasiIsotropic(self): """ test isotropic laminate Stiffness """ for mat in ([ 137.78e3, 8.91e3, 8.91e3, 0.3, 0.3, 0.48, 4.41e3, 4.41e3, 3.01e3 ], [94.1e3, 5690, 5690, 0.3, 0.3, 0.34834, 2190, 2110, 2110]): E11, E22, nu12, G12 = mat[0], mat[1], mat[3], mat[6] q = 1. / (1 - nu12**2 / E11 * E22) Q11, Q12, Q22, Q66 = q * E11, q * E22 * nu12, q * E22, G12 nu = (Q11 + Q22 - 4 * Q66 + 6 * Q12) / (3 * Q11 + 3 * Q22 + 2 * Q12 + 4 * Q66) Ex = (Q11 + Q22 - 2 * Q12 + 4 * Q66) * (1 + nu) * 2 / 8 lamS = Compliance(mat, abaqus=True) for k in range(3, 8): plyAngles = np.array([np.pi / k * i for i in range(k)]) plyAngles = np.concatenate( (plyAngles, np.flip(plyAngles, axis=0))) plyThicks = np.ones_like(plyAngles) lam0 = Laminate(lamS, plyAngles, plyThicks=plyThicks) self.assertAlmostEqual(lam0.DelaminateStiffness(), Ex)
#! -*- Coding: UTF-8 -*- import sys sys.path.append('E:/1730895/Work/') from Abaqus import Laminate, Compliance from Abaqus.Materials import materials import numpy as np T300_7901 = Compliance(materials['T300-7901'][0], abaqus=True) plyAngles = [0, 30, -30, 60, -60, 90, 90, -60, 60, -30, 30, 0] lam = Laminate(T300_7901, [x / 180.0 * np.pi for x in plyAngles], t=0.125) print(lam.DelaminateStiffness(), lam.DelaminateStiffness(cracks=[ 5, ])) CLTstf, Cmps = lam.CLTStiffness(isPlaneStress=False) for cmp in Cmps: print(np.linalg.inv(cmp)[:, 0]) np.set_printoptions(linewidth=np.inf) formula = 0 if sys.argv[1:]: formula = int(sys.argv[1]) Pipes = [20.0, 2.1, 2.1, 0.21, 0.21, 0.21, 0.85, 0.85, 0.85] T300_7901 = [ 136999.70000000, 8570.38221423, 8570.38221423, 0.26355000, 0.26355000, 0.33647467, 4494.49736748, 4494.49736748, 3206.33918429 ]