def create_wing(input_file,wing_name): # CREATION D'UNE AILE A PARTIR D'UN FICHIER CONTENANT LES DONNEES M,P,T,CHORD ET SPAN POUR LA SECTION ROOT ET LA SECTION TIP fichier=open(input_file,'r') lines=fichier.readlines() fichier.close() corde=[] m=[] y=[] p=[] t=[] wing=[] # wing will be a list of 2d wings n_sections=-1 n_naca_points=-1 lines.pop(0) for temp in lines: temp=temp.split() val=float(temp[1]) temp=temp[0].split(".") temp=temp[1] if temp=='Y': y.append(val) elif temp=='M': m.append(val) elif temp=='P': p.append(val) elif temp=='T': t.append(val) elif temp=='CORDE': corde.append(val) elif temp=='N_SECTIONS': n_sections=int(val) elif temp=='N_NACA_PTS': n_naca_points=int(val) else: raise TypeError("Erreur : caractere non reconnu",temp) if not(len(m)==len(p)==len(y)==len(t)==len(corde)): raise TypeError("Erreur : les listes ont une taille differente") if n_sections < 5: raise ValueError("Erreur : nombre de sections insuffisant") if n_naca_points < 10: raise ValueError("Erreur : nombre de points par profil insuffisant") fichier.close() root=[m[0],p[0],t[0],corde[0]] tip=[m[1],p[1],t[1],corde[1]] mesh_utils.create_mesh_linear_interp(wing_name,root,tip,2.*abs(y[1]),n_sections,n_naca_points)
# list of alpha and beta to compute alpha_list = numpy.linspace(-10.,10.,21) beta_list = numpy.zeros(21) run_case('optimized_wing.vtp', wake_length=10., alpha=alpha_list, beta=beta_list, v=airspeed, rho=rho, P=Patm, Mach=0., origin=[0.,0.,0.], wingspan=10., ref_chord=1., Sref=10., method=0, farfield_dist=50., velorder=1) file = open(sys.argv[1],'r') tmp = file.readlines() tmp = tmp[-1] tmp = tmp.split() root = [float(tmp[2]),float(tmp[4]),float(tmp[6]),1.] tip = [float(tmp[3]),float(tmp[5]),float(tmp[7]),float(tmp[9])] mesh_utils.create_mesh_linear_interp('optimized_wing',root,tip,float(tmp[8]),31,50) run_apame() file.close()