def summarize(interface): # Unpack vehicle = interface.configs.base results = interface.results mission_profile = results.missions.base short_field_results = results.short_field takeoff_field_results = results.takeoff_field_length range_results = results.max_range # Weights max_zero_fuel = vehicle.mass_properties.max_zero_fuel operating_empty = vehicle.mass_properties.operating_empty payload = vehicle.mass_properties.payload # pack summary = SUAVE.Core.Results() # TOFL for MTOW @ SL, ISA summary.takeoff_field_length = float(takeoff_field_results.takeoff_field_length[-1]) # Range from a short field summary.range_short_field_nmi = float(short_field_results.range / Units.nmi) # Maximum range summary.range_max_nmi = float(range_results.range / Units.nmi) # MZFW margin calculation summary.max_zero_fuel_margin = max_zero_fuel - (operating_empty + payload) # fuel margin calculation from SUAVE.Methods.Geometry.Two_Dimensional.Planform import wing_fuel_volume wing_fuel_volume(vehicle.wings['main_wing']) fuel_density = vehicle.propulsors['turbo_fan'].combustor.fuel_data.density fuel_available = 0.97 * vehicle.wings['main_wing'].fuel_volume * fuel_density summary.available_fuel_margin = fuel_available - range_results.fuel # Fuel burn summary.fuel_burn = results.mission_fuel.fuel ## if summary.fuel_burn < 0: # work around for negative fuel results. ## summary.fuel_burn = summary.fuel_burn ** 2. # Print outs printme = Data() printme.fuel_burn = summary.fuel_burn printme.weight_empty = operating_empty printme.tofl_MTOW = summary.takeoff_field_length printme.SF_range = summary.range_short_field_nmi printme.range_max = summary.range_max_nmi printme.max_zero_fuel_margin = summary.max_zero_fuel_margin printme.available_fuel_margin = summary.available_fuel_margin print "RESULTS" print printme inputs = interface.inputs import datetime fid = open('Results.dat','a') fid.write('{:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ; {:18.10f} ;'.format( \ inputs.aspect_ratio,inputs.reference_area,inputs.sweep,inputs.design_thrust,inputs.wing_thickness,inputs.MTOW,inputs.MZFW_ratio, summary.fuel_burn , operating_empty , summary.takeoff_field_length , summary.range_short_field_nmi , summary.range_max_nmi , summary.max_zero_fuel_margin , summary.available_fuel_margin )) fid.write(datetime.datetime.now().strftime("%I:%M:%S")) fid.write('\n') ## print interface.configs.takeoff.maximum_lift_coefficient return summary