def test_Wing_param_update(self): OC = self.__init_OC() wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) wing_param.build_wing() wing_param.set_value('span', 34.1) wing_param.set_value('sweep', 32.) wing_param.set_value('break_percent', 33.) wing_param.set_value('root_chord', 6.1) wing_param.set_value('break_chord', 4.6) wing_param.set_value('tip_chord', 1.5) wing_param.set_value('root_height', 1.28) wing_param.set_value('break_height', 0.97) wing_param.set_value('tip_height', 0.33) wing_param.convert_to_design_variable('span', (10., 50.)) wing_param.convert_to_design_variable('sweep', (0., 40.)) wing_param.convert_to_design_variable('break_percent', (20., 40.)) wing_param.convert_to_design_variable('root_chord', (5., 7.)) wing_param.convert_to_design_variable('break_chord', (3., 5.)) wing_param.convert_to_design_variable('tip_chord', (1., 2.)) wing_param.convert_to_design_variable('root_height', (1., 1.5)) wing_param.convert_to_design_variable('break_height', (0.8, 1.2)) wing_param.convert_to_design_variable('tip_height', (0.2, 0.5)) wing_param.build_linear_airfoil(OC, AoA0=-2., Cm0=-0.1, set_as_ref=True) wing_param.build_airfoils_from_ref() try: wing_param.update() ok = True except: ok = False assert (ok)
def test_Wing_param_convert(self): wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) wing_param.build_wing() wing_param.set_value('span', 34.1) wing_param.set_value('sweep', 32.) wing_param.set_value('break_percent', 33.) wing_param.set_value('root_chord', 6.1) wing_param.set_value('break_chord', 4.6) wing_param.set_value('tip_chord', 1.5) wing_param.set_value('root_height', 1.28) wing_param.set_value('break_height', 0.97) wing_param.set_value('tip_height', 0.33) try: wing_param.convert_to_design_variable('span', (10., 50.)) wing_param.convert_to_design_variable('sweep', (0., 40.)) wing_param.convert_to_design_variable('break_percent', (20., 40.)) wing_param.convert_to_design_variable('root_chord', (5., 7.)) wing_param.convert_to_design_variable('break_chord', (3., 5.)) wing_param.convert_to_design_variable('tip_chord', (1., 2.)) wing_param.convert_to_design_variable('root_height', (1., 1.5)) wing_param.convert_to_design_variable('break_height', (0.8, 1.2)) wing_param.convert_to_design_variable('tip_height', (0.2, 0.5)) ok = True except: ok = False assert (ok)
def __init_wing_param(self): OC=OperatingCondition('cond1') OC.set_Mach(0.8) OC.set_AoA(3.5) OC.set_altitude(10000.) OC.set_T0_deg(15.) OC.set_P0(101325.) OC.set_humidity(0.) OC.compute_atmosphere() wing_param=Wing_param('test_param',geom_type='Broken',n_sect=20) wing_param.build_wing() wing_param.set_value('span',34.1) wing_param.set_value('sweep',34.) wing_param.set_value('break_percent',33.) wing_param.set_value('root_chord',6.1) wing_param.set_value('break_chord',4.6) wing_param.set_value('tip_chord',1.5) wing_param.set_value('root_height',1.28) wing_param.set_value('break_height',0.97) wing_param.set_value('tip_height',0.33) wing_param.convert_to_design_variable('span',(10.,50.)) wing_param.convert_to_design_variable('sweep',(0.,40.)) wing_param.convert_to_design_variable('break_percent',(20.,40.)) wing_param.convert_to_design_variable('root_chord',(5.,7.)) wing_param.convert_to_design_variable('break_chord',(3.,5.)) wing_param.convert_to_design_variable('tip_chord',(1.,2.)) wing_param.convert_to_design_variable('root_height',(1.,1.5)) wing_param.convert_to_design_variable('break_height',(0.8,1.2)) wing_param.convert_to_design_variable('tip_height',(0.2,0.5)) wing_param.build_linear_airfoil(OC, AoA0=-2., Cm0=-0.1, set_as_ref=True) wing_param.build_airfoils_from_ref() wing_param.update() return OC,wing_param
def test_Wing_param_build_wing(self): wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) try: wing_param.build_wing() ok = True except: ok = False assert (ok)
def __config_param(self): input_keys=self.__config_dict.keys() geom_type_key=self.__tag+'.param.geom_type' if geom_type_key in input_keys: geom_type = self.__config_dict[geom_type_key] else: geom_type= 'Broken' n_sect_key=self.__tag+'.param.n_sect' if n_sect_key in input_keys: n_sect = self.__config_dict[n_sect_key] else: n_sect = 20 self.__wing_param = Wing_param(self.__tag+'.param',geom_type=geom_type,n_sect=n_sect) self.__wing_param.set_AoA_id(self.__AoA_id) self.__wing_param.config_from_dict(self.__OC, self.__config_dict)
def __init_wing_param(self): OC = OperatingCondition('cond1') OC.set_Mach(0.8) OC.set_AoA(3.5) OC.set_altitude(10000.) OC.set_T0_deg(15.) OC.set_P0(101325.) OC.set_humidity(0.) OC.compute_atmosphere() wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) wing_param.build_wing() wing_param.set_value('span', 34.1) wing_param.set_value('sweep', 34.) wing_param.set_value('break_percent', 33.) wing_param.set_value('root_chord', 6.1) wing_param.set_value('break_chord', 4.6) wing_param.set_value('tip_chord', 1.5) wing_param.set_value('root_height', 1.28) wing_param.set_value('break_height', 0.97) wing_param.set_value('tip_height', 0.33) wing_param.convert_to_design_variable('span', (10., 50.)) wing_param.convert_to_design_variable('sweep', (0., 40.)) wing_param.convert_to_design_variable('break_percent', (20., 40.)) wing_param.convert_to_design_variable('root_chord', (5., 7.)) wing_param.convert_to_design_variable('break_chord', (3., 5.)) wing_param.convert_to_design_variable('tip_chord', (1., 2.)) wing_param.convert_to_design_variable('root_height', (1., 1.5)) wing_param.convert_to_design_variable('break_height', (0.8, 1.2)) wing_param.convert_to_design_variable('tip_height', (0.2, 0.5)) wing_param.build_meta_airfoil(OC, '../examples/MetaModelFixed.xml', relative_thickness=.12, camber=0., Sref=1., Lref=1., sweep=.0, set_as_ref=True) wing_param.build_airfoils_from_ref() wing_param.update() return OC, wing_param
def test_Wing_param_set_value(self): """ test set value for Wing_param """ wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) wing_param.build_wing() try: wing_param.set_value('span', 34.1) wing_param.set_value('sweep', 32.) wing_param.set_value('break_percent', 33.) wing_param.set_value('root_chord', 6.1) wing_param.set_value('break_chord', 4.6) wing_param.set_value('tip_chord', 1.5) wing_param.set_value('root_height', 1.28) wing_param.set_value('break_height', 0.97) wing_param.set_value('tip_height', 0.33) ok = True except: ok = False assert (ok)
# from DLLM.DLLMGeom.wing_param import Wing_param from MDOTools.OC.operating_condition import OperatingCondition import numpy import string OC=OperatingCondition('cond1') OC.set_altitude(3000.) OC.set_T0_deg(15.) OC.set_P0(101325.) OC.set_humidity(0.) nsect=50 wing_param=Wing_param('test_param',geom_type='Elliptic',n_sect=nsect) wing_param.set_distrib_type('cos_law') wing_param.build_wing() wing_param.set_value('span',40.) wing_param.set_value('root_chord',4.) wing_param.set_value('root_height',0.0) wing_param.set_value('tip_height',0.0) wing_param.build_linear_airfoil(OC, AoA0=0., Cm0=-0.1, set_as_ref=True) wing_param.build_airfoils_from_ref() wing_param.update() airfoils=wing_param.get_linked_airfoils() Cla=airfoils[24].ClAlpha(0.0,0.3) print "Cla=",Cla
from MDOTools.ValidGrad.FDValidGrad import FDValidGrad from DLLM.DLLMGeom.wing_param import Wing_param from DLLM.DLLMKernel.DLLMSolver import DLLMSolver from MDOTools.OC.operating_condition import OperatingCondition import numpy OC = OperatingCondition('cond1') OC.set_Mach(0.8) OC.set_AoA(3.5) OC.set_altitude(10000.) OC.set_T0_deg(15.) OC.set_P0(101325.) OC.set_humidity(0.) OC.compute_atmosphere() wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) wing_param.build_wing() wing_param.set_value('span', 34.1) wing_param.set_value('sweep', 34.) wing_param.set_value('break_percent', 33.) wing_param.set_value('root_chord', 6.1) wing_param.set_value('break_chord', 4.6) wing_param.set_value('tip_chord', 1.5) wing_param.set_value('root_height', 1.28) wing_param.set_value('break_height', 0.97) wing_param.set_value('tip_height', 0.33) wing_param.convert_to_design_variable('span', (0., 50.)) wing_param.convert_to_design_variable('sweep', (0., 40.)) wing_param.convert_to_design_variable('break_percent', (20., 40.)) wing_param.convert_to_design_variable('root_chord', (5., 7.)) wing_param.convert_to_design_variable('break_chord', (3., 5.))
def test_Wing_param_instantiation(self): """ test class instantiation """ wing_param = Wing_param('test_param', geom_type='Broken', n_sect=20) assert (wing_param is not None)
OC = OperatingCondition('cond1') #OC.set_Mach(0.8) #OC.set_Mach(0.6) #OC.set_AoA(3.5) AoA_list = [float(xx) for xx in range(0, 10)] AoA_list = [9.] #Mach_list = [float(xx)/10. for xx in range(3, 9)] Mach_list = [0.2] #,0.6,0.8] OC.set_altitude(10000.) OC.set_T0_deg(15.) OC.set_P0(101325.) OC.set_humidity(0.) wing_param = Wing_param('test_param', geom_type='Rectangular', n_sect=50) wing_param.build_wing() wing_param.set_value('span', 40.) #wing_param.set_value('sweep',34.) wing_param.set_value('sweep', 0.) wing_param.set_value('root_chord', 1.0) wing_param.set_value('root_height', 0.1) wing_param.set_value('tip_height', 0.1) wing_param.build_linear_airfoil(OC, AoA0=0., Cm0=-0.1, Ka=0.75, set_as_ref=True) #wing_param.build_meta_airfoil(OC, '../ONERA_D.xml', relative_thickness=.09, camber=0, Sref=1., Lref=1., sweep=.0, set_as_ref=True) wing_param.build_airfoils_from_ref()