diff --git a/fuselage_design/fuselage_design_conf.xml b/fuselage_design/fuselage_design_conf.xml index d8763b9288640e853ed3cafab94306371dbb15ee..616a21a9bc1e2d9443c84d28377354805cf52672 100644 --- a/fuselage_design/fuselage_design_conf.xml +++ b/fuselage_design/fuselage_design_conf.xml @@ -352,10 +352,14 @@ <name description="Name of passenger class."> <value>president</value> </name> - <abreast description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> + <abreast_single_aisle description="Seat abreast of current passenger class. int_int (single aisle aircraft)"> <value>1_1</value> <default>1_1</default> - </abreast> + </abreast_single_aisle> + <abreast_wide_body description="Seat abreast of current passenger class. int_int_int (wide body aircraft)"> + <value>1_1_1</value> + <default>1_1_1</default> + </abreast_wide_body> <seats description="Definiton of passenger class seats."> <seat_on_left_side description="description of the seats for the left side of the aircraft."> <name description="Name of selected seat type."> @@ -442,10 +446,14 @@ <name description="Name of passenger class."> <value>first</value> </name> - <abreast description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> + <abreast_single_aisle description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> <value>1_1</value> <default>1_1</default> - </abreast> + </abreast_single_aisle> + <abreast_wide_body description="Seat abreast of current passenger class. int_int_int (wide body aircraft)"> + <value>1_2_1</value> + <default>1_2_1</default> + </abreast_wide_body> <seats description="Definiton of passenger class seats."> <seat_on_left_side description="description of the seats for the left side of the aircraft."> <name description="Name of selected seat type."> @@ -532,10 +540,14 @@ <name description="Name of passenger class."> <value>business</value> </name> - <abreast description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> + <abreast_single_aisle description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> <value>2_2</value> <default>2_2</default> - </abreast> + </abreast_single_aisle> + <abreast_wide_body description="Seat abreast of current passenger class. int_int_int (wide body aircraft)"> + <value>1_2_1</value> + <default>1_2_1</default> + </abreast_wide_body> <seats description="Definiton of passenger class seats."> <seat_on_left_side description="description of the seats for the left side of the aircraft."> <name description="Name of selected seat type."> @@ -622,10 +634,14 @@ <name description="Name of passenger class."> <value>premium economy</value> </name> - <abreast description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> + <abreast_single_aisle description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> <value>3_3</value> <default>3_3</default> - </abreast> + </abreast_single_aisle> + <abreast_wide_body description="Seat abreast of current passenger class. int_int_int (wide body aircraft)"> + <value>2_3_2</value> + <default>2_3_2</default> + </abreast_wide_body> <seats description="Definiton of passenger class seats."> <seat_on_left_side description="description of the seats for the left side of the aircraft."> <name description="Name of selected seat type."> @@ -712,10 +728,14 @@ <name description="Name of passenger class."> <value>economy</value> </name> - <abreast description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> + <abreast_single_aisle description="Seat abreast of current passenger class. int_int (single aisle aircraft) / int_int_int (wide body aircraft)"> <value>3_3</value> <default>3_3</default> - </abreast> + </abreast_single_aisle> + <abreast_wide_body description="Seat abreast of current passenger class. int_int_int (wide body aircraft)"> + <value>2_4_2</value> + <default>2_4_2</default> + </abreast_wide_body> <seats description="Definiton of passenger class seats."> <seat_on_left_side description="description of the seats for the left side of the aircraft."> <name description="Name of selected seat type."> diff --git a/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/general/call_functions/prepareexternaldata.py b/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/general/call_functions/prepareexternaldata.py index 89fceabb473d4c32aa2777f91ce5833baebe9253..4883b0c5bb2bd05e1c0b29d3aa1b9ad3e53895a4 100644 --- a/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/general/call_functions/prepareexternaldata.py +++ b/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/general/call_functions/prepareexternaldata.py @@ -120,12 +120,24 @@ def prepare_external_data(paths_and_names, routing_dict, dict_ac_exchange, dict_ relevant_classes['passenger_classes'][class_names[index]] = {} relevant_classes['passenger_classes']['class_names'].append(class_names[index]) # read seat abreast - relevant_classes['passenger_classes'][class_names[index]]['seat_abreast'] = \ - dict_mod_config['passenger_class_abreast']['passenger_class_abreast_ID' + str(index)] - if relevant_classes['passenger_classes'][class_names[index]]['seat_abreast'] is None: - runtime_output.critical('Error: At least one selected class has no entered number of seat abreast.\n' + if dict_ac_exchange['fuselage_type'] == 'single_aisle': + relevant_classes['passenger_classes'][class_names[index]]['seat_abreast'] = \ + dict_mod_config['passenger_class_abreast_single_aisle']['passenger_class_abreast_single_aisle_ID' + str(index)] + if relevant_classes['passenger_classes'][class_names[index]]['seat_abreast'] is None: + runtime_output.critical('Error: At least one selected class has no entered number of seat abreast.\n' ' Program aborted!') - sys.exit('Missing number of seat abreast for ' + class_names[index] + ' class.') + sys.exit('Missing number of seat abreast for ' + class_names[index] + ' class.') + elif dict_ac_exchange['fuselage_type'] == 'wide_body': + relevant_classes['passenger_classes'][class_names[index]]['seat_abreast'] = \ + dict_mod_config['passenger_class_abreast_wide_body']['passenger_class_abreast_wide_body_ID' + str(index)] + if relevant_classes['passenger_classes'][class_names[index]]['seat_abreast'] is None: + runtime_output.critical('Error: At least one selected class for has no entered number of seat abreast.\n' + ' Program aborted!') + sys.exit('Missing number of seat abreast for ' + class_names[index] + ' class.') + else: + runtime_output.critical('Error: No valid fuselage type selected in the top level aircraft requirement selected.\n' + ' Program aborted!') + sys.exit('Invalid fuselage type selected!.') # read seat name relevant_classes['passenger_classes'][class_names[index]]['seat_name'] = {} diff --git a/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/usermethoddatapreparation.py b/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/usermethoddatapreparation.py index 8be0cf261a4adc60dc5659f0767872ad33a60da7..4e3b8b8ce7ced8e72a402d92346081788743d6f8 100644 --- a/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/usermethoddatapreparation.py +++ b/fuselage_design/src/tube_and_wing/empirical/fuselage_design_tu_berlin/usermethoddatapreparation.py @@ -228,8 +228,10 @@ def user_method_data_input_preparation(routing_dict): [tmp_specific + '/passenger_accommodation/in_flight_entertainment/use_in_flight_entertainment', bool], 'passenger_class_name': [tmp_specific + '/passenger_accommodation/passenger_classes/class[@ID="0"]/name', str], - 'passenger_class_abreast': - [tmp_specific + '/passenger_accommodation/passenger_classes/class[@ID="0"]/abreast', str], + 'passenger_class_abreast_single_aisle': + [tmp_specific + '/passenger_accommodation/passenger_classes/class[@ID="0"]/abreast_single_aisle', str], + 'passenger_class_abreast_wide_body': + [tmp_specific + '/passenger_accommodation/passenger_classes/class[@ID="0"]/abreast_wide_body', str], 'passenger_seat_on_left_side_name': [tmp_specific + '/passenger_accommodation/passenger_classes/class[@ID="0"]/seats/seat_on_left_side/name', str], # noPep8 e501 'passenger_seat_on_left_side_pitch':