vy = 1e3 pz = -1e3 tz = 1e3 return np.array([vx,vy,pz,tz]) for noe in noe_dens: # Create Wing tmpWing = Wing(b_s,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,\ name='box',noe_per_unit_length=noe) wings+=[tmpWing] # Save Super Beam tmpSBeam = tmpWing.wingSects[0].SuperBeams[0] sbeams+=[tmpSBeam] # Fix End of Wing tmpWing.addConstraint(0,'fix') # Load Wing tmpWing.applyLoads(f=f,eid=range(0,int(L*noe))) # Run Analysis tmpWing.staticAnalysis(resetPointLoads=True) # Recover displacements and rotations: displArr+=[tmpSBeam.writeDisplacements(Return=True)] # Establish analytical answers: def u(z): return 5.74786e-6*z + 0.0000144388*z**2 - 4.86082e-7*z**3 + 6.07603e-9*z**4 def v(z): return 0.0000136249*z + 0.0000360233*z**2 - 1.21213e-6*z**3 + 1.51516e-8*z**4 def w(z): return -3.20696e-8*(40*z - z**2) def psi(z):
vy = 1e3 pz = -1e3 tz = 1e3 return np.array([vx, vy, pz, tz]) for noe in noe_dens: # Create Wing tmpWing = Wing(b_s,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,\ name='box',noe_per_unit_length=noe) wings += [tmpWing] # Save Super Beam tmpSBeam = tmpWing.wingSects[0].SuperBeams[0] sbeams += [tmpSBeam] # Fix End of Wing tmpWing.addConstraint(0, 'fix') # Load Wing tmpWing.applyLoads(f=f, eid=range(0, int(L * noe))) # Run Analysis tmpWing.staticAnalysis(resetPointLoads=True) # Recover displacements and rotations: displArr += [tmpSBeam.writeDisplacements(Return=True)] # Establish analytical answers: def u(z): return 5.74786e-6 * z + 0.0000144388 * z**2 - 4.86082e-7 * z**3 + 6.07603e-9 * z**4 def v(z): return 0.0000136249 * z + 0.0000360233 * z**2 - 1.21213e-6 * z**3 + 1.51516e-8 * z**4
wing1 = Wing(b_s, croot, ctip, x1, x2, Y_rib, n_ply, m_i, matLib, name='box', noe_per_unit_length=5) sbeam1 = wing1.wingSects[0].SuperBeams[0] #wing1.plotRigidWing() # Apply the constraint for the model wing1.addConstraint(0, 'fix') # CASE 4: # Apply the case load tipLoad = np.array([-10000., 100000., -300000., 35000., 60000., 10000.]) F = {100: tipLoad} wing1.applyLoads(F=F) # Run the analysis wing1.staticAnalysis() #wing1.plotDeformedWing(figName='V8 Case 4',numXSects=10,contLim=[0.,5.0e8],\ # warpScale=100,displScale=10,contour='MaxPrin') # Write the beam displacements and rotations to a file sbeam1.writeDisplacements(fileName='V8_Case_4.csv') # CASE 5:
b_s = np.linalg.norm((Y_rib[0],Y_rib[-1])) matLib = MaterialLib() matLib.addMat(1,'AL','iso',[71.7e9,.33,2810],.005) matLib.addMat(2,'Weak_mat','iso',[100,.33,10],.005) n_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] m_i = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] wing1 = Wing(b_s,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,name='box',noe_per_unit_length=5) sbeam1 = wing1.wingSects[0].SuperBeams[0] #wing1.plotRigidWing() # Apply the constraint for the model wing1.addConstraint(0,'fix') # CASE 4: # Apply the case load tipLoad = np.array([-10000.,100000.,-300000.,35000.,60000.,10000.]) F = {100:tipLoad} wing1.applyLoads(F=F) # Run the analysis wing1.staticAnalysis() #wing1.plotDeformedWing(figName='V8 Case 4',numXSects=10,contLim=[0.,5.0e8],\ # warpScale=100,displScale=10,contour='MaxPrin') # Write the beam displacements and rotations to a file sbeam1.writeDisplacements(fileName = 'V8_Case_4.csv') # CASE 5: # Apply the case load