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): return -0.0000727279*z + 3.6364e-6*z**2 - 6.06066e-8*z**3 def gam(z):
# Write the beam displacements and rotations to a file freqs = model.freqs model.plotDeformedModel(mode=1,figName='Mode 1',analysis_name='Normal_Modes',\ numXSects=10,warpScale=1,displScale=2) model.plotDeformedModel(mode=2,figName='Modes 2',analysis_name='Normal_Modes',\ numXSects=10,warpScale=1,displScale=2) model.plotDeformedModel(mode=3,figName='Modes 3',analysis_name='Normal_Modes',\ numXSects=10,warpScale=1,displScale=2) model.plotDeformedModel(mode=4,figName='Modes 4',analysis_name='Normal_Modes',\ numXSects=10,warpScale=1,displScale=2) model.plotDeformedModel(mode=5,figName='Modes 5',analysis_name='Normal_Modes',\ numXSects=10,warpScale=1,displScale=2) model.plotDeformedModel(mode=6,figName='Modes 6',analysis_name='Normal_Modes',\ numXSects=10,warpScale=1,displScale=2) ''' ''' # CASE 2: # Apply the case load def f(x): vx = -0.1*(-1.0e3*x[2]**2+6e7*x[2]+1.0e6) vy = (-1.0e3*x[2]**2+6e7*x[2]+1.0e6) pz = 0 tz = .2*c*(-1.0e3*x[2]**2+6e7*x[2]+1.0e6) return np.array([vx,vy,pz,tz])/1.0e5 wing1.applyLoads(f=f,allElems=True) # Run the analysis wing1.staticAnalysis(resetPointLoads=True) wing1.plotDeformedWing(figName='V8 Case 2',numXSects=10,contLim=[0.,5.0e8],\ warpScale=10,displScale=10,contour='MaxPrin') # Write the beam displacements and rotations to a file sbeam1.writeDisplacements(fileName = 'V8_Case_2.csv')
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 def f(x): vx = -0.1 * (-1.0e3 * x[2]**2 + 6e7 * x[2] + 1.0e6) vy = (-1.0e3 * x[2]**2 + 6e7 * x[2] + 1.0e6) pz = 0 tz = .2 * c * (-1.0e3 * x[2]**2 + 6e7 * x[2] + 1.0e6)
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
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 def f(x): vx = -0.1*(-1.0e3*x[2]**2+6e7*x[2]+1.0e6) vy = (-1.0e3*x[2]**2+6e7*x[2]+1.0e6) pz = 0 tz = .2*c*(-1.0e3*x[2]**2+6e7*x[2]+1.0e6) return np.array([vx,vy,pz,tz])/1.0e4