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): return -(-0.0000291649*z + 1.45825e-6*z**2 - 2.43041e-8*z**3) def phi(z):
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)
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
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 wing1.applyLoads(f=f,allElems=True) # Run the analysis