diff --git a/UNICADOworkflow/UNICADOworkflow.wf b/UNICADOworkflow/UNICADOworkflow.wf index 4c227c73abc454b1ff210e704041ac3d959f7a63..faf95323d872ba5fcf503dff9b136b5caac1a39f 100644 --- a/UNICADOworkflow/UNICADOworkflow.wf +++ b/UNICADOworkflow/UNICADOworkflow.wf @@ -2967,7 +2967,7 @@ }, "configuration" : { "pythonExecutionPath" : "${pythonExecutionPath}", - "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values '''\r\nglobal_loop_counter = RCE.read_input(\"global_loop_counter\")\r\nidentifier = RCE.read_input(\"identifier\")\r\noptimization_status_flag = RCE.read_input(\"optimization_status_flag\")\r\nouter_loop_counter = RCE.read_input(\"outer_loop_counter\")\r\nparameter_study_status_flag = RCE.read_input(\"parameter_study_status_flag\")\r\nstudy_counter = RCE.read_input(\"study_counter\")\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nimport shutil\r\nimport time\r\nimport xml.etree.ElementTree\r\nfrom datetime import datetime\r\n\r\n# read sys path for python scripts\r\nuser_path_string = os.path.expanduser(\"~\")\r\n\r\n# convert path of curent working directory to a python path -> \\ to /\r\nuser_path_string = user_path_string.replace(os.sep, '/')\r\n\r\n# generate sys paths from file in .rce-directory\r\ninstall_path = open(user_path_string + '/.rce/default/integration/tools/common/absolutPathToUNICADOInstallDirectory.txt','r')\r\ninstall_path_directory = str(install_path.read())\r\ninstall_path_directory = install_path_directory.replace(os.sep, '/')\r\n\r\n# path of workflow python scripts\r\npath_to_python_scripts = install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/src'\r\nsys.path.insert(1, path_to_python_scripts)\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' initialize local paramter '''\r\nparameter_name = str('no parameter')\r\nnew_value_of_input = float(0.0)\r\nglobal_loop_counter_old = global_loop_counter\r\nidentifier_old = identifier\r\n\r\n# check if the calculation of the reference case is not successful finished \r\n# -> if true: -> set global_loop_counter to abort the parameter study and abort the workflow\r\nif global_loop_counter == 2:\r\n\tabort_flag = False\r\n\tpreparation_status = 0\r\n\t# read current workflow name from identifier *.dat file\r\n\tidentifier_file = open(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat', 'r')\r\n\tcurrent_workflow_name = identifier_file.read()\r\n\tidentifier_file.close()\r\n\tpath_to_temp = install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/temp/'\r\n\r\n\tif os.path.isfile(path_to_temp + 'convergenceError.dat') or os.path.isfile(path_to_temp + 'workflowExecutionError.dat'):\r\n\t\tglobal_loop_counter = outer_loop_counter + 1\r\n\t\tabort_flag = True\r\n\t\r\n\t# check if optimization should be perfomed\r\n\tif optimization_status_flag == 1 and not abort_flag:\r\n\t\t# import for python\r\n\t\tfrom pre_condition.prepare_optimization import prepare_optimization \r\n\t\t\r\n\t\t# call function to reset parameter for next optimization loop\r\n\t\t# inputs: install_path_directory, current_workflow_name, global_loop_counter\r\n\t\t# returns: preparation_status\r\n\t\tpreparation_status = prepare_optimization(install_path_directory, current_workflow_name, global_loop_counter)\r\n\t\t\r\n\t\t# copy src code of optimization framework to current working directory\r\n\t\twhile_count = 0\r\n\t\twhile True:\r\n\t\t\t#if os.path.isdir(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/src/optimization'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copytree(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/src/optimization',\r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/optimization')\r\n\t\t\t\tprint('The optimization directory was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The optimization directory could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the optimization directory to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\t\r\n\t\t\t#else:\r\n\t\t\t\t#perform_workflow_execution = 0\r\n\t\t\t\t#abort_flag = True\r\n\t\t\t\t#break\r\n\t\t\t\r\n\t\tif not abort_flag and preparation_status == 1:\r\n\t\t\t# generate semaphore flags for workflow and optimizer to wait for execution\r\n\t\t\tif not os.path.isfile(path_to_temp + 'semaphoreFlagOptimization.dat'):\r\n\t\t\t\tsemaphore_optimization = open(path_to_temp + 'semaphoreFlagOptimization.dat', 'w')\r\n\t\t\t\tsemaphore_optimization.close()\r\n\t\t\t\t\r\n\t\t\tif not os.path.isfile(path_to_temp + 'semaphoreFlagWorkflowExecution.dat'):\r\n\t\t\t\tsemaphore_workflow = open(path_to_temp + 'semaphoreFlagWorkflowExecution.dat', 'w')\r\n\t\t\t\tsemaphore_workflow.close()\r\n\t\t\t\t\r\n\t\t\tperform_workflow_execution = 1\r\n\t\t\touter_loop_counter = outer_loop_counter + 1\r\n\t\t\tRCE.write_output(\"identifier_for_clean_up\", identifier)\r\n\t\t\tRCE.write_output(\"start_optimization\", current_workflow_name)\r\n\t\r\n\telif optimization_status_flag == 1 and (abort_flag or preparation_status == 0):\r\n\t\tperform_workflow_execution = 0\r\n\r\n#----------------------------------------------------------------------------------------------------------------\r\n\r\n# perform first design prozess to generate reference aircraft\r\nif global_loop_counter == 1:\r\n\t# import for python\r\n\tfrom pre_condition.generate_identifier import generate_identifier\r\n\r\n\t''' generate workflow name of current execution '''\r\n\tcurrent_workflow_name = 'UNICADOworkflow_' + str(datetime.now().strftime('%Y-%m-%d_%H-%M-%S_%f')[:-4])\r\n\t\r\n\t# call function to genertate the identifier dat-file of current workflow execution\r\n\t# inputs: install_path_directory, current_workflow_name\r\n\t# returns: identifier\r\n\tidentifier = generate_identifier(install_path_directory, current_workflow_name)\r\n\t\r\n\t''' create a new temporary status folder '''\r\n\tif not os.path.isdir(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name):\r\n\t\tos.makedirs(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/temp')\r\n\t\r\n\t''' copy current workflow configuration file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml'):\r\n\t\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/unicado_workflow_conf.xml'):\r\n\t\t\t\tperform_workflow_execution = 0\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\telse:\r\n\t\t\t\ttry:\r\n\t\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/unicado_workflow_conf.xml', \r\n\t\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml')\r\n\t\t\t\t\tprint('The unicado_workflow_conf.xml file was copied successfully.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\t\t\r\n\t\t\t\texcept OSError:\r\n\t\t\t\t\tif while_count == 10:\r\n\t\t\t\t\t\tprint('Warning: The unicado_workflow_conf.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\twhile_count += 1\r\n\t\t\t\t\tprint('Warning: Try to copy the unicado_workflow_conf.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\r\n\t''' read xml-file as element tree '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml'):\r\n\t\t\ttry:\r\n\t\t\t\txml_tree = xml.etree.ElementTree.ElementTree(file=install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml')\r\n\t\t\t\troot_of_workflow_tree = xml_tree.getroot()\r\n\t\t\t\t_program_mode = root_of_workflow_tree.find(\"./control_settings/program_specific_settings/program_mode/value\").text\r\n\t\t\t\t\r\n\t\t\t\t# Translation of modes into human readable text\r\n\t\t\t\tprogram_mode_dict = {\r\n\t\t\t\t\t'mode_0' : 'standard_aircraft_design',\r\n\t\t\t\t\t'mode_1' : 'parameter_study',\r\n\t\t\t\t\t'mode_2' : 'optimization'\r\n\t\t\t\t} \t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif program_mode_dict[_program_mode] == 'standard_aircraft_design':\r\n\t\t\t\t\tidentifier = identifier_old\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The unicado_workflow_conf.xml could not be opend. Initialization is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to read unicado_workflow_conf.xml file, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\r\n\t\r\n\t''' copy range type specific factors file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/rangeTypeSpecificFactors.xml'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/rangeTypeSpecificFactors.xml', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/rangeTypeSpecificFactors.xml')\r\n\t\t\t\tprint('The rangeTypeSpecificFactors.xml file was copied successfully.')\r\n\t\t\t\tbreak\t\r\n\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The rangeTypeSpecificFactors.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the rangeTypeSpecificFactors.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\t\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\t\t\r\n\t''' copy parameter study manager configuration file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameterStudy_conf.xml'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/parameterStudy_conf.xml', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameterStudy_conf.xml')\r\n\t\t\t\tprint('The parameterStudy_conf.xml file was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The parameterStudy_conf.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the parameterStudy_conf.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\t\r\n\t''' copy parameter study value file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameterStudyValues.csv'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/parameterStudyValues.csv', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameterStudyValues.csv')\r\n\t\t\t\tprint('The parameterStudyValues.csv file was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The parameterStudyValues.csv could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the parameterStudyValues.csv to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\r\n\t''' copy optimization configuration file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/optimization_conf.xml'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/optimization_conf.xml', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/optimization_conf.xml')\r\n\t\t\t\tprint('The optimization_conf.xml file was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The optimization_conf.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the optimization_conf.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\r\n\tperform_workflow_execution = 1\r\n\t\r\n\tRCE.write_output(\"identifier_for_clean_up\", identifier_old)\r\n\r\n#----------------------------------------------------------------------------------------------------------------\r\n\r\n# Perform further design iterations if optimization or parameter study has been selected. \r\nelif global_loop_counter <= outer_loop_counter:\r\n\t# read current workflow name from identifier *.dat file\r\n\tidentifier_file = open(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat', 'r')\r\n\tcurrent_workflow_name = identifier_file.read()\r\n\tidentifier_file.close()\r\n\t\r\n\t# path to temp directory of current working directory\r\n\tpath_to_temp = install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/temp/'\r\n\t\r\n\t# check if parameter study should be perfomed\r\n\tif parameter_study_status_flag == 1:\r\n\t\t# import for python\r\n\t\tfrom parameter_study.perform_parameter_study import perform_parameter_study\r\n\t\t\r\n\t\tperform_workflow_execution = 1\r\n\t\tRCE.write_output(\"identifier_for_clean_up\", identifier)\r\n\t\t\r\n\t\t# Call function to Set parameter of current parameter study loop\t\r\n\t\t# inputs: install_path_directory, study_counter, outer_loop_counter, global_loop_counter_old, perform_workflow_execution\r\n\t\t# returns: outer_loop_counter, study_counter, parameter_name, new_value_of_input\r\n\t\touter_loop_counter, study_counter, parameter_name, new_value_of_input = perform_parameter_study(install_path_directory, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstudy_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touter_loop_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tglobal_loop_counter_old, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tperform_workflow_execution, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrent_workflow_name)\r\n\t\t\r\n\t\tif os.path.isfile(path_to_temp + 'workflowExecutionError.dat'):\r\n\t\t\tos.remove(path_to_temp + 'workflowExecutionError.dat')\r\n\t\r\n\tif global_loop_counter > 2:\r\n\t\t# check if the optimization should be performed -> if true: -> generate semaphore flags\r\n\t\tif optimization_status_flag == 1:\r\n\t\t\tpreparation_status = 0\r\n\t\t\t\r\n\t\t\t# import for python\r\n\t\t\tfrom pre_condition.prepare_optimization import prepare_optimization \r\n\t\t\r\n\t\t\t# call function to reset parameter for next optimization loop\r\n\t\t\t# inputs: install_path_directory, current_workflow_name, global_loop_counter\r\n\t\t\t# returns: preparation_status\r\n\t\t\tpreparation_status = prepare_optimization(install_path_directory, current_workflow_name, global_loop_counter)\r\n\t\t\r\n\t\t\t# remove semaphore flag to perform preperation steps of optimization framework\r\n\t\t\tif os.path.isfile(path_to_temp + 'semaphoreFlagOptimizationPreparation.dat'):\r\n\t\t\t\tos.remove(path_to_temp + 'semaphoreFlagOptimizationPreparation.dat')\r\n\t\t\t\r\n\t\t\t# check if the preparation for optimation was successful -> if true: -> set outputs to perform optimization and workflow execution\r\n\t\t\tif preparation_status == 1:\r\n\t\t\t\tperform_workflow_execution = 1\r\n\t\t\t\touter_loop_counter = outer_loop_counter + 1\r\n\t\t\t\tRCE.write_output(\"identifier_for_clean_up\", identifier)\r\n\t\t\t\r\n\t\t\t# else condtion: preparation for optimization failed -> termiate workflow and abort optimiaztion framework\r\n\t\t\telse:\r\n\t\t\t\tperform_workflow_execution = 0\r\n\r\n#----------------------------------------------------------------------------------------------------------------\r\n\t\r\n# terminates the workflow after finishing selected design porzess\r\nelse:\r\n\t# read current workflow name from identifier *.dat file\r\n\tidentifier_file = open(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat', 'r')\r\n\tcurrent_workflow_name = identifier_file.read()\r\n\tidentifier_file.close()\r\n\tif parameter_study_status_flag == 1:\r\n\t\t# import for python\r\n\t\tfrom parameter_study.perform_parameter_study import perform_parameter_study\r\n\t\t\r\n\t\tperform_workflow_execution = 0\r\n\t\t\r\n\t\t# Call function to Set parameter of current parameter study loop\t\r\n\t\t# inputs: install_path_directory, study_counter, outer_loop_counter, global_loop_counter_old, perform_workflow_execution\r\n\t\t# returns: outer_loop_counter, study_counter, parameter_name, new_value_of_input\r\n\t\touter_loop_counter, study_counter, parameter_name, new_value_of_input = perform_parameter_study(install_path_directory, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstudy_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touter_loop_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tglobal_loop_counter_old, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tperform_workflow_execution, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrent_workflow_name)\r\n\t\r\n\t# delete identifier file of current workflow execution\r\n\tos.remove(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat')\r\n\tif len(os.listdir(install_path_directory + 'workingDirectoryRCE/identifier/')) == 0:\r\n\t\ttry:\r\n\t\t\tos.rmdir(install_path_directory + 'workingDirectoryRCE/identifier/')\r\n\t\t\r\n\t\texcept OSError:\r\n\t\t\tprint('Identifier directory could not be deleted! Its currentlly in use by an other process!')\r\n\t\t\r\n\t# delete temporary workflow directory of current workflow execution\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\ttry:\r\n\t\t\tshutil.rmtree(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name)\r\n\t\t\tprint('The temporary working directory was deleted successfully.')\r\n\t\t\tbreak\r\n\t\t\t\r\n\t\texcept OSError:\r\n\t\t\tif while_count == 10:\r\n\t\t\t\tprint('Warning: The temporary working directory could not be deleted. Delete operation is skipped.')\r\n\t\t\t\tbreak\r\n\t\t\twhile_count += 1\r\n\t\t\tprint('Warning: Try to delete the temporary working directory, but no response from the system.')\r\n\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\ttime.sleep(3)\r\n\t\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' outputs for workflow '''\r\nRCE.write_output(\"current_workflow_name\", current_workflow_name)\r\nRCE.write_output(\"global_loop_counter\", global_loop_counter_old)\r\nRCE.write_output(\"identifier\", identifier)\r\nRCE.write_output(\"install_path_directory\", install_path_directory)\r\nRCE.write_output(\"new_value_of_input\", new_value_of_input)\r\nRCE.write_output(\"optimization_status_flag\", optimization_status_flag)\r\nRCE.write_output(\"outer_loop_counter\", outer_loop_counter)\r\nRCE.write_output(\"parameter_name\", parameter_name)\r\nRCE.write_output(\"parameter_study_status_flag\", parameter_study_status_flag)\r\nRCE.write_output(\"path_to_python_scripts\", path_to_python_scripts)\r\nRCE.write_output(\"perform_workflow_execution\", perform_workflow_execution)\r\nRCE.write_output(\"study_counter\", study_counter)\r\n", + "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values '''\r\nglobal_loop_counter = RCE.read_input(\"global_loop_counter\")\r\nidentifier = RCE.read_input(\"identifier\")\r\noptimization_status_flag = RCE.read_input(\"optimization_status_flag\")\r\nouter_loop_counter = RCE.read_input(\"outer_loop_counter\")\r\nparameter_study_status_flag = RCE.read_input(\"parameter_study_status_flag\")\r\nstudy_counter = RCE.read_input(\"study_counter\")\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nimport shutil\r\nimport time\r\nimport xml.etree.ElementTree\r\nfrom datetime import datetime\r\n\r\n# read sys path for python scripts\r\nuser_path_string = os.path.expanduser(\"~\")\r\n\r\n# convert path of curent working directory to a python path -> \\ to /\r\nuser_path_string = user_path_string.replace(os.sep, '/')\r\n\r\n# generate sys paths from file in .rce-directory\r\ninstall_path = open(user_path_string + '/.rce/default/integration/tools/common/absolutPathToUNICADOInstallDirectory.txt','r')\r\ninstall_path_directory = str(install_path.read())\r\ninstall_path_directory = install_path_directory.replace(os.sep, '/')\r\n\r\n# path of workflow python scripts\r\npath_to_python_scripts = install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/src'\r\nsys.path.insert(1, path_to_python_scripts)\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' initialize local paramter '''\r\nparameter_name = str('no parameter')\r\nnew_value_of_input = float(0.0)\r\nglobal_loop_counter_old = global_loop_counter\r\nidentifier_old = identifier\r\n\r\n# check if the calculation of the reference case is not successful finished \r\n# -> if true: -> set global_loop_counter to abort the parameter study and abort the workflow\r\nif global_loop_counter == 2:\r\n\tabort_flag = False\r\n\tpreparation_status = 0\r\n\t# read current workflow name from identifier *.dat file\r\n\tidentifier_file = open(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat', 'r')\r\n\tcurrent_workflow_name = identifier_file.read()\r\n\tidentifier_file.close()\r\n\tpath_to_temp = install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/temp/'\r\n\r\n\tif os.path.isfile(path_to_temp + 'convergenceError.dat') or os.path.isfile(path_to_temp + 'workflowExecutionError.dat'):\r\n\t\tglobal_loop_counter = outer_loop_counter + 1\r\n\t\tabort_flag = True\r\n\t\r\n\t# check if optimization should be perfomed\r\n\tif optimization_status_flag == 1 and not abort_flag:\r\n\t\t# import for python\r\n\t\tfrom pre_condition.prepare_optimization import prepare_optimization \r\n\t\t\r\n\t\t# call function to reset parameter for next optimization loop\r\n\t\t# inputs: install_path_directory, current_workflow_name, global_loop_counter\r\n\t\t# returns: preparation_status\r\n\t\tpreparation_status = prepare_optimization(install_path_directory, current_workflow_name, global_loop_counter)\r\n\t\t\r\n\t\t# copy src code of optimization framework to current working directory\r\n\t\twhile_count = 0\r\n\t\twhile True:\r\n\t\t\t#if os.path.isdir(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/src/optimization'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copytree(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/src/optimization',\r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/optimization')\r\n\t\t\t\tprint('The optimization directory was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The optimization directory could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the optimization directory to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\t\r\n\t\t\t#else:\r\n\t\t\t\t#perform_workflow_execution = 0\r\n\t\t\t\t#abort_flag = True\r\n\t\t\t\t#break\r\n\t\t\t\r\n\t\tif not abort_flag and preparation_status == 1:\r\n\t\t\t# generate semaphore flags for workflow and optimizer to wait for execution\r\n\t\t\tif not os.path.isfile(path_to_temp + 'semaphoreFlagOptimization.dat'):\r\n\t\t\t\tsemaphore_optimization = open(path_to_temp + 'semaphoreFlagOptimization.dat', 'w')\r\n\t\t\t\tsemaphore_optimization.close()\r\n\t\t\t\t\r\n\t\t\tif not os.path.isfile(path_to_temp + 'semaphoreFlagWorkflowExecution.dat'):\r\n\t\t\t\tsemaphore_workflow = open(path_to_temp + 'semaphoreFlagWorkflowExecution.dat', 'w')\r\n\t\t\t\tsemaphore_workflow.close()\r\n\t\t\t\t\r\n\t\t\tperform_workflow_execution = 1\r\n\t\t\touter_loop_counter = outer_loop_counter + 1\r\n\t\t\tRCE.write_output(\"identifier_for_clean_up\", identifier)\r\n\t\t\tRCE.write_output(\"start_optimization\", current_workflow_name)\r\n\t\r\n\telif optimization_status_flag == 1 and (abort_flag or preparation_status == 0):\r\n\t\tperform_workflow_execution = 0\r\n\r\n#----------------------------------------------------------------------------------------------------------------\r\n\r\n# perform first design prozess to generate reference aircraft\r\nif global_loop_counter == 1:\r\n\t# import for python\r\n\tfrom pre_condition.generate_identifier import generate_identifier\r\n\r\n\t''' generate workflow name of current execution '''\r\n\tcurrent_workflow_name = 'UNICADOworkflow_' + str(datetime.now().strftime('%Y-%m-%d_%H-%M-%S_%f')[:-4])\r\n\t\r\n\t# call function to genertate the identifier dat-file of current workflow execution\r\n\t# inputs: install_path_directory, current_workflow_name\r\n\t# returns: identifier\r\n\tidentifier = generate_identifier(install_path_directory, current_workflow_name)\r\n\t\r\n\t''' create a new temporary status folder '''\r\n\tif not os.path.isdir(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name):\r\n\t\tos.makedirs(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/temp')\r\n\t\r\n\t''' copy current workflow configuration file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml'):\r\n\t\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/unicado_workflow_conf.xml'):\r\n\t\t\t\tperform_workflow_execution = 0\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\telse:\r\n\t\t\t\ttry:\r\n\t\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/unicado_workflow_conf.xml', \r\n\t\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml')\r\n\t\t\t\t\tprint('The unicado_workflow_conf.xml file was copied successfully.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\t\t\r\n\t\t\t\texcept OSError:\r\n\t\t\t\t\tif while_count == 10:\r\n\t\t\t\t\t\tprint('Warning: The unicado_workflow_conf.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\twhile_count += 1\r\n\t\t\t\t\tprint('Warning: Try to copy the unicado_workflow_conf.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\r\n\t''' read xml-file as element tree '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml'):\r\n\t\t\ttry:\r\n\t\t\t\txml_tree = xml.etree.ElementTree.ElementTree(file=install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/unicado_workflow_conf.xml')\r\n\t\t\t\troot_of_workflow_tree = xml_tree.getroot()\r\n\t\t\t\t_program_mode = root_of_workflow_tree.find(\"./control_settings/program_specific_settings/program_mode/value\").text\r\n\t\t\t\t\r\n\t\t\t\t# Translation of modes into human readable text\r\n\t\t\t\tprogram_mode_dict = {\r\n\t\t\t\t\t'mode_0' : 'standard_aircraft_design',\r\n\t\t\t\t\t'mode_1' : 'parameter_study',\r\n\t\t\t\t\t'mode_2' : 'optimization'\r\n\t\t\t\t} \t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif program_mode_dict[_program_mode] == 'standard_aircraft_design':\r\n\t\t\t\t\tidentifier = identifier_old\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The unicado_workflow_conf.xml could not be opend. Initialization is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to read unicado_workflow_conf.xml file, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\r\n\t\r\n\t''' copy range type specific factors file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/range_type_specific_factors.xml'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/range_type_specific_factors.xml', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/range_type_specific_factors.xml')\r\n\t\t\t\tprint('The range_type_specific_factors.xml file was copied successfully.')\r\n\t\t\t\tbreak\t\r\n\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The range_type_specific_factors.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the range_type_specific_factors.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\t\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\t\t\r\n\t''' copy parameter study manager configuration file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameter_study_conf.xml'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/parameter_study_conf.xml', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameter_study_conf.xml')\r\n\t\t\t\tprint('The parameter_study_conf.xml file was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The parameter_study_conf.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the parameter_study_conf.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\t\t\r\n\t''' copy parameter study value file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameter_study_values.csv'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/parameter_study_values.csv', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/parameter_study_values.csv')\r\n\t\t\t\tprint('The parameter_study_values.csv file was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The parameter_study_values.csv could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the parameter_study_values.csv to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\r\n\t''' copy optimization configuration file to temporary working directory '''\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\tif not os.path.isfile(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/optimization_conf.xml'):\r\n\t\t\ttry:\r\n\t\t\t\tshutil.copyfile(install_path_directory + 'workingDirectoryRCE/UNICADOworkflow/optimization_conf.xml', \r\n\t\t\t\t\t\t\t\tinstall_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/optimization_conf.xml')\r\n\t\t\t\tprint('The optimization_conf.xml file was copied successfully.')\r\n\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\texcept OSError:\r\n\t\t\t\tif while_count == 10:\r\n\t\t\t\t\tprint('Warning: The optimization_conf.xml could not be copied. Copy operation is skipped.')\r\n\t\t\t\t\tbreak\r\n\t\t\t\twhile_count += 1\r\n\t\t\t\tprint('Warning: Try to copy the optimization_conf.xml to the temporary working directory, but no response from the system.')\r\n\t\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\t\ttime.sleep(3)\r\n\t\telse:\r\n\t\t\tbreak\r\n\t\r\n\tperform_workflow_execution = 1\r\n\t\r\n\tRCE.write_output(\"identifier_for_clean_up\", identifier_old)\r\n\r\n#----------------------------------------------------------------------------------------------------------------\r\n\r\n# Perform further design iterations if optimization or parameter study has been selected. \r\nelif global_loop_counter <= outer_loop_counter:\r\n\t# read current workflow name from identifier *.dat file\r\n\tidentifier_file = open(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat', 'r')\r\n\tcurrent_workflow_name = identifier_file.read()\r\n\tidentifier_file.close()\r\n\t\r\n\t# path to temp directory of current working directory\r\n\tpath_to_temp = install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/temp/'\r\n\t\r\n\t# check if parameter study should be perfomed\r\n\tif parameter_study_status_flag == 1:\r\n\t\t# import for python\r\n\t\tfrom parameter_study.perform_parameter_study import perform_parameter_study\r\n\t\t\r\n\t\tperform_workflow_execution = 1\r\n\t\tRCE.write_output(\"identifier_for_clean_up\", identifier)\r\n\t\t\r\n\t\t# Call function to Set parameter of current parameter study loop\t\r\n\t\t# inputs: install_path_directory, study_counter, outer_loop_counter, global_loop_counter_old, perform_workflow_execution\r\n\t\t# returns: outer_loop_counter, study_counter, parameter_name, new_value_of_input\r\n\t\touter_loop_counter, study_counter, parameter_name, new_value_of_input = perform_parameter_study(install_path_directory, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstudy_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touter_loop_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tglobal_loop_counter_old, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tperform_workflow_execution, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrent_workflow_name)\r\n\t\t\r\n\t\tif os.path.isfile(path_to_temp + 'workflowExecutionError.dat'):\r\n\t\t\tos.remove(path_to_temp + 'workflowExecutionError.dat')\r\n\t\r\n\tif global_loop_counter > 2:\r\n\t\t# check if the optimization should be performed -> if true: -> generate semaphore flags\r\n\t\tif optimization_status_flag == 1:\r\n\t\t\tpreparation_status = 0\r\n\t\t\t\r\n\t\t\t# import for python\r\n\t\t\tfrom pre_condition.prepare_optimization import prepare_optimization \r\n\t\t\r\n\t\t\t# call function to reset parameter for next optimization loop\r\n\t\t\t# inputs: install_path_directory, current_workflow_name, global_loop_counter\r\n\t\t\t# returns: preparation_status\r\n\t\t\tpreparation_status = prepare_optimization(install_path_directory, current_workflow_name, global_loop_counter)\r\n\t\t\r\n\t\t\t# remove semaphore flag to perform preperation steps of optimization framework\r\n\t\t\tif os.path.isfile(path_to_temp + 'semaphoreFlagOptimizationPreparation.dat'):\r\n\t\t\t\tos.remove(path_to_temp + 'semaphoreFlagOptimizationPreparation.dat')\r\n\t\t\t\r\n\t\t\t# check if the preparation for optimation was successful -> if true: -> set outputs to perform optimization and workflow execution\r\n\t\t\tif preparation_status == 1:\r\n\t\t\t\tperform_workflow_execution = 1\r\n\t\t\t\touter_loop_counter = outer_loop_counter + 1\r\n\t\t\t\tRCE.write_output(\"identifier_for_clean_up\", identifier)\r\n\t\t\t\r\n\t\t\t# else condtion: preparation for optimization failed -> termiate workflow and abort optimiaztion framework\r\n\t\t\telse:\r\n\t\t\t\tperform_workflow_execution = 0\r\n\r\n#----------------------------------------------------------------------------------------------------------------\r\n\t\r\n# terminates the workflow after finishing selected design porzess\r\nelse:\r\n\t# read current workflow name from identifier *.dat file\r\n\tidentifier_file = open(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat', 'r')\r\n\tcurrent_workflow_name = identifier_file.read()\r\n\tidentifier_file.close()\r\n\tif parameter_study_status_flag == 1:\r\n\t\t# import for python\r\n\t\tfrom parameter_study.perform_parameter_study import perform_parameter_study\r\n\t\t\r\n\t\tperform_workflow_execution = 0\r\n\t\t\r\n\t\t# Call function to Set parameter of current parameter study loop\t\r\n\t\t# inputs: install_path_directory, study_counter, outer_loop_counter, global_loop_counter_old, perform_workflow_execution\r\n\t\t# returns: outer_loop_counter, study_counter, parameter_name, new_value_of_input\r\n\t\touter_loop_counter, study_counter, parameter_name, new_value_of_input = perform_parameter_study(install_path_directory, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstudy_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touter_loop_counter, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tglobal_loop_counter_old, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tperform_workflow_execution, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrent_workflow_name)\r\n\t\r\n\t# delete identifier file of current workflow execution\r\n\tos.remove(install_path_directory + 'workingDirectoryRCE/identifier/' + str(identifier) + '.dat')\r\n\tif len(os.listdir(install_path_directory + 'workingDirectoryRCE/identifier/')) == 0:\r\n\t\ttry:\r\n\t\t\tos.rmdir(install_path_directory + 'workingDirectoryRCE/identifier/')\r\n\t\t\r\n\t\texcept OSError:\r\n\t\t\tprint('Identifier directory could not be deleted! Its currentlly in use by an other process!')\r\n\t\t\r\n\t# delete temporary workflow directory of current workflow execution\r\n\twhile_count = 0\r\n\twhile True:\r\n\t\ttry:\r\n\t\t\tshutil.rmtree(install_path_directory + 'workingDirectoryRCE/' + current_workflow_name)\r\n\t\t\tprint('The temporary working directory was deleted successfully.')\r\n\t\t\tbreak\r\n\t\t\t\r\n\t\texcept OSError:\r\n\t\t\tif while_count == 10:\r\n\t\t\t\tprint('Warning: The temporary working directory could not be deleted. Delete operation is skipped.')\r\n\t\t\t\tbreak\r\n\t\t\twhile_count += 1\r\n\t\t\tprint('Warning: Try to delete the temporary working directory, but no response from the system.')\r\n\t\t\tprint('Retry ' + str(while_count) + ' of 10!')\r\n\t\t\ttime.sleep(3)\r\n\t\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' outputs for workflow '''\r\nRCE.write_output(\"current_workflow_name\", current_workflow_name)\r\nRCE.write_output(\"global_loop_counter\", global_loop_counter_old)\r\nRCE.write_output(\"identifier\", identifier)\r\nRCE.write_output(\"install_path_directory\", install_path_directory)\r\nRCE.write_output(\"new_value_of_input\", new_value_of_input)\r\nRCE.write_output(\"optimization_status_flag\", optimization_status_flag)\r\nRCE.write_output(\"outer_loop_counter\", outer_loop_counter)\r\nRCE.write_output(\"parameter_name\", parameter_name)\r\nRCE.write_output(\"parameter_study_status_flag\", parameter_study_status_flag)\r\nRCE.write_output(\"path_to_python_scripts\", path_to_python_scripts)\r\nRCE.write_output(\"perform_workflow_execution\", perform_workflow_execution)\r\nRCE.write_output(\"study_counter\", study_counter)\r\n", "scriptLanguage" : "Python", "storeComponentHistoryData" : "true", "usageOfScript" : "NEW" diff --git a/UNICADOworkflow/UNICADOworkflow_BackUp.wf b/UNICADOworkflow/UNICADOworkflow_BackUp.wf index b62dcb5c38737349c5f491f7914564a2f898d0b7..4c227c73abc454b1ff210e704041ac3d959f7a63 100644 --- a/UNICADOworkflow/UNICADOworkflow_BackUp.wf +++ b/UNICADOworkflow/UNICADOworkflow_BackUp.wf @@ -1,36 +1,12 @@ { "identifier" : "8d5b409b-c415-4359-b7e9-f9ec77b35fb3", "workflowVersion" : "5", - "name" : "UNICADOworkflow_2024-11-13_21:45:43_02", + "name" : "UNICADOworkflow_2024-11-19_17:14:46_17", "nodes" : [ { - "identifier" : "12e28a17-3d15-479b-bc03-c3e1b1ec882f", - "name" : "TiGL Viewer", - "location" : "821:15", - "zIndex" : "11", - "active" : "true", - "component" : { - "identifier" : "de.rcenvironment.tiglviewer", - "version" : "3.0", - "name" : "TiGL Viewer" - }, - "configuration" : { - "storeComponentHistoryData" : "true" - }, - "staticInputs" : [ { - "identifier" : "89ba6bf0-5d33-456f-9fd2-66ea69c8e320", - "name" : "TiGL Viewer File", - "datatype" : "FileReference" - } ], - "staticOutputs" : [ { - "identifier" : "1b66102c-0cac-4102-a198-1c4f765ef8a5", - "name" : "TiGL Viewer File", - "datatype" : "FileReference" - } ] - }, { "identifier" : "d88d648d-4eae-4e95-8164-fc1919780b0c", "name" : "aerodynamic_analysis", - "location" : "882:214", - "zIndex" : "46", + "location" : "1021:321", + "zIndex" : "42", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.aerodynamic_analysis", @@ -54,8 +30,8 @@ }, { "identifier" : "cc9ae7fd-2bc8-4abf-92d2-8d5be41c3dd6", "name" : "aerodynamic_analysis_calibration", - "location" : "1103:-25", - "zIndex" : "47", + "location" : "1200:21", + "zIndex" : "43", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.aerodynamic_analysis", @@ -79,8 +55,8 @@ }, { "identifier" : "75e5aa66-4ff6-4290-9686-9bd15ea234a5", "name" : "after_calibration_joiner", - "location" : "1376:159", - "zIndex" : "27", + "location" : "1380:240", + "zIndex" : "25", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -113,8 +89,8 @@ }, { "identifier" : "08c14984-d982-425a-b175-8e84c19bc05d", "name" : "after_calibration_trigger_switch", - "location" : "1357:214", - "zIndex" : "26", + "location" : "1400:320", + "zIndex" : "24", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -170,8 +146,8 @@ }, { "identifier" : "d84e3c8c-9eb9-4d14-b12a-0b874992bbae", "name" : "calibration_converger", - "location" : "1302:74", - "zIndex" : "15", + "location" : "1300:140", + "zIndex" : "13", "active" : "true", "component" : { "identifier" : "de.rcenvironment.converger", @@ -571,8 +547,8 @@ }, { "identifier" : "70ccd494-6aab-4f74-b89f-228fd974b459", "name" : "calibration_output_switch", - "location" : "1413:74", - "zIndex" : "22", + "location" : "1420:140", + "zIndex" : "20", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -628,8 +604,8 @@ }, { "identifier" : "1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce", "name" : "check_ome_calibration", - "location" : "1250:214", - "zIndex" : "14", + "location" : "1281:321", + "zIndex" : "12", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -777,7 +753,7 @@ }, { "identifier" : "d760c5a1-69dc-48ad-8935-26cb63f1fc9d", "name" : "check_tlars_and_gradients", - "location" : "985:640", + "location" : "1320:760", "zIndex" : "10", "active" : "true", "component" : { @@ -869,8 +845,8 @@ }, { "identifier" : "ed9f6da3-6c9d-4cd7-8bcc-422f264ffe88", "name" : "cost_estimation", - "location" : "878:640", - "zIndex" : "59", + "location" : "721:760", + "zIndex" : "54", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.cost_estimation", @@ -892,59 +868,35 @@ "datatype" : "ShortText" } ] }, { - "identifier" : "bcb49909-de0c-44cd-bf45-ff72dbee5763", - "name" : "cpacsInterface", - "location" : "617:15", - "zIndex" : "33", + "identifier" : "3e191aaa-856d-4c6e-b21a-0617a051c39c", + "name" : "create_mission_xml", + "location" : "721:441", + "zIndex" : "31", "active" : "true", "component" : { - "identifier" : "de.rcenvironment.integration.common.cpacsInterface", + "identifier" : "de.rcenvironment.integration.common.create_mission_xml", "version" : "allTime", - "name" : "cpacsInterface" + "name" : "create_mission_xml" }, "configuration" : { "chosenDeleteTempDirBehavior" : "deleteWorkingDirectoriesAfterWorkflowExecution", "storeComponentHistoryData" : "false" }, "staticInputs" : [ { - "identifier" : "ca2ffbe0-8e18-487e-891a-4523e91735f0", - "name" : "current_workflow_name", - "datatype" : "ShortText" - } ], - "staticOutputs" : [ { - "identifier" : "e20820ce-fd46-42ac-8fc6-118f60ffdac6", - "name" : "current_workflow_name", - "datatype" : "ShortText" - } ] - }, { - "identifier" : "7ad9eb11-b9e0-43aa-b8c2-7fd8d1fe5028", - "name" : "cpacsInterface_postOps", - "location" : "1087:640", - "zIndex" : "34", - "active" : "true", - "component" : { - "identifier" : "de.rcenvironment.integration.common.cpacsInterface", - "version" : "allTime", - "name" : "cpacsInterface" - }, - "configuration" : { - "storeComponentHistoryData" : "false" - }, - "staticInputs" : [ { - "identifier" : "7fd113ca-5686-457a-b54e-e878dad3a721", + "identifier" : "63e8b1e3-4d79-4473-9370-6e8de7f0c34f", "name" : "current_workflow_name", "datatype" : "ShortText" } ], "staticOutputs" : [ { - "identifier" : "414c9114-73a6-4891-93c1-dce8e1c71e41", + "identifier" : "eaa67876-34a0-494d-9b89-5ff6f0743393", "name" : "current_workflow_name", "datatype" : "ShortText" } ] }, { - "identifier" : "3e191aaa-856d-4c6e-b21a-0617a051c39c", - "name" : "create_mission_xml", - "location" : "679:330", - "zIndex" : "35", + "identifier" : "5cb11f89-bdef-45bc-9a15-ffbd2357c828", + "name" : "create_mission_xml_calibration", + "location" : "1540:140", + "zIndex" : "33", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.create_mission_xml", @@ -956,20 +908,20 @@ "storeComponentHistoryData" : "false" }, "staticInputs" : [ { - "identifier" : "63e8b1e3-4d79-4473-9370-6e8de7f0c34f", + "identifier" : "5ab7f7a5-72be-4789-bfc6-42e12f3cca65", "name" : "current_workflow_name", "datatype" : "ShortText" } ], "staticOutputs" : [ { - "identifier" : "eaa67876-34a0-494d-9b89-5ff6f0743393", + "identifier" : "3ec3b035-fa94-4fb4-951c-25bfdfa491fe", "name" : "current_workflow_name", "datatype" : "ShortText" } ] }, { - "identifier" : "5cb11f89-bdef-45bc-9a15-ffbd2357c828", - "name" : "create_mission_xml_calibration", - "location" : "1520:74", - "zIndex" : "37", + "identifier" : "b41e2c91-1245-4b44-8fe0-add9b847f648", + "name" : "create_mission_xml_reqs", + "location" : "921:760", + "zIndex" : "58", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.create_mission_xml", @@ -977,24 +929,23 @@ "name" : "create_mission_xml" }, "configuration" : { - "chosenDeleteTempDirBehavior" : "deleteWorkingDirectoriesAfterWorkflowExecution", - "storeComponentHistoryData" : "false" + "storeComponentHistoryData" : "true" }, "staticInputs" : [ { - "identifier" : "5ab7f7a5-72be-4789-bfc6-42e12f3cca65", + "identifier" : "5afa2be4-e393-4f0e-a845-43e248bb43a3", "name" : "current_workflow_name", "datatype" : "ShortText" } ], "staticOutputs" : [ { - "identifier" : "3ec3b035-fa94-4fb4-951c-25bfdfa491fe", + "identifier" : "c078f515-d20e-4c72-b49e-f212365e2cc6", "name" : "current_workflow_name", "datatype" : "ShortText" } ] }, { "identifier" : "8c4764f6-4261-47e7-a940-d4de716a2ad5", "name" : "create_mission_xml_study", - "location" : "678:513", - "zIndex" : "36", + "location" : "721:621", + "zIndex" : "32", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.create_mission_xml", @@ -1018,7 +969,7 @@ }, { "identifier" : "e5a747dc-60b5-43ae-8885-aac4b409e295", "name" : "design_sizing_loop", - "location" : "416:201", + "location" : "440:300", "zIndex" : "1", "active" : "true", "component" : { @@ -1202,7 +1153,7 @@ } }, { "identifier" : "e0a44e95-1a7b-4c2f-8dd1-44c62a15a571", - "name" : "m_block_fuel_last", + "name" : "m_mission_fuel_last", "epIdentifier" : "toForward", "group" : "valuesToConverge", "datatype" : "Float", @@ -1212,7 +1163,7 @@ } }, { "identifier" : "8be52fd7-55cc-4187-b0bd-37960f867e9f", - "name" : "m_block_fuel_last_start", + "name" : "m_mission_fuel_last_start", "epIdentifier" : "startToForward", "group" : "startValues", "datatype" : "Float", @@ -1525,7 +1476,7 @@ } }, { "identifier" : "e764df4a-192f-40df-9642-a1ab3bd21f36", - "name" : "m_block_fuel_last", + "name" : "m_mission_fuel_last", "epIdentifier" : "toForward", "datatype" : "Float", "metadata" : { @@ -1534,7 +1485,7 @@ } }, { "identifier" : "467ebdc5-c690-4905-bf4e-f8143ae9672d", - "name" : "m_block_fuel_last_converged", + "name" : "m_mission_fuel_last_converged", "epIdentifier" : "finalToForward", "datatype" : "Float", "metadata" : { @@ -1673,8 +1624,8 @@ }, { "identifier" : "38a24104-d075-4955-8eb1-fb1c531890fd", "name" : "design_sizing_trigger_switch", - "location" : "524:330", - "zIndex" : "23", + "location" : "560:440", + "zIndex" : "21", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -1721,8 +1672,8 @@ }, { "identifier" : "810572dc-5527-4c51-9fb6-0e547a723638", "name" : "ecological_assessment", - "location" : "777:640", - "zIndex" : "58", + "location" : "821:760", + "zIndex" : "53", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.ecological_assessment", @@ -1746,8 +1697,8 @@ }, { "identifier" : "f70177cd-3eb2-4f62-b878-b73c434d399c", "name" : "empennage_design", - "location" : "1083:330", - "zIndex" : "40", + "location" : "1021:441", + "zIndex" : "36", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.empennage_design", @@ -1771,8 +1722,8 @@ }, { "identifier" : "cbb962bd-3046-4d85-afd0-a1637f94dc50", "name" : "empennage_design_calibration", - "location" : "1509:-25", - "zIndex" : "41", + "location" : "1500:20", + "zIndex" : "37", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.empennage_design", @@ -1796,8 +1747,8 @@ }, { "identifier" : "9ba303e6-f42e-48ae-9d21-478df67e1704", "name" : "final_operations_of_mission_study_loop", - "location" : "419:640", - "zIndex" : "30", + "location" : "440:760", + "zIndex" : "28", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -1887,7 +1838,7 @@ }, { "identifier" : "818b24df-ecd0-4013-bda7-dbaae3519914", "name" : "final_operations_of_sizing_loop", - "location" : "418:329", + "location" : "440:440", "zIndex" : "8", "active" : "true", "component" : { @@ -1949,8 +1900,8 @@ }, { "identifier" : "c9179a8e-55bb-40e5-bfed-041ea275faf9", "name" : "fuselage_design", - "location" : "781:330", - "zIndex" : "31", + "location" : "821:441", + "zIndex" : "29", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.fuselage_design", @@ -1974,8 +1925,8 @@ }, { "identifier" : "c13230ae-0961-4023-800b-c2e7db181b46", "name" : "initial_sizing", - "location" : "461:13", - "zIndex" : "32", + "location" : "480:20", + "zIndex" : "30", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.initial_sizing", @@ -1999,7 +1950,7 @@ }, { "identifier" : "6e4fa5dc-4edb-4f6d-a88e-b9b6d3e0a991", "name" : "initialize_design_sizing_loop", - "location" : "308:201", + "location" : "320:300", "zIndex" : "0", "active" : "true", "component" : { @@ -2010,7 +1961,7 @@ "configuration" : { "ScriptWhitespaceBox" : "true", "pythonExecutionPath" : "${pythonExecutionPath}", - "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read RCE inputs for script execution '''\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncalibration_settings = RCE.read_input(\"calibration_settings\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\nmodule_list_of_sizing_loop = RCE.read_input(\"module_list_of_sizing_loop\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nfrom datetime import datetime\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' set values to initialize design sizing loop and auto-trim function '''\r\n\r\n# import python script\r\nfrom design_sizing_loop.initialize_design_sizing_loop import initialize_design_sizing_loop\r\n\r\n# function call for initialize design sizing loop and auto-trim function -> set initial values and auto-trim parameter\r\n# inputs: paths_and_names, parameter_for_design_case, control_settings\r\n# returns: design_variables, trim_parameter_list, mtom_loop_vector\r\n\r\ndesign_variables, trim_parameter_list, mtom_loop_vector = initialize_design_sizing_loop(paths_and_names, parameter_for_design_case, control_settings)\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' set values to initialize calibartion and set initial values for calibration loop '''\r\n\r\n# import python script\r\nfrom design_sizing_loop.initialize_calibration import initialize_calibration\r\n\r\n# read OME and MTOM calibration flag from calibration settings to activate or skip calibration\r\nperform_calibration = int(([item for item in calibration_settings if 'free_variable_OME_calibration' in item])[-1][-1] > 0 or ([item for item in calibration_settings if 'free_variable_MTOM_calibration' in item])[-1][-1] > 0)\r\n\r\n# check if perform_calibration flag is set to active -> if true: -> initialize calibration mode\r\nif perform_calibration:\r\n\t# function call for initialize calibartion -> set initial values for calibration loop\r\n\t# inputs: paths_and_names, parameter_for_design_case, control_settings\r\n\t# returns: calibration_settings\r\n\t\r\n\tcalibration_settings = initialize_calibration(paths_and_names, calibration_settings)\r\n\t\r\nelse:\r\n\tcalibration_settings.append(['calibrate_ome_flag', int(0)])\r\n\tcalibration_settings.append(['calibrate_mtom_flag', int(0)])\r\n\tcalibration_settings.append(['number_of_final_runs', int(0)])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' check for error handling '''\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if error in tool execution -> if true: -> print error message to workflow log-file and console\r\nif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\tlog_file_list = []\r\n\tcharacter_length_of_date_and_time = 21\r\n\t\r\n\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Error in pre-sizing tool execution!')\r\n\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': At least one of the enabled pre-sizing tools has send an error. The actual design sizing loop is failed and will be canceled!')\r\n\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': If parameter study or optimization is selected, current loop of iteration will skipped and the next iteration will be performed!')\r\n\t\r\n\t## write log-file to system\r\n\tlog_file = open(path_of_working_directory_rce + current_workflow_name + '/workflowLogFile.log', 'a')\r\n\t# loop across all elements of log-file list to print to workflow console and write to workflow log-file\r\n\tfor row in log_file_list:\r\n\t# print current log-file list entry to workflow console\r\n\t\tprint(row[character_length_of_date_and_time:])\r\n\r\n\t# write current entry of log-file list to workflow log-file\r\n\t\tlog_file.write(row + '\\n')\r\n\tlog_file.close()\r\n\r\n\r\n''' outputs for workflow '''\r\n# set initialize_design_sizing_loop results to RCE outputs\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"calibration_settings\", calibration_settings)\r\nRCE.write_output(\"calibration_factors\", [0.0])\r\nRCE.write_output(\"cm_cruise\", ([item for item in trim_parameter_list if 'cm_cruise' in item])[-1][-1])\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"count_of_iteration\", ([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\nRCE.write_output(\"design_sizing_iteration_flag\", 0.0)\r\nRCE.write_output(\"i_stab\", ([item for item in trim_parameter_list if 'i_stab' in item])[-1][-1])\r\nRCE.write_output(\"m_block_fuel\", ([item for item in design_variables if 'mission_energy' in item])[-1][-1])\r\nRCE.write_output(\"m_operating_empty\", ([item for item in design_variables if 'm_operating_empty' in item])[-1][-1])\r\nRCE.write_output(\"m_take_off_max\", ([item for item in design_variables if 'm_take_off_max' in item])[-1][-1])\r\nRCE.write_output(\"module_list_of_sizing_loop\", module_list_of_sizing_loop)\r\nRCE.write_output(\"mtom_loop_vector\", mtom_loop_vector)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\ntrim_parameter_list.remove(['cm_cruise', ([item for item in trim_parameter_list if 'cm_cruise' in item])[-1][-1]])\r\ntrim_parameter_list.remove(['i_stab', ([item for item in trim_parameter_list if 'i_stab' in item])[-1][-1]])\r\nRCE.write_output(\"trim_parameter_list\", trim_parameter_list)\r\nRCE.write_output(\"x_center_of_gravity\", ([item for item in design_variables if 'x_center_of_gravity' in item])[-1][-1])\r\n", + "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read RCE inputs for script execution '''\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncalibration_settings = RCE.read_input(\"calibration_settings\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\nmodule_list_of_sizing_loop = RCE.read_input(\"module_list_of_sizing_loop\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nfrom datetime import datetime\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' set values to initialize design sizing loop and auto-trim function '''\r\n\r\n# import python script\r\nfrom design_sizing_loop.initialize_design_sizing_loop import initialize_design_sizing_loop\r\n\r\n# function call for initialize design sizing loop and auto-trim function -> set initial values and auto-trim parameter\r\n# inputs: paths_and_names, parameter_for_design_case, control_settings\r\n# returns: design_variables, trim_parameter_list, mtom_loop_vector\r\n\r\ndesign_variables, trim_parameter_list, mtom_loop_vector = initialize_design_sizing_loop(paths_and_names, parameter_for_design_case, control_settings)\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' set values to initialize calibartion and set initial values for calibration loop '''\r\n\r\n# import python script\r\nfrom design_sizing_loop.initialize_calibration import initialize_calibration\r\n\r\n# read OME and MTOM calibration flag from calibration settings to activate or skip calibration\r\nperform_calibration = int(([item for item in calibration_settings if 'free_variable_OME_calibration' in item])[-1][-1] > 0 or ([item for item in calibration_settings if 'free_variable_MTOM_calibration' in item])[-1][-1] > 0)\r\n\r\n# check if perform_calibration flag is set to active -> if true: -> initialize calibration mode\r\nif perform_calibration:\r\n\t# function call for initialize calibartion -> set initial values for calibration loop\r\n\t# inputs: paths_and_names, parameter_for_design_case, control_settings\r\n\t# returns: calibration_settings\r\n\t\r\n\tcalibration_settings = initialize_calibration(paths_and_names, calibration_settings)\r\n\t\r\nelse:\r\n\tcalibration_settings.append(['calibrate_ome_flag', int(0)])\r\n\tcalibration_settings.append(['calibrate_mtom_flag', int(0)])\r\n\tcalibration_settings.append(['number_of_final_runs', int(0)])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' check for error handling '''\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if error in tool execution -> if true: -> print error message to workflow log-file and console\r\nif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\tlog_file_list = []\r\n\tcharacter_length_of_date_and_time = 21\r\n\t\r\n\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Error in pre-sizing tool execution!')\r\n\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': At least one of the enabled pre-sizing tools has send an error. The actual design sizing loop is failed and will be canceled!')\r\n\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': If parameter study or optimization is selected, current loop of iteration will skipped and the next iteration will be performed!')\r\n\t\r\n\t## write log-file to system\r\n\tlog_file = open(path_of_working_directory_rce + current_workflow_name + '/workflowLogFile.log', 'a')\r\n\t# loop across all elements of log-file list to print to workflow console and write to workflow log-file\r\n\tfor row in log_file_list:\r\n\t# print current log-file list entry to workflow console\r\n\t\tprint(row[character_length_of_date_and_time:])\r\n\r\n\t# write current entry of log-file list to workflow log-file\r\n\t\tlog_file.write(row + '\\n')\r\n\tlog_file.close()\r\n\r\n\r\n''' outputs for workflow '''\r\n# set initialize_design_sizing_loop results to RCE outputs\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"calibration_settings\", calibration_settings)\r\nRCE.write_output(\"calibration_factors\", [0.0])\r\nRCE.write_output(\"cm_cruise\", ([item for item in trim_parameter_list if 'cm_cruise' in item])[-1][-1])\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"count_of_iteration\", ([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\nRCE.write_output(\"design_sizing_iteration_flag\", 0.0)\r\nRCE.write_output(\"i_stab\", ([item for item in trim_parameter_list if 'i_stab' in item])[-1][-1])\r\nRCE.write_output(\"m_mission_fuel\", ([item for item in design_variables if 'm_mission_fuel' in item])[-1][-1])\r\nRCE.write_output(\"m_operating_empty\", ([item for item in design_variables if 'm_operating_empty' in item])[-1][-1])\r\nRCE.write_output(\"m_take_off_max\", ([item for item in design_variables if 'm_take_off_max' in item])[-1][-1])\r\nRCE.write_output(\"module_list_of_sizing_loop\", module_list_of_sizing_loop)\r\nRCE.write_output(\"mtom_loop_vector\", mtom_loop_vector)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\ntrim_parameter_list.remove(['cm_cruise', ([item for item in trim_parameter_list if 'cm_cruise' in item])[-1][-1]])\r\ntrim_parameter_list.remove(['i_stab', ([item for item in trim_parameter_list if 'i_stab' in item])[-1][-1]])\r\nRCE.write_output(\"trim_parameter_list\", trim_parameter_list)\r\nRCE.write_output(\"x_center_of_gravity\", ([item for item in design_variables if 'x_center_of_gravity' in item])[-1][-1])\r\n", "scriptLanguage" : "Python", "storeComponentHistoryData" : "true", "usageOfScript" : "NEW", @@ -2131,7 +2082,7 @@ "datatype" : "Vector" }, { "identifier" : "a5a5e791-280e-4008-88c0-1ae45c44fd6e", - "name" : "m_block_fuel", + "name" : "m_mission_fuel", "epIdentifier" : "default", "datatype" : "Float" }, { @@ -2178,7 +2129,7 @@ }, { "identifier" : "143688cb-63f9-4a2f-824f-4e23d45a2e5b", "name" : "initialize_mission_study_analysis", - "location" : "310:513", + "location" : "320:621", "zIndex" : "3", "active" : "true", "component" : { @@ -2189,7 +2140,7 @@ "configuration" : { "ScriptWhitespaceBox" : "true", "pythonExecutionPath" : "${pythonExecutionPath}", - "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values '''\r\n\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\nmodule_list_of_sizing_loop = RCE.read_input(\"module_list_of_sizing_loop\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if a tool execution error exist -> if true: skip mission study loop and trigger post operations of workflow\r\nif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\tmission_study_variables = [['m_take_off_max_study', 0.0],\r\n\t\t\t\t\t\t\t\t['m_block_fuel_study', 0.0],\r\n\t\t\t\t\t\t\t\t['range_study', 0.0],\r\n\t\t\t\t\t\t\t\t['fl_initial_cruise_study', 0.0]]\r\n\t\r\nelse:\r\n\t''' initialize the mission study sizing loop to perform off design analysis '''\r\n\t# import python script\r\n\tfrom mission_study_loop.initialize_mission_study_analysis import initialize_mission_study_analysis\r\n\t\r\n\t# function call for initialize mission study analysis loop -> set initial design variables of mission study analysis to output list of lists\r\n\t# inputs: paths_and_names, control_settings, parameter_for_design_case\r\n\t# returns: mission_study_variables\r\n\t\r\n\tmission_study_variables = initialize_mission_study_analysis(paths_and_names, control_settings, parameter_for_design_case, module_list_of_sizing_loop)\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' outputs for workflow '''\r\n# set initalize_mission_study_analysis results to RCE outputs\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"count_of_mission_study_loop\", 0)\r\nRCE.write_output(\"convergence_criteria\", ([item for item in parameter_for_design_case if 'convergence_criteria' in item])[-1][-1])\r\nRCE.write_output(\"fl_initial_cruise_study\", ([item for item in mission_study_variables if 'fl_initial_cruise_study' in item])[-1][-1])\r\nRCE.write_output(\"m_block_fuel_study\", ([item for item in mission_study_variables if 'm_block_fuel_study' in item])[-1][-1])\r\nRCE.write_output(\"m_take_off_max_study\", ([item for item in mission_study_variables if 'm_take_off_max_study' in item])[-1][-1])\r\nRCE.write_output(\"mission_study_iteration_flag\", 0)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\nRCE.write_output(\"range_study\", ([item for item in mission_study_variables if 'range_study' in item])[-1][-1])\r\n", + "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values '''\r\n\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\nmodule_list_of_sizing_loop = RCE.read_input(\"module_list_of_sizing_loop\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if a tool execution error exist -> if true: skip mission study loop and trigger post operations of workflow\r\nif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\tmission_study_variables = [['m_take_off_max_study', 0.0],\r\n\t\t\t\t\t\t\t\t['m_mission_fuel_study', 0.0],\r\n\t\t\t\t\t\t\t\t['range_study', 0.0],\r\n\t\t\t\t\t\t\t\t['fl_initial_cruise_study', 0.0]]\r\n\t\r\nelse:\r\n\t''' initialize the mission study sizing loop to perform off design analysis '''\r\n\t# import python script\r\n\tfrom mission_study_loop.initialize_mission_study_analysis import initialize_mission_study_analysis\r\n\t\r\n\t# function call for initialize mission study analysis loop -> set initial design variables of mission study analysis to output list of lists\r\n\t# inputs: paths_and_names, control_settings, parameter_for_design_case\r\n\t# returns: mission_study_variables\r\n\t\r\n\tmission_study_variables = initialize_mission_study_analysis(paths_and_names, control_settings, parameter_for_design_case, module_list_of_sizing_loop)\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' outputs for workflow '''\r\n# set initalize_mission_study_analysis results to RCE outputs\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"count_of_mission_study_loop\", 0)\r\nRCE.write_output(\"convergence_criteria\", ([item for item in parameter_for_design_case if 'convergence_criteria' in item])[-1][-1])\r\nRCE.write_output(\"fl_initial_cruise_study\", ([item for item in mission_study_variables if 'fl_initial_cruise_study' in item])[-1][-1])\r\nRCE.write_output(\"m_mission_fuel_study\", ([item for item in mission_study_variables if 'm_mission_fuel_study' in item])[-1][-1])\r\nRCE.write_output(\"m_take_off_max_study\", ([item for item in mission_study_variables if 'm_take_off_max_study' in item])[-1][-1])\r\nRCE.write_output(\"mission_study_iteration_flag\", 0)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\nRCE.write_output(\"range_study\", ([item for item in mission_study_variables if 'range_study' in item])[-1][-1])\r\n", "scriptLanguage" : "Python", "storeComponentHistoryData" : "true", "usageOfScript" : "NEW", @@ -2277,7 +2228,7 @@ "datatype" : "Float" }, { "identifier" : "de9a7e75-a928-4049-8e81-bf93cb63d27a", - "name" : "m_block_fuel_study", + "name" : "m_mission_fuel_study", "epIdentifier" : "default", "datatype" : "Float" }, { @@ -2314,8 +2265,8 @@ }, { "identifier" : "9e1bf355-26f2-4f6b-a98d-f99ae80fb522", "name" : "landing_gear_design", - "location" : "782:214", - "zIndex" : "44", + "location" : "921:321", + "zIndex" : "40", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.landing_gear_design", @@ -2339,8 +2290,8 @@ }, { "identifier" : "5ad3ea3d-6c85-465c-8c5f-cc63f8706c3a", "name" : "landing_gear_design_calibration", - "location" : "1203:-25", - "zIndex" : "45", + "location" : "1299:21", + "zIndex" : "41", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.landing_gear_design", @@ -2364,8 +2315,8 @@ }, { "identifier" : "f1f8fd49-8b9f-4659-a0a6-8a196a6b15ee", "name" : "mission_analysis", - "location" : "1462:214", - "zIndex" : "53", + "location" : "1500:320", + "zIndex" : "48", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.mission_analysis", @@ -2386,11 +2337,35 @@ "name" : "current_workflow_name", "datatype" : "ShortText" } ] + }, { + "identifier" : "b55d8cc3-c130-4638-a35e-1842877bd55b", + "name" : "mission_analysis_reqs", + "location" : "1120:760", + "zIndex" : "57", + "active" : "true", + "component" : { + "identifier" : "de.rcenvironment.integration.common.mission_analysis", + "version" : "allTime", + "name" : "mission_analysis" + }, + "configuration" : { + "storeComponentHistoryData" : "true" + }, + "staticInputs" : [ { + "identifier" : "e8035ea0-32fb-4bc9-abfe-1a01a5907268", + "name" : "current_workflow_name", + "datatype" : "ShortText" + } ], + "staticOutputs" : [ { + "identifier" : "7cf80042-5928-4e85-8089-a2eb13e2efb7", + "name" : "current_workflow_name", + "datatype" : "ShortText" + } ] }, { "identifier" : "be59f719-a0fd-41b0-995b-25087f438353", "name" : "mission_analysis_study", - "location" : "879:513", - "zIndex" : "54", + "location" : "921:621", + "zIndex" : "49", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.mission_analysis", @@ -2414,7 +2389,7 @@ }, { "identifier" : "6a6eac28-780c-449f-a864-f999230d9b6c", "name" : "mission_study_analysis_loop", - "location" : "419:513", + "location" : "441:621", "zIndex" : "5", "active" : "true", "component" : { @@ -2538,7 +2513,7 @@ } }, { "identifier" : "2bc5348d-9f21-4ecf-aa31-a08b6194ef31", - "name" : "m_block_fuel_study_backUp", + "name" : "m_mission_fuel_study_backUp", "epIdentifier" : "toForward", "group" : "valuesToConverge", "datatype" : "Float", @@ -2548,7 +2523,7 @@ } }, { "identifier" : "8b35a366-4b08-4dd5-bd77-be6cf8c2784d", - "name" : "m_block_fuel_study_backUp_start", + "name" : "m_mission_fuel_study_backUp_start", "epIdentifier" : "startToForward", "group" : "startValues", "datatype" : "Float", @@ -2759,7 +2734,7 @@ } }, { "identifier" : "a35a2ffc-55fd-4262-a82f-33b0e4c6f4a5", - "name" : "m_block_fuel_study_backUp", + "name" : "m_mission_fuel_study_backUp", "epIdentifier" : "toForward", "datatype" : "Float", "metadata" : { @@ -2768,7 +2743,7 @@ } }, { "identifier" : "bdc4a1b2-f02a-413b-8db6-a002e66670a8", - "name" : "m_block_fuel_study_backUp_converged", + "name" : "m_mission_fuel_study_backUp_converged", "epIdentifier" : "finalToForward", "datatype" : "Float", "metadata" : { @@ -2866,8 +2841,8 @@ }, { "identifier" : "0b601257-b1ab-46eb-aa85-dbdfc53c1b59", "name" : "mission_study_trigger_joiner", - "location" : "624:449", - "zIndex" : "29", + "location" : "660:541", + "zIndex" : "27", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -2900,8 +2875,8 @@ }, { "identifier" : "0c9da518-71e1-44d6-81ca-0e2dd34bc6fb", "name" : "mission_study_trigger_switch", - "location" : "528:639", - "zIndex" : "28", + "location" : "560:760", + "zIndex" : "26", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -2948,8 +2923,8 @@ }, { "identifier" : "a6912265-d4c3-4299-bb50-7ce2b582705e", "name" : "moe_calibration_joiner", - "location" : "1139:94", - "zIndex" : "20", + "location" : "1120:160", + "zIndex" : "18", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -2982,8 +2957,8 @@ }, { "identifier" : "04bb1645-86dc-4112-ab11-ec9b8ce3eb77", "name" : "nested_loop_control", - "location" : "159:196", - "zIndex" : "17", + "location" : "161:300", + "zIndex" : "15", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -3135,8 +3110,8 @@ }, { "identifier" : "92900669-3e67-4e87-8f85-0f23134b35ce", "name" : "optimization", - "location" : "160:15", - "zIndex" : "56", + "location" : "159:20", + "zIndex" : "51", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -3163,8 +3138,8 @@ }, { "identifier" : "82b3bfba-23d4-464c-bcd9-49b15c927b17", "name" : "outer_loop_joiner", - "location" : "179:410", - "zIndex" : "19", + "location" : "180:521", + "zIndex" : "17", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -3197,8 +3172,8 @@ }, { "identifier" : "0183f9c8-8908-47cc-81ee-b464c4fb5406", "name" : "parameter_study_and_optimization_loop", - "location" : "159:302", - "zIndex" : "18", + "location" : "161:401", + "zIndex" : "16", "active" : "true", "component" : { "identifier" : "de.rcenvironment.converger", @@ -3429,7 +3404,7 @@ }, { "identifier" : "edd1b5f0-1035-4ab4-8d9a-b413721701f7", "name" : "parametric_of_design_sizing_loop", - "location" : "311:330", + "location" : "320:441", "zIndex" : "4", "active" : "false", "component" : { @@ -3449,7 +3424,7 @@ }, "dynamicInputs" : [ { "identifier" : "fe071e86-c6c1-4240-b35d-e8b73f5a00f5", - "name" : "m_block_fuel", + "name" : "m_mission_fuel", "epIdentifier" : "parameters", "group" : "parameters", "datatype" : "Float", @@ -3509,7 +3484,7 @@ }, { "identifier" : "f5c7181a-2754-4f57-a7bd-4e43acae06f6", "name" : "parametric_of_mission_study_loop", - "location" : "311:639", + "location" : "320:760", "zIndex" : "6", "active" : "false", "component" : { @@ -3538,7 +3513,7 @@ } }, { "identifier" : "4b2b25b5-c184-4152-bf51-9901b1362077", - "name" : "m_block_fuel_study", + "name" : "m_mission_fuel_study", "epIdentifier" : "parameters", "group" : "parameters", "datatype" : "Float", @@ -3585,54 +3560,11 @@ "name" : "Done", "datatype" : "Boolean" } ] - }, { - "identifier" : "6b012a1a-3a77-4f99-b184-178dbe7b7359", - "name" : "path_to_CPACS_file", - "location" : "717:15", - "zIndex" : "13", - "active" : "true", - "component" : { - "identifier" : "de.rcenvironment.script", - "version" : "3.5", - "name" : "Script" - }, - "configuration" : { - "pythonExecutionPath" : "${pythonExecutionPath}", - "script" : "#------------------------------------------------------------------------------------------------------------------------\n\n''' read input values '''\npaths_and_names = RCE.read_input(\"paths_and_names\")\n\n#------------------------------------------------------------------------------------------------------------------------\n\n''' read and set system path for python scripts '''\n\n# import for python\nimport os\nimport sys\n\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\n\n#------------------------------------------------------------------------------------------------------------------------\n\n''' read data for script execution '''\n\naircraft_exchange_file = ([item for item in paths_and_names if 'aircraft_exchange_file' in item])[-1][-1]\naircraft_project = ([item for item in paths_and_names if 'aircraft_project' in item])[-1][-1]\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\n\n#------------------------------------------------------------------------------------------------------------------------\n\n''' generate path to cpacs file for tigl-view '''\n\ncpacs_file_name = aircraft_exchange_file[:-4] + '_CPACS.xml'\npath_to_cpacs_file = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project + '/' + cpacs_file_name\n\n#------------------------------------------------------------------------------------------------------------------------\n\n''' outputs for workflow '''\nif os.path.isfile(path_to_cpacs_file):\n\tRCE.write_output(\"path_to_cpacs_file\", path_to_cpacs_file)\n", - "scriptLanguage" : "Python", - "storeComponentHistoryData" : "true", - "usageOfScript" : "NEW" - }, - "dynamicInputs" : [ { - "identifier" : "b3272c9d-0cd7-4ed0-88dc-d292c162e670", - "name" : "current_workflow_name", - "epIdentifier" : "default", - "datatype" : "ShortText", - "metadata" : { - "inputExecutionConstraint_4aae3eea" : "Required", - "inputHandling_73b1056e" : "Queue" - } - }, { - "identifier" : "8b8c1dda-8c18-4d35-adde-c6b95e21e8b7", - "name" : "paths_and_names", - "epIdentifier" : "default", - "datatype" : "SmallTable", - "metadata" : { - "inputExecutionConstraint_4aae3eea" : "Required", - "inputHandling_73b1056e" : "Constant" - } - } ], - "dynamicOutputs" : [ { - "identifier" : "0f0ba4fe-beb3-47f2-968e-a2138634d88c", - "name" : "path_to_cpacs_file", - "epIdentifier" : "default", - "datatype" : "FileReference" - } ] }, { "identifier" : "8ebdd425-bba9-49e4-a3de-cca6ffe6f057", "name" : "perform_ome_calibration", - "location" : "1199:74", - "zIndex" : "16", + "location" : "1200:140", + "zIndex" : "14", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -3819,8 +3751,8 @@ }, { "identifier" : "31495350-5048-44db-b63f-2355d871960e", "name" : "performance_assessment", - "location" : "678:640", - "zIndex" : "57", + "location" : "1220:760", + "zIndex" : "52", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.performance_assessment", @@ -3844,7 +3776,7 @@ }, { "identifier" : "d0b2a63b-3133-4af7-9bf2-67c2f45e502e", "name" : "post_operation_of_design_sizing", - "location" : "524:201", + "location" : "560:300", "zIndex" : "2", "active" : "true", "component" : { @@ -3855,7 +3787,7 @@ "configuration" : { "ScriptWhitespaceBox" : "true", "pythonExecutionPath" : "${pythonExecutionPath}", - "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values and generate list of design variables '''\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncalibration_factors = RCE.read_input(\"calibration_factors\")\r\ncalibration_settings = RCE.read_input(\"calibration_settings\")\r\ncm_cruise = RCE.read_input(\"cm_cruise\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\ndesign_sizing_iteration_flag = RCE.read_input(\"design_sizing_iteration_flag\")\r\ni_stab = RCE.read_input(\"i_stab\")\r\nm_block_fuel_last = RCE.read_input(\"m_block_fuel_last\")\r\nm_operating_empty_last = RCE.read_input(\"m_operating_empty_last\")\r\nm_take_off_max_last = RCE.read_input(\"m_take_off_max_last\")\r\nmodule_list_of_sizing_loop = RCE.read_input(\"module_list_of_sizing_loop\")\r\nmtom_loop_vector = RCE.read_input(\"mtom_loop_vector\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\ntrim_parameter_list = RCE.read_input(\"trim_parameter_list\")\r\nx_center_of_gravity_last = RCE.read_input(\"x_center_of_gravity_last\")\r\n\r\ndesign_variables = [['m_take_off_max_last', m_take_off_max_last],\r\n\t\t\t\t\t['m_operating_empty_last', m_operating_empty_last],\r\n\t\t\t\t\t['m_block_fuel_last', m_block_fuel_last],\r\n\t\t\t\t\t['x_center_of_gravity_last', x_center_of_gravity_last],\r\n\t\t\t\t\t['cm_cruise', ([item for item in trim_parameter_list if 'cm_cruise_current' in item])[-1][-1]],\r\n\t\t\t\t\t['i_stab', ([item for item in trim_parameter_list if 'i_stab_last' in item])[-1][-1]]]\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts'''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nfrom datetime import datetime\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\ndesign_mode = int(([item for item in parameter_for_design_case if 'design_mode' in item])[-1][-1])\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if selected design mode eqaual to 3 or if exist a tool execution error -> if true: -> skip post operating of design sizing and close converger unit than perform mission analysis loop\r\nif design_mode == 3 or os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\tcount_of_iteration = int(([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\n\t\r\n\tRCE.write_output(\"count_of_iteration\", 0)\r\n\tRCE.write_output(\"m_block_fuel\", 0)\r\n\tRCE.write_output(\"m_operating_empty\", 0)\r\n\tRCE.write_output(\"m_take_off_max\", 0)\r\n\tRCE.write_output(\"x_center_of_gravity\", 0)\r\n\t\r\n\t# check if error in tool execution -> if true: -> print error message to workflow log-file and console\r\n\tif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat') and count_of_iteration > 0:\r\n\t\tlog_file_list = []\r\n\t\tcharacter_length_of_date_and_time = 21\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Error in design tool execution!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': At least one of the enabled design tools has send an error. The actual design loop is failed and will be canceled!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': If parameter study or optimization is selected, current loop of iteration will skipped and the next iteration will be performed!')\r\n\t\t\r\n\t\t# write log-file to system\r\n\t\tlog_file = open(path_of_working_directory_rce + current_workflow_name + '/workflowLogFile.log', 'a')\r\n\t\t# loop across all elements of log-file list to print to workflow console and write to workflow log-file\r\n\t\tfor row in log_file_list:\r\n\t\t# print current log-file list entry to workflow console\r\n\t\t\tprint(row[character_length_of_date_and_time:])\r\n\r\n\t\t# write current entry of log-file list to workflow log-file\r\n\t\t\tlog_file.write(row + '\\n')\r\n\t\tlog_file.close()\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\nelse:\r\n\t''' prepare design variables for RCE converger to perform next steps '''\r\n\t\r\n\t# import python script\r\n\tfrom design_sizing_loop.post_operation_of_design_sizing import post_operation_of_design_sizing\r\n\t\r\n\t# function call for post operation of design sizing -> prepares design variables for converge component of RCE and calculates the residuals of design variables.\r\n\t# inputs: paths_and_names, parameter_for_design_case, design_variables, control_settings, module_list_of_sizing_loop, calibration_settings, mtom_loop_vector, calibration_factors, accuracy_list, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag\r\n\t# returns: parameter_for_design_case, design_variables, calibration_settings, control_settings, mtom_loop_vector, calibration_factors, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag\r\n\t\r\n\tparameter_for_design_case, design_variables, calibration_settings, control_settings, mtom_loop_vector, calibration_factors, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag = \\\r\n\t\tpost_operation_of_design_sizing(paths_and_names, parameter_for_design_case, design_variables, control_settings, module_list_of_sizing_loop, calibration_settings, mtom_loop_vector, calibration_factors, \r\n\t\t\t\t\t\t\t\t\t\taccuracy_list, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag)\r\n\t\r\n\t#------------------------------------------------------------------------------------------------------------------------\r\n\t\r\n\tstatus_flag_to_skip_design_sizing = int(([item for item in control_settings if 'status_flag_to_skip_design_sizing' in item])[-1][-1])\r\n\t\r\n\t''' outputs for workflow after execution of post operating '''\r\n\tif status_flag_to_skip_design_sizing == 0:\r\n\t\tRCE.write_output(\"count_of_iteration\", ([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_block_fuel\", ([item for item in design_variables if 'm_block_fuel' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_operating_empty\", ([item for item in design_variables if 'm_operating_empty' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_take_off_max\", ([item for item in design_variables if 'm_take_off_max' in item])[-1][-1])\r\n\t\tRCE.write_output(\"x_center_of_gravity\", ([item for item in design_variables if 'x_center_of_gravity' in item])[-1][-1])\t\r\n\telse:\r\n\t\tRCE.write_output(\"count_of_iteration\", ([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_block_fuel\", ([item for item in design_variables if 'm_block_fuel_last' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_operating_empty\", ([item for item in design_variables if 'm_operating_empty_last' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_take_off_max\", ([item for item in design_variables if 'm_take_off_max_last' in item])[-1][-1])\r\n\t\tRCE.write_output(\"x_center_of_gravity\", ([item for item in design_variables if 'x_center_of_gravity_last' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' outputs for workflow '''\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"calibration_factors\", calibration_factors)\r\nRCE.write_output(\"calibration_settings\", calibration_settings)\r\nRCE.write_output(\"cm_cruise\", cm_cruise)\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"current_workflow_name\", current_workflow_name)\r\nRCE.write_output(\"design_sizing_iteration_flag\", design_sizing_iteration_flag)\r\nRCE.write_output(\"i_stab\", i_stab)\r\nRCE.write_output(\"module_list_of_sizing_loop\", module_list_of_sizing_loop)\r\nRCE.write_output(\"mtom_loop_vector\", mtom_loop_vector)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\nRCE.write_output(\"trim_parameter_list\", trim_parameter_list)\r\n", + "script" : "#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values and generate list of design variables '''\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncalibration_factors = RCE.read_input(\"calibration_factors\")\r\ncalibration_settings = RCE.read_input(\"calibration_settings\")\r\ncm_cruise = RCE.read_input(\"cm_cruise\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\ndesign_sizing_iteration_flag = RCE.read_input(\"design_sizing_iteration_flag\")\r\ni_stab = RCE.read_input(\"i_stab\")\r\nm_mission_fuel_last = RCE.read_input(\"m_mission_fuel_last\")\r\nm_operating_empty_last = RCE.read_input(\"m_operating_empty_last\")\r\nm_take_off_max_last = RCE.read_input(\"m_take_off_max_last\")\r\nmodule_list_of_sizing_loop = RCE.read_input(\"module_list_of_sizing_loop\")\r\nmtom_loop_vector = RCE.read_input(\"mtom_loop_vector\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\ntrim_parameter_list = RCE.read_input(\"trim_parameter_list\")\r\nx_center_of_gravity_last = RCE.read_input(\"x_center_of_gravity_last\")\r\n\r\ndesign_variables = [['m_take_off_max_last', m_take_off_max_last],\r\n\t\t\t\t\t['m_operating_empty_last', m_operating_empty_last],\r\n\t\t\t\t\t['m_mission_fuel_last', m_mission_fuel_last],\r\n\t\t\t\t\t['x_center_of_gravity_last', x_center_of_gravity_last],\r\n\t\t\t\t\t['cm_cruise', ([item for item in trim_parameter_list if 'cm_cruise_current' in item])[-1][-1]],\r\n\t\t\t\t\t['i_stab', ([item for item in trim_parameter_list if 'i_stab_last' in item])[-1][-1]]]\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts'''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nfrom datetime import datetime\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\ndesign_mode = int(([item for item in parameter_for_design_case if 'design_mode' in item])[-1][-1])\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if selected design mode eqaual to 3 or if exist a tool execution error -> if true: -> skip post operating of design sizing and close converger unit than perform mission analysis loop\r\nif design_mode == 3 or os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\tcount_of_iteration = int(([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\n\t\r\n\tRCE.write_output(\"count_of_iteration\", 0)\r\n\tRCE.write_output(\"m_mission_fuel\", 0)\r\n\tRCE.write_output(\"m_operating_empty\", 0)\r\n\tRCE.write_output(\"m_take_off_max\", 0)\r\n\tRCE.write_output(\"x_center_of_gravity\", 0)\r\n\t\r\n\t# check if error in tool execution -> if true: -> print error message to workflow log-file and console\r\n\tif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat') and count_of_iteration > 0:\r\n\t\tlog_file_list = []\r\n\t\tcharacter_length_of_date_and_time = 21\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Error in design tool execution!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': At least one of the enabled design tools has send an error. The actual design loop is failed and will be canceled!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': If parameter study or optimization is selected, current loop of iteration will skipped and the next iteration will be performed!')\r\n\t\t\r\n\t\t# write log-file to system\r\n\t\tlog_file = open(path_of_working_directory_rce + current_workflow_name + '/workflowLogFile.log', 'a')\r\n\t\t# loop across all elements of log-file list to print to workflow console and write to workflow log-file\r\n\t\tfor row in log_file_list:\r\n\t\t# print current log-file list entry to workflow console\r\n\t\t\tprint(row[character_length_of_date_and_time:])\r\n\r\n\t\t# write current entry of log-file list to workflow log-file\r\n\t\t\tlog_file.write(row + '\\n')\r\n\t\tlog_file.close()\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\nelse:\r\n\t''' prepare design variables for RCE converger to perform next steps '''\r\n\t\r\n\t# import python script\r\n\tfrom design_sizing_loop.post_operation_of_design_sizing import post_operation_of_design_sizing\r\n\t\r\n\t# function call for post operation of design sizing -> prepares design variables for converge component of RCE and calculates the residuals of design variables.\r\n\t# inputs: paths_and_names, parameter_for_design_case, design_variables, control_settings, module_list_of_sizing_loop, calibration_settings, mtom_loop_vector, calibration_factors, accuracy_list, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag\r\n\t# returns: parameter_for_design_case, design_variables, calibration_settings, control_settings, mtom_loop_vector, calibration_factors, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag\r\n\t\r\n\tparameter_for_design_case, design_variables, calibration_settings, control_settings, mtom_loop_vector, calibration_factors, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag = \\\r\n\t\tpost_operation_of_design_sizing(paths_and_names, parameter_for_design_case, design_variables, control_settings, module_list_of_sizing_loop, calibration_settings, mtom_loop_vector, calibration_factors, \r\n\t\t\t\t\t\t\t\t\t\taccuracy_list, trim_parameter_list, i_stab, cm_cruise, design_sizing_iteration_flag)\r\n\t\r\n\t#------------------------------------------------------------------------------------------------------------------------\r\n\t\r\n\tstatus_flag_to_skip_design_sizing = int(([item for item in control_settings if 'status_flag_to_skip_design_sizing' in item])[-1][-1])\r\n\t\r\n\t''' outputs for workflow after execution of post operating '''\r\n\tif status_flag_to_skip_design_sizing == 0:\r\n\t\tRCE.write_output(\"count_of_iteration\", ([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_mission_fuel\", ([item for item in design_variables if 'm_mission_fuel' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_operating_empty\", ([item for item in design_variables if 'm_operating_empty' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_take_off_max\", ([item for item in design_variables if 'm_take_off_max' in item])[-1][-1])\r\n\t\tRCE.write_output(\"x_center_of_gravity\", ([item for item in design_variables if 'x_center_of_gravity' in item])[-1][-1])\t\r\n\telse:\r\n\t\tRCE.write_output(\"count_of_iteration\", ([item for item in parameter_for_design_case if 'count_of_iteration' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_mission_fuel\", ([item for item in design_variables if 'm_mission_fuel_last' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_operating_empty\", ([item for item in design_variables if 'm_operating_empty_last' in item])[-1][-1])\r\n\t\tRCE.write_output(\"m_take_off_max\", ([item for item in design_variables if 'm_take_off_max_last' in item])[-1][-1])\r\n\t\tRCE.write_output(\"x_center_of_gravity\", ([item for item in design_variables if 'x_center_of_gravity_last' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' outputs for workflow '''\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"calibration_factors\", calibration_factors)\r\nRCE.write_output(\"calibration_settings\", calibration_settings)\r\nRCE.write_output(\"cm_cruise\", cm_cruise)\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"current_workflow_name\", current_workflow_name)\r\nRCE.write_output(\"design_sizing_iteration_flag\", design_sizing_iteration_flag)\r\nRCE.write_output(\"i_stab\", i_stab)\r\nRCE.write_output(\"module_list_of_sizing_loop\", module_list_of_sizing_loop)\r\nRCE.write_output(\"mtom_loop_vector\", mtom_loop_vector)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\nRCE.write_output(\"trim_parameter_list\", trim_parameter_list)\r\n", "scriptLanguage" : "Python", "storeComponentHistoryData" : "true", "usageOfScript" : "NEW", @@ -3935,7 +3867,7 @@ } }, { "identifier" : "4669cecd-7947-4216-bcde-f92b980325a3", - "name" : "m_block_fuel_last", + "name" : "m_mission_fuel_last", "epIdentifier" : "default", "datatype" : "Float", "metadata" : { @@ -4062,7 +3994,7 @@ "datatype" : "Vector" }, { "identifier" : "f5f87451-abbb-42ff-a827-9b453748c11f", - "name" : "m_block_fuel", + "name" : "m_mission_fuel", "epIdentifier" : "default", "datatype" : "Float" }, { @@ -4109,7 +4041,7 @@ }, { "identifier" : "4592da78-65fe-4637-b390-ddae0327e898", "name" : "post_operation_of_mission_study_analysis", - "location" : "528:513", + "location" : "560:621", "zIndex" : "7", "active" : "true", "component" : { @@ -4120,7 +4052,7 @@ "configuration" : { "ScriptWhitespaceBox" : "true", "pythonExecutionPath" : "${pythonExecutionPath}", - "script" : "\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values '''\r\n\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\ncount_of_mission_study_loop = RCE.read_input(\"count_of_mission_study_loop\")\r\nconvergence_criteria = RCE.read_input(\"convergence_criteria\")\r\nfl_initial_cruise_study_last = RCE.read_input(\"fl_initial_cruise_study_last\")\r\ninput_flag_post_operation_mission_study_analysis = RCE.read_input(\"input_flag_post_operation_mission_study_analysis\")\r\nm_block_fuel_study_last = RCE.read_input(\"m_block_fuel_study_last\")\r\nm_take_off_max_study_last = RCE.read_input(\"m_take_off_max_study_last\")\r\nmission_study_iteration_flag = RCE.read_input(\"mission_study_iteration_flag\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\nrange_study_last = RCE.read_input(\"range_study_last\")\r\n\r\nold_mission_study_iteration_flag = mission_study_iteration_flag\r\n\r\nmission_study_variables = [['m_take_off_max_study_last', m_take_off_max_study_last],\r\n\t\t\t\t\t\t\t['m_block_fuel_study_last', m_block_fuel_study_last],\r\n\t\t\t\t\t\t\t['range_study_last', range_study_last],\r\n\t\t\t\t\t\t\t['fl_initial_cruise_study_last', fl_initial_cruise_study_last]]\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nfrom datetime import datetime\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' prepare mission study variables for RCE converger to perform next steps '''\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\ndesign_mode = int(([item for item in parameter_for_design_case if 'design_mode' in item])[-1][-1])\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if mission study analysis should not be performed (design_mode == 4) or if exist a tool execution error -> if true: -> skip mission analysis loop and perform post operations of workflow\r\nif not design_mode == 4 and not os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\t# import python script\r\n\tfrom mission_study_loop.post_operation_of_mission_study_analysis import post_operation_of_mission_study_analysis\r\n\t\r\n\t# function call for post operation of mission study analysis -> prepares design variables for converge component of RCE and calculates the residuals of design variables.\r\n\t# inputs: paths_and_names, mission_study_variables, control_settings, count_of_mission_study_loop, convergence_criteria, mission_study_iteration_flag\r\n\t# returns: mission_study_variables, control_settings, count_of_mission_study_loop, mission_study_iteration_flag\r\n\t\r\n\tmission_study_variables, control_settings, count_of_mission_study_loop, mission_study_iteration_flag = \\\r\n\t\tpost_operation_of_mission_study_analysis(paths_and_names, mission_study_variables, control_settings, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcount_of_mission_study_loop, convergence_criteria, mission_study_iteration_flag)\r\n\t\r\n\t#------------------------------------------------------------------------------------------------------------------------\r\n\t\r\n\t# check if workflowExecutionError.dat exist in the UNICADOworkflow directory -> if true: -> terminate mission study loop and prepare final workflow steps\r\n\tif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\t\tmission_study_iteration_flag = old_mission_study_iteration_flag\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\nelse:\r\n\tmission_study_variables = [['m_take_off_max_study', 0.0],\r\n\t\t\t\t\t\t\t\t['m_block_fuel_study', 0.0],\r\n\t\t\t\t\t\t\t\t['range_study', 0.0],\r\n\t\t\t\t\t\t\t\t['fl_initial_cruise_study', 0.0]]\r\n\r\n\tmission_study_iteration_flag = old_mission_study_iteration_flag\r\n\t\r\n\t# check if error in tool execution -> if true: -> print error message to workflow log-file and console\r\n\tif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat') and count_of_mission_study_loop > 0:\r\n\t\tlog_file_list = []\r\n\t\tcharacter_length_of_date_and_time = 21\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Error in mission study tool execution!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': At least one of the enabled mission study tools has send an error. The actual mission study loop is failed and will be canceled!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': If parameter study or optimization is selected, current loop of iteration will skipped and the next iteration will be performed!')\r\n\t\t\r\n\t\t# write log-file to system\r\n\t\tlog_file = open(path_of_working_directory_rce + current_workflow_name + '/workflowLogFile.log', 'a')\r\n\t\t# loop across all elements of log-file list to print to workflow console and write to workflow log-file\r\n\t\tfor row in log_file_list:\r\n\t\t# print current log-file list entry to workflow console\r\n\t\t\tprint(row[character_length_of_date_and_time:])\r\n\r\n\t\t# write current entry of log-file list to workflow log-file\r\n\t\t\tlog_file.write(row + '\\n')\r\n\t\tlog_file.close()\r\n\r\n'------------------------------------------------------------------------------------------------------------------------'\r\n\r\n''' outputs for workflow '''\r\nstatus_flag_to_skip_study_mission = int(([item for item in control_settings if 'status_flag_to_skip_study_mission' in item])[-1][-1])\r\n\r\nif status_flag_to_skip_study_mission == 0:\r\n\tRCE.write_output(\"fl_initial_cruise_study\", ([item for item in mission_study_variables if 'fl_initial_cruise_study' in item])[-1][-1])\r\n\tRCE.write_output(\"m_block_fuel_study\", ([item for item in mission_study_variables if 'm_block_fuel_study' in item])[-1][-1])\r\n\tRCE.write_output(\"m_take_off_max_study\", ([item for item in mission_study_variables if 'm_take_off_max_study' in item])[-1][-1])\r\n\tRCE.write_output(\"range_study\", ([item for item in mission_study_variables if 'range_study' in item])[-1][-1])\r\nelse:\r\n\tRCE.write_output(\"fl_initial_cruise_study\", ([item for item in mission_study_variables if 'fl_initial_cruise_study_last' in item])[-1][-1])\r\n\tRCE.write_output(\"m_block_fuel_study\", ([item for item in mission_study_variables if 'm_block_fuel_study_last' in item])[-1][-1])\r\n\tRCE.write_output(\"m_take_off_max_study\", ([item for item in mission_study_variables if 'm_take_off_max_study_last' in item])[-1][-1])\r\n\tRCE.write_output(\"range_study\", ([item for item in mission_study_variables if 'range_study_last' in item])[-1][-1])\r\n\r\n# set results of post operation of mission study analysis to RCE outputs\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"count_of_mission_study_loop\", count_of_mission_study_loop + 1)\r\nRCE.write_output(\"convergence_criteria\", convergence_criteria)\r\nRCE.write_output(\"mission_study_iteration_flag\", mission_study_iteration_flag)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\n", + "script" : "\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read input values '''\r\n\r\naccuracy_list = RCE.read_input(\"accuracy_list\")\r\ncontrol_settings = RCE.read_input(\"control_settings\")\r\ncount_of_mission_study_loop = RCE.read_input(\"count_of_mission_study_loop\")\r\nconvergence_criteria = RCE.read_input(\"convergence_criteria\")\r\nfl_initial_cruise_study_last = RCE.read_input(\"fl_initial_cruise_study_last\")\r\ninput_flag_post_operation_mission_study_analysis = RCE.read_input(\"input_flag_post_operation_mission_study_analysis\")\r\nm_mission_fuel_study_last = RCE.read_input(\"m_mission_fuel_study_last\")\r\nm_take_off_max_study_last = RCE.read_input(\"m_take_off_max_study_last\")\r\nmission_study_iteration_flag = RCE.read_input(\"mission_study_iteration_flag\")\r\nparameter_for_design_case = RCE.read_input(\"parameter_for_design_case\")\r\npaths_and_names = RCE.read_input(\"paths_and_names\")\r\nrange_study_last = RCE.read_input(\"range_study_last\")\r\n\r\nold_mission_study_iteration_flag = mission_study_iteration_flag\r\n\r\nmission_study_variables = [['m_take_off_max_study_last', m_take_off_max_study_last],\r\n\t\t\t\t\t\t\t['m_mission_fuel_study_last', m_mission_fuel_study_last],\r\n\t\t\t\t\t\t\t['range_study_last', range_study_last],\r\n\t\t\t\t\t\t\t['fl_initial_cruise_study_last', fl_initial_cruise_study_last]]\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' read and set system path for python scripts '''\r\n\r\n# import for python\r\nimport os\r\nimport sys\r\nfrom datetime import datetime\r\n\r\nsys.path.insert(1, ([item for item in paths_and_names if 'path_to_python_scripts' in item])[-1][-1])\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\n''' prepare mission study variables for RCE converger to perform next steps '''\r\n\r\ncurrent_workflow_name = ([item for item in paths_and_names if 'current_workflow_name' in item])[-1][-1]\r\ndesign_mode = int(([item for item in parameter_for_design_case if 'design_mode' in item])[-1][-1])\r\npath_of_working_directory_rce = ([item for item in paths_and_names if 'path_of_working_directory_rce' in item])[-1][-1]\r\n\r\n# check if mission study analysis should not be performed (design_mode == 4) or if exist a tool execution error -> if true: -> skip mission analysis loop and perform post operations of workflow\r\nif not design_mode == 4 and not os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\t# import python script\r\n\tfrom mission_study_loop.post_operation_of_mission_study_analysis import post_operation_of_mission_study_analysis\r\n\t\r\n\t# function call for post operation of mission study analysis -> prepares design variables for converge component of RCE and calculates the residuals of design variables.\r\n\t# inputs: paths_and_names, mission_study_variables, control_settings, count_of_mission_study_loop, convergence_criteria, mission_study_iteration_flag\r\n\t# returns: mission_study_variables, control_settings, count_of_mission_study_loop, mission_study_iteration_flag\r\n\t\r\n\tmission_study_variables, control_settings, count_of_mission_study_loop, mission_study_iteration_flag = \\\r\n\t\tpost_operation_of_mission_study_analysis(paths_and_names, mission_study_variables, control_settings, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcount_of_mission_study_loop, convergence_criteria, mission_study_iteration_flag)\r\n\t\r\n\t#------------------------------------------------------------------------------------------------------------------------\r\n\t\r\n\t# check if workflowExecutionError.dat exist in the UNICADOworkflow directory -> if true: -> terminate mission study loop and prepare final workflow steps\r\n\tif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat'):\r\n\t\tmission_study_iteration_flag = old_mission_study_iteration_flag\r\n\r\n#------------------------------------------------------------------------------------------------------------------------\r\n\r\nelse:\r\n\tmission_study_variables = [['m_take_off_max_study', 0.0],\r\n\t\t\t\t\t\t\t\t['m_mission_fuel_study', 0.0],\r\n\t\t\t\t\t\t\t\t['range_study', 0.0],\r\n\t\t\t\t\t\t\t\t['fl_initial_cruise_study', 0.0]]\r\n\r\n\tmission_study_iteration_flag = old_mission_study_iteration_flag\r\n\t\r\n\t# check if error in tool execution -> if true: -> print error message to workflow log-file and console\r\n\tif os.path.isfile(path_of_working_directory_rce + current_workflow_name + '/temp/workflowExecutionError.dat') and count_of_mission_study_loop > 0:\r\n\t\tlog_file_list = []\r\n\t\tcharacter_length_of_date_and_time = 21\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Error in mission study tool execution!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': At least one of the enabled mission study tools has send an error. The actual mission study loop is failed and will be canceled!')\r\n\t\tlog_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': If parameter study or optimization is selected, current loop of iteration will skipped and the next iteration will be performed!')\r\n\t\t\r\n\t\t# write log-file to system\r\n\t\tlog_file = open(path_of_working_directory_rce + current_workflow_name + '/workflowLogFile.log', 'a')\r\n\t\t# loop across all elements of log-file list to print to workflow console and write to workflow log-file\r\n\t\tfor row in log_file_list:\r\n\t\t# print current log-file list entry to workflow console\r\n\t\t\tprint(row[character_length_of_date_and_time:])\r\n\r\n\t\t# write current entry of log-file list to workflow log-file\r\n\t\t\tlog_file.write(row + '\\n')\r\n\t\tlog_file.close()\r\n\r\n'------------------------------------------------------------------------------------------------------------------------'\r\n\r\n''' outputs for workflow '''\r\nstatus_flag_to_skip_study_mission = int(([item for item in control_settings if 'status_flag_to_skip_study_mission' in item])[-1][-1])\r\n\r\nif status_flag_to_skip_study_mission == 0:\r\n\tRCE.write_output(\"fl_initial_cruise_study\", ([item for item in mission_study_variables if 'fl_initial_cruise_study' in item])[-1][-1])\r\n\tRCE.write_output(\"m_mission_fuel_study\", ([item for item in mission_study_variables if 'm_mission_fuel_study' in item])[-1][-1])\r\n\tRCE.write_output(\"m_take_off_max_study\", ([item for item in mission_study_variables if 'm_take_off_max_study' in item])[-1][-1])\r\n\tRCE.write_output(\"range_study\", ([item for item in mission_study_variables if 'range_study' in item])[-1][-1])\r\nelse:\r\n\tRCE.write_output(\"fl_initial_cruise_study\", ([item for item in mission_study_variables if 'fl_initial_cruise_study_last' in item])[-1][-1])\r\n\tRCE.write_output(\"m_mission_fuel_study\", ([item for item in mission_study_variables if 'm_mission_fuel_study_last' in item])[-1][-1])\r\n\tRCE.write_output(\"m_take_off_max_study\", ([item for item in mission_study_variables if 'm_take_off_max_study_last' in item])[-1][-1])\r\n\tRCE.write_output(\"range_study\", ([item for item in mission_study_variables if 'range_study_last' in item])[-1][-1])\r\n\r\n# set results of post operation of mission study analysis to RCE outputs\r\nRCE.write_output(\"accuracy_list\", accuracy_list)\r\nRCE.write_output(\"control_settings\", control_settings)\r\nRCE.write_output(\"count_of_mission_study_loop\", count_of_mission_study_loop + 1)\r\nRCE.write_output(\"convergence_criteria\", convergence_criteria)\r\nRCE.write_output(\"mission_study_iteration_flag\", mission_study_iteration_flag)\r\nRCE.write_output(\"parameter_for_design_case\", parameter_for_design_case)\r\nRCE.write_output(\"paths_and_names\", paths_and_names)\r\n", "scriptLanguage" : "Python", "storeComponentHistoryData" : "true", "usageOfScript" : "NEW", @@ -4182,7 +4114,7 @@ } }, { "identifier" : "3f02bf11-ca3c-4563-8129-f88f4d4181a3", - "name" : "m_block_fuel_study_last", + "name" : "m_mission_fuel_study_last", "epIdentifier" : "default", "datatype" : "Float", "metadata" : { @@ -4262,7 +4194,7 @@ "datatype" : "Float" }, { "identifier" : "9750ec36-c262-4691-ad51-e8b1b51f6cf7", - "name" : "m_block_fuel_study", + "name" : "m_mission_fuel_study", "epIdentifier" : "default", "datatype" : "Float" }, { @@ -4294,7 +4226,7 @@ }, { "identifier" : "dbbcd8a2-7620-404f-9556-e5b74ac57494", "name" : "post_operations_of_workflow", - "location" : "159:482", + "location" : "161:621", "zIndex" : "9", "active" : "true", "component" : { @@ -4374,8 +4306,8 @@ }, { "identifier" : "f4cdbf68-8c3b-4259-889d-534565f50bd9", "name" : "pre_condition", - "location" : "308:15", - "zIndex" : "12", + "location" : "320:20", + "zIndex" : "11", "active" : "true", "component" : { "identifier" : "de.rcenvironment.script", @@ -4588,8 +4520,8 @@ }, { "identifier" : "76c3f045-43fe-4de1-9c75-0d8fe8630357", "name" : "propulsion_design", - "location" : "1188:330", - "zIndex" : "42", + "location" : "821:321", + "zIndex" : "38", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.propulsion_design", @@ -4613,8 +4545,8 @@ }, { "identifier" : "fe139a30-966c-4c29-b062-6d547b16725e", "name" : "propulsion_design_calibration", - "location" : "1407:-25", - "zIndex" : "43", + "location" : "1401:20", + "zIndex" : "39", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.propulsion_design", @@ -4638,8 +4570,8 @@ }, { "identifier" : "9f8138d1-32e5-4d3a-ab5b-110b3b878928", "name" : "report_generator", - "location" : "1188:640", - "zIndex" : "55", + "location" : "1419:760", + "zIndex" : "50", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.report_generator", @@ -4667,8 +4599,8 @@ }, { "identifier" : "e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb", "name" : "skip_design_sizing_joiner", - "location" : "628:133", - "zIndex" : "24", + "location" : "660:120", + "zIndex" : "22", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -4701,8 +4633,8 @@ }, { "identifier" : "d5385fbd-7d94-41e7-aac3-ac11fca00edd", "name" : "skip_pre_sizing_joiner", - "location" : "399:118", - "zIndex" : "21", + "location" : "420:120", + "zIndex" : "19", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -4735,8 +4667,8 @@ }, { "identifier" : "8571dc66-1e5f-496a-b31c-6bcf551b55c9", "name" : "systems_design", - "location" : "1083:214", - "zIndex" : "50", + "location" : "1120:321", + "zIndex" : "45", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.systems_design", @@ -4760,8 +4692,8 @@ }, { "identifier" : "5d68266a-a032-4a64-ad15-16bc0dbc3fdb", "name" : "systems_design_calibration", - "location" : "1040:74", - "zIndex" : "52", + "location" : "1100:21", + "zIndex" : "47", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.systems_design", @@ -4782,11 +4714,35 @@ "name" : "current_workflow_name", "datatype" : "ShortText" } ] + }, { + "identifier" : "357058df-28f1-475c-8731-177c36776289", + "name" : "systems_design_reqs", + "location" : "1021:760", + "zIndex" : "59", + "active" : "true", + "component" : { + "identifier" : "de.rcenvironment.integration.common.systems_design", + "version" : "allTime", + "name" : "systems_design" + }, + "configuration" : { + "storeComponentHistoryData" : "true" + }, + "staticInputs" : [ { + "identifier" : "ba1837bb-2703-4738-bf93-80fc7a81181d", + "name" : "current_workflow_name", + "datatype" : "ShortText" + } ], + "staticOutputs" : [ { + "identifier" : "b3ee6691-1180-4c57-89aa-ee9cb770fd06", + "name" : "current_workflow_name", + "datatype" : "ShortText" + } ] }, { "identifier" : "fcafed54-6d3b-4fdb-b185-ce731365963e", "name" : "systems_design_study", - "location" : "779:513", - "zIndex" : "51", + "location" : "821:621", + "zIndex" : "46", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.systems_design", @@ -4810,8 +4766,8 @@ }, { "identifier" : "df9e096e-9225-4c71-b219-f179322f08cc", "name" : "tank_design", - "location" : "982:330", - "zIndex" : "60", + "location" : "1120:441", + "zIndex" : "55", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.tank_design", @@ -4835,8 +4791,8 @@ }, { "identifier" : "73317720-637c-4700-9275-2c4db6683cca", "name" : "trigger_calibration_unit_joiner", - "location" : "1188:234", - "zIndex" : "25", + "location" : "1221:341", + "zIndex" : "23", "active" : "true", "component" : { "identifier" : "de.rcenvironment.joiner", @@ -4867,10 +4823,10 @@ "datatype" : "ShortText" } ] }, { - "identifier" : "5cbd330f-b227-4562-94e3-74359e6fadbd", + "identifier" : "7858b3ca-b763-43e1-a813-39100536b131", "name" : "weight_and_balance_analysis", - "location" : "982:214", - "zIndex" : "48", + "location" : "1600:320", + "zIndex" : "56", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.weight_and_balance_analysis", @@ -4879,23 +4835,23 @@ }, "configuration" : { "chosenDeleteTempDirBehavior" : "deleteWorkingDirectoriesAfterWorkflowExecution", - "storeComponentHistoryData" : "false" + "storeComponentHistoryData" : "true" }, "staticInputs" : [ { - "identifier" : "1c87b3f5-f883-4d36-bd8a-ea0c034d83c9", + "identifier" : "6dacab17-aa51-40ca-8870-136f19bec12e", "name" : "current_workflow_name", "datatype" : "ShortText" } ], "staticOutputs" : [ { - "identifier" : "d14aa65d-8a7f-4eb0-bd98-db75247b86e5", + "identifier" : "02675804-2a3f-4caf-a0e2-d9060fa1ab42", "name" : "current_workflow_name", "datatype" : "ShortText" } ] }, { "identifier" : "673ba059-9825-46ca-ba84-dff84ce97d7e", "name" : "weight_and_balance_analysis_calibration", - "location" : "1004:-25", - "zIndex" : "49", + "location" : "1001:21", + "zIndex" : "44", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.weight_and_balance_analysis", @@ -4919,8 +4875,8 @@ }, { "identifier" : "9dea694d-0251-41ce-b5e3-a56518fec971", "name" : "wing_design", - "location" : "882:330", - "zIndex" : "38", + "location" : "921:441", + "zIndex" : "34", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.wing_design", @@ -4944,8 +4900,8 @@ }, { "identifier" : "abbdb32d-6fb6-4b1f-838a-59d76a38ca05", "name" : "wing_design_calibration", - "location" : "1610:-25", - "zIndex" : "39", + "location" : "1600:20", + "zIndex" : "35", "active" : "true", "component" : { "identifier" : "de.rcenvironment.integration.common.wing_design", @@ -4970,13 +4926,13 @@ "connections" : [ { "source" : "d88d648d-4eae-4e95-8164-fc1919780b0c", "output" : "1944ec89-950a-4d31-adea-d761e05192c3", - "target" : "5cbd330f-b227-4562-94e3-74359e6fadbd", - "input" : "1c87b3f5-f883-4d36-bd8a-ea0c034d83c9" + "target" : "8571dc66-1e5f-496a-b31c-6bcf551b55c9", + "input" : "dd053cb7-3f42-4781-beba-47f902d04e64" }, { "source" : "cc9ae7fd-2bc8-4abf-92d2-8d5be41c3dd6", "output" : "bfb01312-476c-482c-ae4e-3f00a72c279b", - "target" : "673ba059-9825-46ca-ba84-dff84ce97d7e", - "input" : "4bc7d2ac-44e1-4da7-bf62-a7c4581e6670" + "target" : "5d68266a-a032-4a64-ad15-16bc0dbc3fdb", + "input" : "a677f3ba-9863-422f-b763-ad146ec882c5" }, { "source" : "75e5aa66-4ff6-4290-9686-9bd15ea234a5", "output" : "751e462c-4a7e-4db7-abb6-3c3954aa0b71", @@ -5145,8 +5101,8 @@ }, { "source" : "d760c5a1-69dc-48ad-8935-26cb63f1fc9d", "output" : "d67fbd36-3587-4129-9099-83063db6ed0f", - "target" : "7ad9eb11-b9e0-43aa-b8c2-7fd8d1fe5028", - "input" : "7fd113ca-5686-457a-b54e-e878dad3a721" + "target" : "9f8138d1-32e5-4d3a-ab5b-110b3b878928", + "input" : "d80ece7f-c96e-498f-b29b-8d75ade28a14" }, { "source" : "d760c5a1-69dc-48ad-8935-26cb63f1fc9d", "output" : "d67fbd36-3587-4129-9099-83063db6ed0f", @@ -5165,23 +5121,8 @@ }, { "source" : "ed9f6da3-6c9d-4cd7-8bcc-422f264ffe88", "output" : "8f0c00d3-1072-41b0-afbd-9fbb163a1fdd", - "target" : "d760c5a1-69dc-48ad-8935-26cb63f1fc9d", - "input" : "d78b0adb-311f-4d13-ad62-fbd8dd8df448" - }, { - "source" : "bcb49909-de0c-44cd-bf45-ff72dbee5763", - "output" : "e20820ce-fd46-42ac-8fc6-118f60ffdac6", - "target" : "6b012a1a-3a77-4f99-b184-178dbe7b7359", - "input" : "b3272c9d-0cd7-4ed0-88dc-d292c162e670" - }, { - "source" : "7ad9eb11-b9e0-43aa-b8c2-7fd8d1fe5028", - "output" : "414c9114-73a6-4891-93c1-dce8e1c71e41", - "target" : "dbbcd8a2-7620-404f-9556-e5b74ac57494", - "input" : "4e20ba6e-6e15-4370-8a22-23b459baf43a" - }, { - "source" : "7ad9eb11-b9e0-43aa-b8c2-7fd8d1fe5028", - "output" : "414c9114-73a6-4891-93c1-dce8e1c71e41", - "target" : "9f8138d1-32e5-4d3a-ab5b-110b3b878928", - "input" : "d80ece7f-c96e-498f-b29b-8d75ade28a14" + "target" : "810572dc-5527-4c51-9fb6-0e547a723638", + "input" : "ac0ccefd-f1a5-4733-9d52-3fba7b59d19e" }, { "source" : "3e191aaa-856d-4c6e-b21a-0617a051c39c", "output" : "eaa67876-34a0-494d-9b89-5ff6f0743393", @@ -5192,6 +5133,11 @@ "output" : "3ec3b035-fa94-4fb4-951c-25bfdfa491fe", "target" : "abbdb32d-6fb6-4b1f-838a-59d76a38ca05", "input" : "e87f07bb-b75f-4774-880f-ef0b7471aebb" + }, { + "source" : "b41e2c91-1245-4b44-8fe0-add9b847f648", + "output" : "c078f515-d20e-4c72-b49e-f212365e2cc6", + "target" : "357058df-28f1-475c-8731-177c36776289", + "input" : "ba1837bb-2703-4738-bf93-80fc7a81181d" }, { "source" : "8c4764f6-4261-47e7-a940-d4de716a2ad5", "output" : "0e386a25-2cfe-4eee-b337-c64927019041", @@ -5380,13 +5326,13 @@ }, { "source" : "810572dc-5527-4c51-9fb6-0e547a723638", "output" : "c8476e8b-c101-4b97-8de1-1cfd877d96a9", - "target" : "ed9f6da3-6c9d-4cd7-8bcc-422f264ffe88", - "input" : "3dcd1902-d6c3-4bd5-a55c-4cf81bc5b59e" + "target" : "b41e2c91-1245-4b44-8fe0-add9b847f648", + "input" : "5afa2be4-e393-4f0e-a845-43e248bb43a3" }, { "source" : "f70177cd-3eb2-4f62-b878-b73c434d399c", "output" : "127cab9e-75e6-47d7-8744-b13a001a5f97", - "target" : "76c3f045-43fe-4de1-9c75-0d8fe8630357", - "input" : "eaffcf73-2392-47a7-a240-890c55c91473" + "target" : "df9e096e-9225-4c71-b219-f179322f08cc", + "input" : "1a9f3756-c915-4804-94cb-a4d51957bc06" }, { "source" : "cbb962bd-3046-4d85-afd0-a1637f94dc50", "output" : "17e2ed99-0023-42b9-b4c3-5083dd119805", @@ -5405,8 +5351,8 @@ }, { "source" : "9ba303e6-f42e-48ae-9d21-478df67e1704", "output" : "ceb4e534-01ef-4dc2-9c22-46026321a3ec", - "target" : "31495350-5048-44db-b63f-2355d871960e", - "input" : "7f77f127-73d8-45db-9fc5-03a42b90540f" + "target" : "ed9f6da3-6c9d-4cd7-8bcc-422f264ffe88", + "input" : "3dcd1902-d6c3-4bd5-a55c-4cf81bc5b59e" }, { "source" : "9ba303e6-f42e-48ae-9d21-478df67e1704", "output" : "81fdc0a4-19df-4206-b0c7-fd757759d82c", @@ -5585,8 +5531,13 @@ }, { "source" : "f1f8fd49-8b9f-4659-a0a6-8a196a6b15ee", "output" : "75b47bd7-9c07-4380-9425-b538b322868c", - "target" : "e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb", - "input" : "8888652c-cdef-46b5-b2c0-0e1cf06ec950" + "target" : "7858b3ca-b763-43e1-a813-39100536b131", + "input" : "6dacab17-aa51-40ca-8870-136f19bec12e" + }, { + "source" : "b55d8cc3-c130-4638-a35e-1842877bd55b", + "output" : "7cf80042-5928-4e85-8089-a2eb13e2efb7", + "target" : "31495350-5048-44db-b63f-2355d871960e", + "input" : "7f77f127-73d8-45db-9fc5-03a42b90540f" }, { "source" : "be59f719-a0fd-41b0-995b-25087f438353", "output" : "23f0992b-0d4e-4051-a869-27a98296f60e", @@ -5837,11 +5788,6 @@ "output" : "9c73eb58-8157-4e2e-9ef9-9002f8610c1b", "target" : "04bb1645-86dc-4112-ab11-ec9b8ce3eb77", "input" : "549e15de-5e5b-4a59-864d-0bed12687070" - }, { - "source" : "6b012a1a-3a77-4f99-b184-178dbe7b7359", - "output" : "0f0ba4fe-beb3-47f2-968e-a2138634d88c", - "target" : "12e28a17-3d15-479b-bc03-c3e1b1ec882f", - "input" : "89ba6bf0-5d33-456f-9fd2-66ea69c8e320" }, { "source" : "8ebdd425-bba9-49e4-a3de-cca6ffe6f057", "output" : "4dac1c16-7baa-4d3c-b9df-23d2378e45d9", @@ -5900,8 +5846,8 @@ }, { "source" : "31495350-5048-44db-b63f-2355d871960e", "output" : "c69a2d04-3e76-401f-a0b5-622a2dcfa304", - "target" : "810572dc-5527-4c51-9fb6-0e547a723638", - "input" : "ac0ccefd-f1a5-4733-9d52-3fba7b59d19e" + "target" : "d760c5a1-69dc-48ad-8935-26cb63f1fc9d", + "input" : "d78b0adb-311f-4d13-ad62-fbd8dd8df448" }, { "source" : "d0b2a63b-3133-4af7-9bf2-67c2f45e502e", "output" : "032691f2-c91a-4802-8570-3ceb51c67551", @@ -5932,11 +5878,6 @@ "output" : "2eced146-dcb9-4dda-a6a3-9d2e7b847032", "target" : "e5a747dc-60b5-43ae-8885-aac4b409e295", "input" : "640949f1-7633-4785-939e-39b6e5fbe676" - }, { - "source" : "d0b2a63b-3133-4af7-9bf2-67c2f45e502e", - "output" : "291232b0-92a9-4cc2-ba83-ce98ef6b16e6", - "target" : "bcb49909-de0c-44cd-bf45-ff72dbee5763", - "input" : "ca2ffbe0-8e18-487e-891a-4523e91735f0" }, { "source" : "d0b2a63b-3133-4af7-9bf2-67c2f45e502e", "output" : "59e4483e-fce8-41b1-adfd-8918666178a0", @@ -6117,11 +6058,6 @@ "output" : "32198062-4c91-44a0-9bf8-b3f41c658c7c", "target" : "6e4fa5dc-4edb-4f6d-a88e-b9b6d3e0a991", "input" : "dc9f124c-35db-4e94-9eab-cf0a537821de" - }, { - "source" : "f4cdbf68-8c3b-4259-889d-534565f50bd9", - "output" : "dca67595-e8be-4421-994b-12683e426ddd", - "target" : "6b012a1a-3a77-4f99-b184-178dbe7b7359", - "input" : "8b8c1dda-8c18-4d35-adde-c6b95e21e8b7" }, { "source" : "f4cdbf68-8c3b-4259-889d-534565f50bd9", "output" : "19e73c98-bda5-443f-8d84-b01b5fa153b0", @@ -6175,8 +6111,13 @@ }, { "source" : "5d68266a-a032-4a64-ad15-16bc0dbc3fdb", "output" : "8840cdb6-a1cb-4197-a7dc-3767a3715730", - "target" : "a6912265-d4c3-4299-bb50-7ce2b582705e", - "input" : "46974d86-e51e-406a-bcde-3c5dd45b9df4" + "target" : "673ba059-9825-46ca-ba84-dff84ce97d7e", + "input" : "4bc7d2ac-44e1-4da7-bf62-a7c4581e6670" + }, { + "source" : "357058df-28f1-475c-8731-177c36776289", + "output" : "b3ee6691-1180-4c57-89aa-ee9cb770fd06", + "target" : "b55d8cc3-c130-4638-a35e-1842877bd55b", + "input" : "e8035ea0-32fb-4bc9-abfe-1a01a5907268" }, { "source" : "fcafed54-6d3b-4fdb-b185-ce731365963e", "output" : "0f34af58-3bf0-482c-96c0-311b38eff259", @@ -6185,34 +6126,34 @@ }, { "source" : "df9e096e-9225-4c71-b219-f179322f08cc", "output" : "b6b70c4e-8787-4e5b-be03-5ee401b01a19", - "target" : "f70177cd-3eb2-4f62-b878-b73c434d399c", - "input" : "fce55bb5-eef6-4063-a880-95e76d04fba0" + "target" : "76c3f045-43fe-4de1-9c75-0d8fe8630357", + "input" : "eaffcf73-2392-47a7-a240-890c55c91473" }, { "source" : "73317720-637c-4700-9275-2c4db6683cca", "output" : "e94143c0-9ddf-4011-8875-5fb9273aec88", "target" : "1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce", "input" : "cfaf2a25-dd31-4d1b-ad67-37a819079e6d" }, { - "source" : "5cbd330f-b227-4562-94e3-74359e6fadbd", - "output" : "d14aa65d-8a7f-4eb0-bd98-db75247b86e5", - "target" : "8571dc66-1e5f-496a-b31c-6bcf551b55c9", - "input" : "dd053cb7-3f42-4781-beba-47f902d04e64" + "source" : "7858b3ca-b763-43e1-a813-39100536b131", + "output" : "02675804-2a3f-4caf-a0e2-d9060fa1ab42", + "target" : "e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb", + "input" : "8888652c-cdef-46b5-b2c0-0e1cf06ec950" }, { "source" : "673ba059-9825-46ca-ba84-dff84ce97d7e", "output" : "700e98a4-156a-4884-89b5-4074da93647f", - "target" : "5d68266a-a032-4a64-ad15-16bc0dbc3fdb", - "input" : "a677f3ba-9863-422f-b763-ad146ec882c5" + "target" : "a6912265-d4c3-4299-bb50-7ce2b582705e", + "input" : "46974d86-e51e-406a-bcde-3c5dd45b9df4" }, { "source" : "9dea694d-0251-41ce-b5e3-a56518fec971", "output" : "e0eeb0a3-a3ce-40b3-be37-94fec6a586c8", - "target" : "df9e096e-9225-4c71-b219-f179322f08cc", - "input" : "1a9f3756-c915-4804-94cb-a4d51957bc06" + "target" : "f70177cd-3eb2-4f62-b878-b73c434d399c", + "input" : "fce55bb5-eef6-4063-a880-95e76d04fba0" }, { "source" : "abbdb32d-6fb6-4b1f-838a-59d76a38ca05", "output" : "1e3400d0-d3bb-4c2c-b596-98f334276f5a", "target" : "cbb962bd-3046-4d85-afd0-a1637f94dc50", "input" : "91c34b43-f459-4147-950e-c806bb4fc012" } ], - "bendpoints" : "[{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"6b012a1a-3a77-4f99-b184-178dbe7b7359\",\"coordinates\":\"428:54,428:-30,757:-30\"},{\"source\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"target\":\"d84e3c8c-9eb9-4d14-b12a-0b874992bbae\",\"coordinates\":\"1342:254\"},{\"source\":\"e5a747dc-60b5-43ae-8885-aac4b409e295\",\"target\":\"143688cb-63f9-4a2f-824f-4e23d45a2e5b\",\"coordinates\":\"403:306,403:444,350:444\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"0183f9c8-8908-47cc-81ee-b464c4fb5406\",\"coordinates\":\"348:-30,131:-30,131:342\"},{\"source\":\"04bb1645-86dc-4112-ab11-ec9b8ce3eb77\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"275:236,275:521\"},{\"source\":\"d84e3c8c-9eb9-4d14-b12a-0b874992bbae\",\"target\":\"75e5aa66-4ff6-4290-9686-9bd15ea234a5\",\"coordinates\":\"1396:114\"},{\"source\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"target\":\"d0b2a63b-3133-4af7-9bf2-67c2f45e502e\",\"coordinates\":\"1289:314,1571:314,1571:173,1716:173,1716:-62,951:-62,951:153,683:153,673:129,613:150,613:189\"},{\"source\":\"04bb1645-86dc-4112-ab11-ec9b8ce3eb77\",\"target\":\"92900669-3e67-4e87-8f85-0f23134b35ce\",\"coordinates\":\"275:236,275:55\"},{\"source\":\"9f8138d1-32e5-4d3a-ab5b-110b3b878928\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"1280:680,1280:760,640:760,360:760,280:760,280:520\"},{\"source\":\"d5385fbd-7d94-41e7-aac3-ac11fca00edd\",\"target\":\"6e4fa5dc-4edb-4f6d-a88e-b9b6d3e0a991\",\"coordinates\":\"348:138\"},{\"source\":\"f1f8fd49-8b9f-4659-a0a6-8a196a6b15ee\",\"target\":\"e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb\",\"coordinates\":\"1571:255,1571:173,1716:173,1716:-62,951:-62,951:153\"},{\"source\":\"5cb11f89-bdef-45bc-9a15-ffbd2357c828\",\"target\":\"abbdb32d-6fb6-4b1f-838a-59d76a38ca05\",\"coordinates\":\"1650:114\"},{\"source\":\"c13230ae-0961-4023-800b-c2e7db181b46\",\"target\":\"d5385fbd-7d94-41e7-aac3-ac11fca00edd\",\"coordinates\":\"501:138\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"82b3bfba-23d4-464c-bcd9-49b15c927b17\",\"coordinates\":\"348:-30,131:-30,131:430\"},{\"source\":\"be59f719-a0fd-41b0-995b-25087f438353\",\"target\":\"0b601257-b1ab-46eb-aa85-dbdfc53c1b59\",\"coordinates\":\"919:469\"},{\"source\":\"0c9da518-71e1-44d6-81ca-0e2dd34bc6fb\",\"target\":\"8c4764f6-4261-47e7-a940-d4de716a2ad5\",\"coordinates\":\"644:603,644:553\"},{\"source\":\"08c14984-d982-425a-b175-8e84c19bc05d\",\"target\":\"e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb\",\"coordinates\":\"1397:314,1571:314,1571:173,1716:173,1716:-62,951:-62,951:153\"},{\"source\":\"0c9da518-71e1-44d6-81ca-0e2dd34bc6fb\",\"target\":\"0b601257-b1ab-46eb-aa85-dbdfc53c1b59\",\"coordinates\":\"644:603\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"d84e3c8c-9eb9-4d14-b12a-0b874992bbae\",\"coordinates\":\"348:-40,939:-40,939:145,925:145,925:161,939:161,939:171,1342:171\"},{\"source\":\"e5a747dc-60b5-43ae-8885-aac4b409e295\",\"target\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"coordinates\":\"507:303,636:303,636:191,1290:191\"},{\"source\":\"70ccd494-6aab-4f74-b89f-228fd974b459\",\"target\":\"a6912265-d4c3-4299-bb50-7ce2b582705e\",\"coordinates\":\"1505:114,1505:64,1159:64\"},{\"source\":\"d760c5a1-69dc-48ad-8935-26cb63f1fc9d\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"1025:758,280:760,280:520\"},{\"source\":\"d760c5a1-69dc-48ad-8935-26cb63f1fc9d\",\"target\":\"9f8138d1-32e5-4d3a-ab5b-110b3b878928\",\"coordinates\":\"1024:620,1228:620\"},{\"source\":\"7ad9eb11-b9e0-43aa-b8c2-7fd8d1fe5028\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"1126:758,1025:758,280:760,280:520\"},{\"source\":\"d0b2a63b-3133-4af7-9bf2-67c2f45e502e\",\"target\":\"bcb49909-de0c-44cd-bf45-ff72dbee5763\",\"coordinates\":\"564:151,578:124,578:54\"},{\"source\":\"9ba303e6-f42e-48ae-9d21-478df67e1704\",\"target\":\"d760c5a1-69dc-48ad-8935-26cb63f1fc9d\",\"coordinates\":\"458:748,970:748,970:680\"},{\"source\":\"9ba303e6-f42e-48ae-9d21-478df67e1704\",\"target\":\"31495350-5048-44db-b63f-2355d871960e\",\"coordinates\":\"458:748,644:748,644:680\"},{\"source\":\"76c3f045-43fe-4de1-9c75-0d8fe8630357\",\"target\":\"9e1bf355-26f2-4f6b-a98d-f99ae80fb522\",\"coordinates\":\"1227:306,720:306,720:254,775:254\"},{\"source\":\"38a24104-d075-4955-8eb1-fb1c531890fd\",\"target\":\"73317720-637c-4700-9275-2c4db6683cca\",\"coordinates\":\"647:370,647:202,1208:202\"},{\"source\":\"04bb1645-86dc-4112-ab11-ec9b8ce3eb77\",\"target\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"coordinates\":\"275:236,275:55\"},{\"source\":\"673ba059-9825-46ca-ba84-dff84ce97d7e\",\"target\":\"5d68266a-a032-4a64-ad15-16bc0dbc3fdb\",\"coordinates\":\"981:16,981:114\"},{\"source\":\"818b24df-ecd0-4013-bda7-dbaae3519914\",\"target\":\"143688cb-63f9-4a2f-824f-4e23d45a2e5b\",\"coordinates\":\"457:444,350:444\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"d5385fbd-7d94-41e7-aac3-ac11fca00edd\",\"coordinates\":\"419:54\"},{\"source\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"target\":\"75e5aa66-4ff6-4290-9686-9bd15ea234a5\",\"coordinates\":\"1342:254,1342:179\"}]", - "labels" : "[{\"identifier\":\"01988357-448b-4bff-9401-a71729a6fdb0\",\"headerText\":\"optimization\",\"text\":\"\",\"location\":\"141:-19\",\"size\":\"121:134\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"11\"},{\"identifier\":\"19687a62-da2e-491f-99f7-1b662b984f81\",\"headerText\":\"tool execution for design sizing\",\"text\":\"\",\"location\":\"661:163\",\"size\":\"902:267\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"2\"},{\"identifier\":\"35384d42-095c-408c-9fdb-ade3fe904bb6\",\"headerText\":\"clean up\",\"text\":\"\",\"location\":\"141:451\",\"size\":\"121:127\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"8\"},{\"identifier\":\"38f6e4ce-9ea0-4401-82c3-dc4725ca2a76\",\"headerText\":\"vizualization and cpacs\",\"text\":\"\",\"location\":\"591:-19\",\"size\":\"337:135\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"7\"},{\"identifier\":\"6cfe17e1-fd4d-4290-8c36-8ae72bcabbe4\",\"headerText\":\"post operations\",\"text\":\"\",\"location\":\"660:609\",\"size\":\"636:127\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"CENTER\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"5\"},{\"identifier\":\"7a4094ae-38b5-44b8-b126-fcaf4158324a\",\"headerText\":\"moe calibration\",\"text\":\"\",\"location\":\"965:-53\",\"size\":\"743:216\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"CENTER\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"9\"},{\"identifier\":\"7f8b053d-b859-427f-9e4c-5a24f06ee342\",\"headerText\":\"pre-condition\",\"text\":\"\",\"location\":\"289:-19\",\"size\":\"121:134\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"3\"},{\"identifier\":\"94670bfc-02d5-419c-9840-2b9402e805ec\",\"headerText\":\"tool executionn for mission study analysis\",\"text\":\"\",\"location\":\"660:477\",\"size\":\"318:127\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"CENTER\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"6\"},{\"identifier\":\"9634075c-8015-4264-afe8-e88965dbeef2\",\"headerText\":\"pre-sizing\",\"text\":\"\",\"location\":\"442:-19\",\"size\":\"122:135\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"0\"},{\"identifier\":\"bdf074ec-a314-47fc-885c-f85b35e92951\",\"headerText\":\"mission study loop\",\"text\":\"\",\"location\":\"289:477\",\"size\":\"341:259\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"4\"},{\"identifier\":\"e3b9cd44-4f34-45e5-bdee-ef1901fd76bb\",\"headerText\":\"design sizing loop\",\"text\":\"\",\"location\":\"289:163\",\"size\":\"341:267\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"1\"},{\"identifier\":\"ec6cab4d-84d7-45d8-9fe7-eb8b55b12984\",\"headerText\":\"parameter study\",\"text\":\"\",\"location\":\"141:163\",\"size\":\"121:246\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"10\"}]" + "bendpoints" : "[{\"source\":\"7858b3ca-b763-43e1-a813-39100536b131\",\"target\":\"e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb\",\"coordinates\":\"1740:360,1740:180,1740:-40,960:-40,960:140\"},{\"source\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"target\":\"d84e3c8c-9eb9-4d14-b12a-0b874992bbae\",\"coordinates\":\"1320:260,1340:260\"},{\"source\":\"e5a747dc-60b5-43ae-8885-aac4b409e295\",\"target\":\"143688cb-63f9-4a2f-824f-4e23d45a2e5b\",\"coordinates\":\"480:400,420:400,420:560,360:560\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"0183f9c8-8908-47cc-81ee-b464c4fb5406\",\"coordinates\":\"360:-40,120:-40,120:440\"},{\"source\":\"e5a747dc-60b5-43ae-8885-aac4b409e295\",\"target\":\"38a24104-d075-4955-8eb1-fb1c531890fd\",\"coordinates\":\"480:400,600:400\"},{\"source\":\"75e5aa66-4ff6-4290-9686-9bd15ea234a5\",\"target\":\"08c14984-d982-425a-b175-8e84c19bc05d\",\"coordinates\":\"1440:260\"},{\"source\":\"04bb1645-86dc-4112-ab11-ec9b8ce3eb77\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"280:340,280:660\"},{\"source\":\"d84e3c8c-9eb9-4d14-b12a-0b874992bbae\",\"target\":\"75e5aa66-4ff6-4290-9686-9bd15ea234a5\",\"coordinates\":\"1400:180\"},{\"source\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"target\":\"d0b2a63b-3133-4af7-9bf2-67c2f45e502e\",\"coordinates\":\"1320:300,1740:300,1740:-40,960:-40,960:200,600:200\"},{\"source\":\"04bb1645-86dc-4112-ab11-ec9b8ce3eb77\",\"target\":\"92900669-3e67-4e87-8f85-0f23134b35ce\",\"coordinates\":\"280:340,280:60\"},{\"source\":\"9f8138d1-32e5-4d3a-ab5b-110b3b878928\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"1460:840,1460:880,280:880,280:660\"},{\"source\":\"d5385fbd-7d94-41e7-aac3-ac11fca00edd\",\"target\":\"6e4fa5dc-4edb-4f6d-a88e-b9b6d3e0a991\",\"coordinates\":\"360:140\"},{\"source\":\"6a6eac28-780c-449f-a864-f999230d9b6c\",\"target\":\"0c9da518-71e1-44d6-81ca-0e2dd34bc6fb\",\"coordinates\":\"480:720,600:720\"},{\"source\":\"5cb11f89-bdef-45bc-9a15-ffbd2357c828\",\"target\":\"abbdb32d-6fb6-4b1f-838a-59d76a38ca05\",\"coordinates\":\"1640:180\"},{\"source\":\"c13230ae-0961-4023-800b-c2e7db181b46\",\"target\":\"d5385fbd-7d94-41e7-aac3-ac11fca00edd\",\"coordinates\":\"520:140\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"82b3bfba-23d4-464c-bcd9-49b15c927b17\",\"coordinates\":\"360:-40,120:-40,120:540\"},{\"source\":\"be59f719-a0fd-41b0-995b-25087f438353\",\"target\":\"0b601257-b1ab-46eb-aa85-dbdfc53c1b59\",\"coordinates\":\"1020:660,1020:560\"},{\"source\":\"0c9da518-71e1-44d6-81ca-0e2dd34bc6fb\",\"target\":\"8c4764f6-4261-47e7-a940-d4de716a2ad5\",\"coordinates\":\"680:800,680:660\"},{\"source\":\"08c14984-d982-425a-b175-8e84c19bc05d\",\"target\":\"e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb\",\"coordinates\":\"1440:300,1740:300,1740:180,1740:-40,960:-40,960:140\"},{\"source\":\"0c9da518-71e1-44d6-81ca-0e2dd34bc6fb\",\"target\":\"0b601257-b1ab-46eb-aa85-dbdfc53c1b59\",\"coordinates\":\"680:800\"},{\"source\":\"6a6eac28-780c-449f-a864-f999230d9b6c\",\"target\":\"f5c7181a-2754-4f57-a7bd-4e43acae06f6\",\"coordinates\":\"480:720,360:720\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"d84e3c8c-9eb9-4d14-b12a-0b874992bbae\",\"coordinates\":\"360:-40,960:-40,960:120,1340:120\"},{\"source\":\"e5a747dc-60b5-43ae-8885-aac4b409e295\",\"target\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"coordinates\":\"480:400,680:400,680:240,1320:240\"},{\"source\":\"0b601257-b1ab-46eb-aa85-dbdfc53c1b59\",\"target\":\"4592da78-65fe-4637-b390-ddae0327e898\",\"coordinates\":\"600:560\"},{\"source\":\"e5e82fd9-3b02-43e4-85a3-d6f856c0e7bb\",\"target\":\"d0b2a63b-3133-4af7-9bf2-67c2f45e502e\",\"coordinates\":\"600:140\"},{\"source\":\"673ba059-9825-46ca-ba84-dff84ce97d7e\",\"target\":\"a6912265-d4c3-4299-bb50-7ce2b582705e\",\"coordinates\":\"1040:180\"},{\"source\":\"e5a747dc-60b5-43ae-8885-aac4b409e295\",\"target\":\"edd1b5f0-1035-4ab4-8d9a-b413721701f7\",\"coordinates\":\"480:400,360:400\"},{\"source\":\"70ccd494-6aab-4f74-b89f-228fd974b459\",\"target\":\"a6912265-d4c3-4299-bb50-7ce2b582705e\",\"coordinates\":\"1520:180,1520:120,1140:120\"},{\"source\":\"d760c5a1-69dc-48ad-8935-26cb63f1fc9d\",\"target\":\"dbbcd8a2-7620-404f-9556-e5b74ac57494\",\"coordinates\":\"1360:880,280:880,280:660\"},{\"source\":\"9ba303e6-f42e-48ae-9d21-478df67e1704\",\"target\":\"d760c5a1-69dc-48ad-8935-26cb63f1fc9d\",\"coordinates\":\"540:800,540:860,680:860,680:720,1360:720\"},{\"source\":\"38a24104-d075-4955-8eb1-fb1c531890fd\",\"target\":\"73317720-637c-4700-9275-2c4db6683cca\",\"coordinates\":\"680:480,680:240,1240:240\"},{\"source\":\"04bb1645-86dc-4112-ab11-ec9b8ce3eb77\",\"target\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"coordinates\":\"280:340,280:60\"},{\"source\":\"818b24df-ecd0-4013-bda7-dbaae3519914\",\"target\":\"143688cb-63f9-4a2f-824f-4e23d45a2e5b\",\"coordinates\":\"480:560,360:560\"},{\"source\":\"df9e096e-9225-4c71-b219-f179322f08cc\",\"target\":\"76c3f045-43fe-4de1-9c75-0d8fe8630357\",\"coordinates\":\"1220:480,1220:420,780:420,780:360\"},{\"source\":\"f4cdbf68-8c3b-4259-889d-534565f50bd9\",\"target\":\"d5385fbd-7d94-41e7-aac3-ac11fca00edd\",\"coordinates\":\"440:60\"},{\"source\":\"1009dd17-ed78-44e3-bdfe-ca0a84c0b4ce\",\"target\":\"75e5aa66-4ff6-4290-9686-9bd15ea234a5\",\"coordinates\":\"1320:260\"},{\"source\":\"9ba303e6-f42e-48ae-9d21-478df67e1704\",\"target\":\"ed9f6da3-6c9d-4cd7-8bcc-422f264ffe88\",\"coordinates\":\"540:800,540:860,680:860,680:800\"}]", + "labels" : "[{\"identifier\":\"01988357-448b-4bff-9401-a71729a6fdb0\",\"headerText\":\"optimization\",\"text\":\"\",\"location\":\"141:-19\",\"size\":\"121:134\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"11\"},{\"identifier\":\"19687a62-da2e-491f-99f7-1b662b984f81\",\"headerText\":\"tool execution for design sizing\",\"text\":\"\",\"location\":\"700:260\",\"size\":\"1047:279\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"2\"},{\"identifier\":\"35384d42-095c-408c-9fdb-ade3fe904bb6\",\"headerText\":\"clean up\",\"text\":\"\",\"location\":\"141:581\",\"size\":\"121:144\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"8\"},{\"identifier\":\"38f6e4ce-9ea0-4401-82c3-dc4725ca2a76\",\"headerText\":\"vizualization and cpacs\",\"text\":\"\",\"location\":\"619:-20\",\"size\":\"323:135\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"7\"},{\"identifier\":\"6cfe17e1-fd4d-4290-8c36-8ae72bcabbe4\",\"headerText\":\"post operations\",\"text\":\"\",\"location\":\"700:724\",\"size\":\"813:127\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"CENTER\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"5\"},{\"identifier\":\"7a4094ae-38b5-44b8-b126-fcaf4158324a\",\"headerText\":\"moe calibration\",\"text\":\"\",\"location\":\"981:-19\",\"size\":\"743:260\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"CENTER\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"9\"},{\"identifier\":\"7f8b053d-b859-427f-9e4c-5a24f06ee342\",\"headerText\":\"pre-condition\",\"text\":\"\",\"location\":\"300:-19\",\"size\":\"121:134\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"3\"},{\"identifier\":\"94670bfc-02d5-419c-9840-2b9402e805ec\",\"headerText\":\"tool executionn for mission study analysis\",\"text\":\"\",\"location\":\"700:581\",\"size\":\"318:127\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"CENTER\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"6\"},{\"identifier\":\"9634075c-8015-4264-afe8-e88965dbeef2\",\"headerText\":\"pre-sizing\",\"text\":\"\",\"location\":\"460:-20\",\"size\":\"122:135\",\"alpha\":\"177\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"0\"},{\"identifier\":\"bdf074ec-a314-47fc-885c-f85b35e92951\",\"headerText\":\"mission study loop\",\"text\":\"\",\"location\":\"300:581\",\"size\":\"361:280\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"4\"},{\"identifier\":\"e3b9cd44-4f34-45e5-bdee-ef1901fd76bb\",\"headerText\":\"design sizing loop\",\"text\":\"\",\"location\":\"298:261\",\"size\":\"361:278\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"1\"},{\"identifier\":\"ec6cab4d-84d7-45d8-9fe7-eb8b55b12984\",\"headerText\":\"parameter study\",\"text\":\"\",\"location\":\"139:261\",\"size\":\"121:246\",\"alpha\":\"178\",\"colorHeader\":\"0:0:0\",\"colorText\":\"0:0:0\",\"colorBackground\":\"192:192:192\",\"labelPosition\":\"TOPLEFT\",\"textAlignmentType\":\"LEFT\",\"headerAlignmentType\":\"LEFT\",\"border\":\"false\",\"headerSize\":\"10\",\"textSize\":\"9\",\"zIndex\":\"10\"}]" } \ No newline at end of file diff --git a/UNICADOworkflow/UNICADOworkflow_conf.xml b/UNICADOworkflow/UNICADOworkflow_conf.xml deleted file mode 100644 index 88fe77afb9d1266e38fd1dc543603325bc0160af..0000000000000000000000000000000000000000 --- a/UNICADOworkflow/UNICADOworkflow_conf.xml +++ /dev/null @@ -1,83 +0,0 @@ -<ConfigFile Name="UNICADOworkflow_conf.xml"> - <ControlSettings Desc="general control settings"> - <IOFileName>CSR-02.xml</IOFileName> - <IODir>../projects/CSR/CSR-02/</IODir> - <OwnToolLevel>1</OwnToolLevel> - <ConsoleOutputOn Desc="0: Off, 1: only out/err/warn, 2: 1 + info, 3: 2 + debug">1</ConsoleOutputOn> - <LogfileOutputOn Desc="0: Off, 1: only out/err/warn, 2: 1 + info, 3: 2 + debug">1</LogfileOutputOn> - <PlotOutputOn CopyPlottingFiles="1" SwitchOffPlotsDuringIteration="1">1</PlotOutputOn> - <ReportOutputOn SwitchOffReportsDuringIteration="1">1</ReportOutputOn> - <TexReportOn SwitchOffTexDuringIteration="1">1</TexReportOn> - <WriteInfoFiles Default="0" Desc="1: Write info files after each tool execution" onlyAtLastStepOfIteration="0">0</WriteInfoFiles> - <GnuplotScript>UNICADOworkflow_plot.plt</GnuplotScript> - <LogFile>UNICADOworkflow.log</LogFile> - <InkscapePath>DEFAULT</InkscapePath> - <GnuplotPath>DEFAULT</GnuplotPath> - <ProgramSpecific Desc="program-specific control settings"> - <autoUpdate Desc="Parameter for the auto-update functionality of workflow"> - <allowAutoUpdate Default="0" Desc="Switch to allow workflow auto-update if a new version is available (0: auto-update denied, 1: auto-update allowed)">0</allowAutoUpdate> - <backUpConfigFiles Default="1" Desc="Switch to back up all module configuration files before running auto-update (0: back-Up denied, 1: back-Up allowed)">1</backUpConfigFiles> - </autoUpdate> - <preSettings Desc="Parameter for the pre operation functionalities of workflow"> - <setProjectFolderToDefault Default="0" Desc="1: Delete all old files from project folder and set to default">0</setProjectFolderToDefault> - <DeletePlotsBeforeRun Default="1" Desc="1: Old plots and reports are deleted from folders (especially useful for studies)">1</DeletePlotsBeforeRun> - <DeleteEnginesBeforeRun Default="1" Desc="1: Old engine data are deleted from from project folder">1</DeleteEnginesBeforeRun> - <ClearOldLogFilesAtStart Default="1" Desc="Clear all subtool logfiles at start">1</ClearOldLogFilesAtStart> - </preSettings> - <useSettings Desc="Parameter for the design mode operation functionalities of workflow"> - <CheckSettingsForDesignLogic Default="1" Desc="Settings of subprograms are checked">1</CheckSettingsForDesignLogic> - <UseControlSettingsForSubPrograms Default="1" Desc="1: Using General Control Settings for All Subprograms">1</UseControlSettingsForSubPrograms> - <UseRangeTypeSpecificFactors Default="0" Des="Adapt aircraft specific factors in all used modules. Mode 0: No adaptation, Mode 1: based on design range, 2: short-range, 3: mid-range, 4: long-range">0</UseRangeTypeSpecificFactors> - <UseConfigsFromExistingProject Desc="Handles configuration parameter of copy mode of used configuration files and ssh-connection"> - <configCopyMode Default="0" Desc="0: Use current configs 1: Use configs from clean sheet design folder 2: Use configs from engine calibrated design folder 3: Use configs from aero calibrated design folder 4: Use configs from repository folder 5: Use configs from ssh-server">0</configCopyMode> - <nameOfConfigCheckoutDir Default="cleanSheetDesign" Desc="possible are: cleanSheetDesign, engineCalibration, aerodynamicCalibration, withoutCalibration)">cleanSheetDesign</nameOfConfigCheckoutDir> - <configRepositoryName Default="rAIRCRAFTREFERENCES" Desc="SSH-Link to engine repository">rAIRCRAFTREFERENCES</configRepositoryName> - <configRepositoryBranch Default="master" Desc="Branch which to checkout via ssh-git">CSR</configRepositoryBranch> - </UseConfigsFromExistingProject> - <UseEngineFromExistingProject Desc="Handles configuration parameter of copy mode of used engine data and ssh-connection"> - <engineCopyMode Default="0" Desc="0: Use current engine 1: Use engine from clean sheet design folder 2: Use engine from engine calibrated design folder 3: Use engine from aero calibrated design folder 4: Use engine from repository folder 5: Use engine from ssh-server">0</engineCopyMode> - <nameOfEngineCheckoutDir Default="cleanSheetDesign" Desc="possible are: cleanSheetDesign, engineCalibration, aerodynamicCalibration, withoutCalibration)">V2527-A5</nameOfEngineCheckoutDir> - <engineRepositoryName Default="rAIRCRAFTREFERENCES" Desc="SSH-Link to engine repository">rEngines</engineRepositoryName> - <engineRepositoryBranch Default="master" Desc="Branch which to checkout via ssh-git">develop</engineRepositoryBranch> - </UseEngineFromExistingProject> - </useSettings> - <postSettings Desc="Parameter for the post operation functionalities of workflow"> - <SaveConfigsToResultFolder Default="1" Desc="1: Configs of the subprograms are stored in the folder ../workflowResults/[Workflow name]/configFiles">1</SaveConfigsToResultFolder> - <SaveLogFilesToResultFolder Default="1" Desc="1: Logfiles of the subprograms are stored in the folder ../workflowResults/[Workflow name]/reporting/logFiles">1</SaveLogFilesToResultFolder> - <SaveAcftXmlToResultFolder Default="1" Desc="1: Acft-XML is buffered after each iteration" afterEachIteration="1">1</SaveAcftXmlToResultFolder> - </postSettings> - <DesignCase> - <Mode Default="1" Desc="0: Standard (no checks in subprograms), 1: Clean Sheet Design, 2: Design with existing geometry, 3: Mission study analysis without design sizing loop 4: Design sizing without mission study analysis">1</Mode> - <Optimization Default="0" Desc="0: No optimization will performed, 1: Workflow will perform an optimization (Attention! Needs a lot of time!)">0</Optimization> - <ParameterStudy Default="0" Desc="0: No parameter study will performed, 1: Workflow will performe a parameter study (Attention! Needs a lot of time!">0</ParameterStudy> - <ParallelExecution Default="1" Desc="0: No parallel execution is planned (configuration files will be restored at the end), 1: Parallel execution is planned (configuration files will not be restored at the end)">0</ParallelExecution> - <Calibration> - <CalibrateToTargetValues Default="0" Desc="1: use target values for MTOM and OME (see below)">0</CalibrateToTargetValues> - <TargetMTOM Desc="Given MTOM">77000</TargetMTOM> - <TargetOME Desc="Given OME (can be skipped, if already calibrated)" Skip="0">42100</TargetOME> - <FreeVariableOMECal Default="1" Desc="1: massEstimation (fuselage)" ResetAtStart="1">1</FreeVariableOMECal> - <FreeVariableMTOMCal Default="1" Desc="1: engineSizing (FuelFlow), 2:calculatePolar (DragReduction)" ResetBothVariablesAtStart="1" ResetUsedVariableAtStart="1">1</FreeVariableMTOMCal> - <NumberOfIterations Default="4" Desc="Number of iterations after which each MTOM calibration is performed">4</NumberOfIterations> - <MaxIterationsBeforeExitOMECal Default="20" Desc="Number of iterations before the OME calibration is canceled by exit(1)">20</MaxIterationsBeforeExitOMECal> - <TruncErrorFactor Default="5" Desc="Termination criterion: As factor regarding convergenceCriteria (see below)">5</TruncErrorFactor> - <Damp_MTOM_Calibration_Lever Default="0" Desc="Switch for damping MTOM calibration lever arm" x_rel_max="2">0</Damp_MTOM_Calibration_Lever> - <Damp_OME_Calibration_Lever Default="0" Desc="Switch for damping OME calibration lever arm" x_rel_max="2">0</Damp_OME_Calibration_Lever> - </Calibration> - <PayloadRangeAnalysis Desc="for determination of points on PL-Range diagram (not suitable for input of values)"> - <ExitIfMTOMLimitReached AllowedRelOvershoot="0." Default="1" Desc="1: Program abort, if TOM ge MTOM (in Study Mode)">1</ExitIfMTOMLimitReached> - <ExitIfFuelLimitReached AllowedRelOvershoot="0." Default="1" Desc="1: Program abort, if fuel estimated ge MFM">1</ExitIfFuelLimitReached> - <DeltaTOMtoMTOM Desc="MTOM - TOM (study mission)" Unit="kg">0</DeltaTOMtoMTOM> - <DeltaFueltoMFM Desc="MFM - Mission Fuel (study mission)" Unit="kg">0</DeltaFueltoMFM> - <LeastSquareDelta Desc="sqrt(pow(deltaFuel,2)+pow(deltaTOM,2))" Unit="kg">0</LeastSquareDelta> - </PayloadRangeAnalysis> - </DesignCase> - <AutomaticTrim Default="1" Desc="Trim is automated" UseOwnConvergenceCriterion="0" TrimAccuracy="0.0001">1</AutomaticTrim> - </ProgramSpecific> - </ControlSettings> - <ProgramSettings Desc="program settings"> - <convergenceCriteria Default="0.0001" Desc="permitted relative change to achieve convergence" Unit="-">0.0001</convergenceCriteria> - <DampMTOMIteration Default="0" Desc="1: Mean value of the last 2 MTOM values is used to suppress vibrations if necessary.">0</DampMTOMIteration> - <DampOMEIteration Default="0" Desc="1: Mean value of the last 2 OME values is used to suppress vibrations if necessary.">0</DampOMEIteration> - <maxIterationsBeforeExit Default="50" Desc="Number of iterations before the loop is aborted by exit(1)">50</maxIterationsBeforeExit> - </ProgramSettings> -</ConfigFile> \ No newline at end of file diff --git a/UNICADOworkflow/parameterStudy_conf.xml b/UNICADOworkflow/parameter_study_conf.xml similarity index 98% rename from UNICADOworkflow/parameterStudy_conf.xml rename to UNICADOworkflow/parameter_study_conf.xml index 3cf0eb1eee1028fc64468925e86bdaca6b8fd401..5143b85d1e21a9d50e6b2f681b0103df22bc0322 100644 --- a/UNICADOworkflow/parameterStudy_conf.xml +++ b/UNICADOworkflow/parameter_study_conf.xml @@ -1,420 +1,420 @@ -<ConfigFile Name="parameterStudyMgr_conf.xml"> - <ProgramSpecific Desc="programmspezifische Steuereinstellungen"> - <ExitIfSubProgramExits Desc="1: bricht ab, wenn Unterprogramm abbricht, 0: schreibt ungültigen Run in Output und fährt fort" Default="0">0</ExitIfSubProgramExits> - <StartEveryRunWithRefFile Desc="0: execution with files from last loop; 1: Reset project files to pre-execution status - Design mode will be selected from workflow configuration file" Default="1">1</StartEveryRunWithRefFile> - <ResetVariablesAfterRun Desc="1: Nach Studie/Optimierung werden Parameter in Dateien auf Anfangswerte gesetzt" Default="1">1</ResetVariablesAfterRun> - <WriteFailedReqChecksResults Desc="1: Schreibe Ergebnis, 0: Schreibe NAN (bei Run mit exitValue=666 (Requirements Check Failed)" Default="1">1</WriteFailedReqChecksResults> - </ProgramSpecific> - <ProgramSettings Desc="Programmeinstellungen"> - <Mode Desc="Modi: 1: Parametric Study, 2: Full Parametric Study (Attention: this mode is temporary not implemented)" Default="1">1</Mode> - <SensitivityStudySettings Desc="Einstellungen fuer Sensitivitaetsstudien"> - <PathToInputParameterValuesFile Desc="Datei mit Werten fuer Inputparameter (falls Schalter an)">parameterValues.csv</PathToInputParameterValuesFile> - <SaveResults OnlyAiXFile="0" Desc="1: Projektordner fuer jeden Run abspeichern, 0: nur Endresultate" Default="1">1</SaveResults> - <MaxFolderSize Desc="Maximaler Speicherplatz für die Berechnung" Unit="GB" Default="10">10</MaxFolderSize> - <ReproduceOutputFileFromOldStudy Desc="Resume an abborted paramter study" Default="0">0</ReproduceOutputFileFromOldStudy> - <PathToCurrentStudy Desc="Attention: Do not enter here, the path is set automatically!" Default="../">../</PathToCurrentStudy> - <PathToFolderOldStudy Desc="Path to parameter study folder which should be resumed" Default="../">../</PathToFolderOldStudy> - </SensitivityStudySettings> - <ParameterSettings Desc="Eingabe der Parameter (Attribute koennen im PathInXmlFile per basepath/@attributeName angesprochen werden)"> - <InputParameters Desc="Anzahl der Input-/freien Parameter">3</InputParameters> - <InputParameter ID="1"> - <ParameterName Desc="Name des Parameters">fuselage scaling factor</ParameterName> - <RelDirectory UseIODir="1" Desc="Input Directory">../massEstimation</RelDirectory> - <FileName UseIOFile="1" Desc="Input Filename">massEstimation_conf.xml</FileName> - <PathInXmlFile>ConfigFile/ProgramSettings/ScalingFactors/Fuselage</PathInXmlFile> - <ParametricStudy Desc="Einstellungen fuer Parameterstudie (Mode 1 und 2, s.o.)"> - <ReadValuesFromTextFile Desc="0: Steps (s.u.) werden verwendet, 1: Read from File" UseValuesAsAbsolute="0" RelativeToReference="1" Default="0">1</ReadValuesFromTextFile> - <StepSize Desc="Schrittweite (relativ zu Referenzwert, wenn Attr RelativeToReference ON. sonst abolute Werte)" RelativeToReference="1">0.125</StepSize> - <NumberOfStepsUp Desc="Schrittanzahl nach oben" Default="3">2</NumberOfStepsUp> - <NumberOfStepsDown Desc="Schrittanzahl nach unten" Default="3">2</NumberOfStepsDown> - </ParametricStudy> - </InputParameter> - <InputParameter ID="2"> - <ParameterName Desc="Name des Parameters">wing scaling factor</ParameterName> - <RelDirectory UseIODir="1" Desc="Input Directory">../massEstimation</RelDirectory> - <FileName UseIOFile="1" Desc="Input Filename">massEstimation_conf.xml</FileName> - <PathInXmlFile>ConfigFile/ProgramSettings/ScalingFactors/Wing</PathInXmlFile> - <ParametricStudy Desc="Einstellungen fuer Parameterstudie (Mode 1 und 2, s.o.)"> - <ReadValuesFromTextFile Desc="0: Steps (s.u.) werden verwendet, 1: Read from File" UseValuesAsAbsolute="0" RelativeToReference="0" Default="0">1</ReadValuesFromTextFile> - <StepSize Desc="Schrittweite (relativ zu Referenzwert, wenn Attr RelativeToReference ON. sonst abolute Werte)" RelativeToReference="0">0.125</StepSize> - <NumberOfStepsUp Desc="Schrittanzahl nach oben" Default="3">2</NumberOfStepsUp> - <NumberOfStepsDown Desc="Schrittanzahl nach unten" Default="3">2</NumberOfStepsDown> - </ParametricStudy> - </InputParameter> - <InputParameter ID="3"> - <ParameterName Desc="Name des Parameters">center wing factor</ParameterName> - <RelDirectory UseIODir="1" Desc="Input Directory">../massEstimation</RelDirectory> - <FileName UseIOFile="1" Desc="Input Filename">massEstimation_conf.xml</FileName> - <PathInXmlFile>ConfigFile/ProgramSettings/ScalingFactors/CenterWing</PathInXmlFile> - <ParametricStudy Desc="Einstellungen fuer Parameterstudie (Mode 1 und 2, s.o.)"> - <ReadValuesFromTextFile Desc="0: Steps (s.u.) werden verwendet, 1: Read from File" UseValuesAsAbsolute="1" RelativeToReference="0" Default="0">1</ReadValuesFromTextFile> - <StepSize Desc="Schrittweite (relativ zu Referenzwert, wenn Attr RelativeToReference ON. sonst abolute Werte)" RelativeToReference="0">0.125</StepSize> - <NumberOfStepsUp Desc="Schrittanzahl nach oben" Default="3">2</NumberOfStepsUp> - <NumberOfStepsDown Desc="Schrittanzahl nach unten" Default="3">2</NumberOfStepsDown> - </ParametricStudy> - </InputParameter> - <OutputParameters Desc="Anzahl der Outputparameter, die mitgetrackt werden">60</OutputParameters> - <OutputParameter ID="1"> - <ParameterName Desc="Name des Parameters">Wing area</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Aerodynamics/ReferenceValues/S_ref</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="2"> - <ParameterName Desc="Name des Parameters">Wing span</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Aerodynamics/ReferenceValues/b</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="3"> - <ParameterName Desc="Name des Parameters">HTP area</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/StabilityAndControlCharacteristics/Stabiliser/S_ref</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="4"> - <ParameterName Desc="Name des Parameters">VTP area</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/StabilityAndControlCharacteristics/VerticalTail/S_ref</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="5"> - <ParameterName Desc="Name des Parameters">T/O thrust@SL (eq. thrust)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/EquivalentThrust</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="6"> - <ParameterName Desc="Name des Parameters">MTOM</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MTOM</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="7"> - <ParameterName Desc="Name des Parameters">MZFM</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MZFM</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="8"> - <ParameterName Desc="Name des Parameters">MLM</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MLM</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="9"> - <ParameterName Desc="Name des Parameters">OME</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/OME</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="10"> - <ParameterName Desc="Name des Parameters">Wing mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Wing/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="11"> - <ParameterName Desc="Name des Parameters">Fuselage mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Fuselage/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="12"> - <ParameterName Desc="Name des Parameters">HTP mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Empennage/Tailplane/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="13"> - <ParameterName Desc="Name des Parameters">VTP mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Empennage/Fin/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="14"> - <ParameterName Desc="Name des Parameters">Landing gear mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/LandingGear/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="15"> - <ParameterName Desc="Name des Parameters">Pylons mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Pylons/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="16"> - <ParameterName Desc="Name des Parameters">Power unit mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/PowerUnit/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="17"> - <ParameterName Desc="Name des Parameters">Systems mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Systems/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="18"> - <ParameterName Desc="Name des Parameters">Furnishings mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Furnishings/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="19"> - <ParameterName Desc="Name des Parameters">Operators items mass</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/OperatorsItems/Mass</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="20"> - <ParameterName Desc="Name des Parameters">Tripfuel (design mission)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/DesignMission/Tripfuel</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="21"> - <ParameterName Desc="Name des Parameters">Total fuel (design mission)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/DesignMission/Missionfuel</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="22"> - <ParameterName Desc="Name des Parameters">Tripfuel (study mission)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/StudyMission/Tripfuel</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="23"> - <ParameterName Desc="Name des Parameters">Total fuel (study mission)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/StudyMission/Missionfuel</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="24"> - <ParameterName Desc="Name des Parameters">LoverD</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Aerodynamics/LoverD_Cruise</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="25"> - <ParameterName Desc="Name des Parameters">CL @ opt. cruise</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Aerodynamics/LiftCoefficients/C_LoptimumCruise</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="26"> - <ParameterName Desc="Name des Parameters">CD @ opt. cruise</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Aerodynamics/DragCoefficients/C_D_total</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="27"> - <ParameterName Desc="Name des Parameters">T-O thrust</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumTakeOff/Thrust</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="28"> - <ParameterName Desc="Name des Parameters">T-O SFC</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumTakeOff/TSFC</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="29"> - <ParameterName Desc="Name des Parameters">Go-around thrust</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumGoAround/Thrust</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="30"> - <ParameterName Desc="Name des Parameters">Go-around SFC</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumGoAround/TSFC</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="31"> - <ParameterName Desc="Name des Parameters">Max. cont. thrust (bucket)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrust/Thrust</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="32"> - <ParameterName Desc="Name des Parameters">Max. cont. SFC (bucket)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrust/TSFC</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="33"> - <ParameterName Desc="Name des Parameters">Max. cont. thrust (bucket,offtakes)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrustOfftakes/Thrust</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="34"> - <ParameterName Desc="Name des Parameters">Max. cont. SFC (bucket,offtakes)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrustOfftakes/TSFC</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="35"> - <ParameterName Desc="Name des Parameters">TODR</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/TakeOff/TakeOffDistance_Normal</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="36"> - <ParameterName Desc="Name des Parameters">LDN</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/Landing/LandingDistance</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="37"> - <ParameterName Desc="Name des Parameters">V (approach)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/Performance/Landing/V_Approach</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="38"> - <ParameterName Desc="Name des Parameters">NRC (total)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/NonRecurringCosts/NRCTotal</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="39"> - <ParameterName Desc="Name des Parameters">RC (total)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/RecurringCosts/RCTotal</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="40"> - <ParameterName Desc="Name des Parameters">DOC (100 passenger*km)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/OperatingCosts/DirectOperatingCosts/DOC_total/DOC_100ASK</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="41"> - <ParameterName Desc="Name des Parameters">COC (100 passenger*km)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/OperatingCosts/DirectOperatingCosts/COC_total/COC_100ASK</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="42"> - <ParameterName Desc="Name des Parameters">Price of airplane</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/MonetaryValues/Prices/PriceAirplane</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="43"> - <ParameterName Desc="Name des Parameters">H2O (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/H2O</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="44"> - <ParameterName Desc="Name des Parameters">SO2 (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/SO2</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="45"> - <ParameterName Desc="Name des Parameters">HC (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/HC</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="46"> - <ParameterName Desc="Name des Parameters">CO (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/CO</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="47"> - <ParameterName Desc="Name des Parameters">NOx (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/NOx</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="48"> - <ParameterName Desc="Name des Parameters">PM10 (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/PM10</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="49"> - <ParameterName Desc="Name des Parameters">CO2 (ICAO LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/CO2</PathInXmlFile> - - </OutputParameter> - <OutputParameter ID="50"> - <ParameterName Desc="Name des Parameters">H2O (LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/H2O</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="51"> - <ParameterName Desc="Name des Parameters">SO2 (LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/SO2</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="52"> - <ParameterName Desc="Name des Parameters">HC (LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/HC</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="53"> - <ParameterName Desc="Name des Parameters">CO (LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/CO</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="54"> - <ParameterName Desc="Name des Parameters">NOx (LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/NOx</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="55"> - <ParameterName Desc="Name des Parameters">PM10 (LTO)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/PM10</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="56"> - <ParameterName Desc="Name des Parameters">CO2 (cruise)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/CO2</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="57"> - <ParameterName Desc="Name des Parameters">H2O (cruise)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/H2O</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="58"> - <ParameterName Desc="Name des Parameters">CO (cruise)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/SO2</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="59"> - <ParameterName Desc="Name des Parameters">NOx (cruise)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/NOx</PathInXmlFile> - </OutputParameter> - <OutputParameter ID="60"> - <ParameterName Desc="Name des Parameters">PM10 (cruise)</ParameterName> - <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> - <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> - <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/PM10</PathInXmlFile> - </OutputParameter> - </ParameterSettings> - </ProgramSettings> +<ConfigFile Name="parameter_study_conf.xml"> + <ProgramSpecific Desc="programmspezifische Steuereinstellungen"> + <ExitIfSubProgramExits Desc="1: bricht ab, wenn Unterprogramm abbricht, 0: schreibt ungültigen Run in Output und fährt fort" Default="0">0</ExitIfSubProgramExits> + <StartEveryRunWithRefFile Desc="0: execution with files from last loop; 1: Reset project files to pre-execution status - Design mode will be selected from workflow configuration file" Default="1">1</StartEveryRunWithRefFile> + <ResetVariablesAfterRun Desc="1: Nach Studie/Optimierung werden Parameter in Dateien auf Anfangswerte gesetzt" Default="1">1</ResetVariablesAfterRun> + <WriteFailedReqChecksResults Desc="1: Schreibe Ergebnis, 0: Schreibe NAN (bei Run mit exitValue=666 (Requirements Check Failed)" Default="1">1</WriteFailedReqChecksResults> + </ProgramSpecific> + <ProgramSettings Desc="Programmeinstellungen"> + <Mode Desc="Modi: 1: Parametric Study, 2: Full Parametric Study (Attention: this mode is temporary not implemented)" Default="1">1</Mode> + <SensitivityStudySettings Desc="Einstellungen fuer Sensitivitaetsstudien"> + <PathToInputParameterValuesFile Desc="Datei mit Werten fuer Inputparameter (falls Schalter an)">parameter_study_values.csv</PathToInputParameterValuesFile> + <SaveResults OnlyAiXFile="0" Desc="1: Projektordner fuer jeden Run abspeichern, 0: nur Endresultate" Default="1">1</SaveResults> + <MaxFolderSize Desc="Maximaler Speicherplatz für die Berechnung" Unit="GB" Default="10">10</MaxFolderSize> + <ReproduceOutputFileFromOldStudy Desc="Resume an abborted paramter study" Default="0">0</ReproduceOutputFileFromOldStudy> + <PathToCurrentStudy Desc="Attention: Do not enter here, the path is set automatically!" Default="../">../</PathToCurrentStudy> + <PathToFolderOldStudy Desc="Path to parameter study folder which should be resumed" Default="../">../</PathToFolderOldStudy> + </SensitivityStudySettings> + <ParameterSettings Desc="Eingabe der Parameter (Attribute koennen im PathInXmlFile per basepath/@attributeName angesprochen werden)"> + <InputParameters Desc="Anzahl der Input-/freien Parameter">3</InputParameters> + <InputParameter ID="1"> + <ParameterName Desc="Name des Parameters">fuselage scaling factor</ParameterName> + <RelDirectory UseIODir="1" Desc="Input Directory">../massEstimation</RelDirectory> + <FileName UseIOFile="1" Desc="Input Filename">massEstimation_conf.xml</FileName> + <PathInXmlFile>ConfigFile/ProgramSettings/ScalingFactors/Fuselage</PathInXmlFile> + <ParametricStudy Desc="Einstellungen fuer Parameterstudie (Mode 1 und 2, s.o.)"> + <ReadValuesFromTextFile Desc="0: Steps (s.u.) werden verwendet, 1: Read from File" UseValuesAsAbsolute="0" RelativeToReference="1" Default="0">1</ReadValuesFromTextFile> + <StepSize Desc="Schrittweite (relativ zu Referenzwert, wenn Attr RelativeToReference ON. sonst abolute Werte)" RelativeToReference="1">0.125</StepSize> + <NumberOfStepsUp Desc="Schrittanzahl nach oben" Default="3">2</NumberOfStepsUp> + <NumberOfStepsDown Desc="Schrittanzahl nach unten" Default="3">2</NumberOfStepsDown> + </ParametricStudy> + </InputParameter> + <InputParameter ID="2"> + <ParameterName Desc="Name des Parameters">wing scaling factor</ParameterName> + <RelDirectory UseIODir="1" Desc="Input Directory">../massEstimation</RelDirectory> + <FileName UseIOFile="1" Desc="Input Filename">massEstimation_conf.xml</FileName> + <PathInXmlFile>ConfigFile/ProgramSettings/ScalingFactors/Wing</PathInXmlFile> + <ParametricStudy Desc="Einstellungen fuer Parameterstudie (Mode 1 und 2, s.o.)"> + <ReadValuesFromTextFile Desc="0: Steps (s.u.) werden verwendet, 1: Read from File" UseValuesAsAbsolute="0" RelativeToReference="0" Default="0">1</ReadValuesFromTextFile> + <StepSize Desc="Schrittweite (relativ zu Referenzwert, wenn Attr RelativeToReference ON. sonst abolute Werte)" RelativeToReference="0">0.125</StepSize> + <NumberOfStepsUp Desc="Schrittanzahl nach oben" Default="3">2</NumberOfStepsUp> + <NumberOfStepsDown Desc="Schrittanzahl nach unten" Default="3">2</NumberOfStepsDown> + </ParametricStudy> + </InputParameter> + <InputParameter ID="3"> + <ParameterName Desc="Name des Parameters">center wing factor</ParameterName> + <RelDirectory UseIODir="1" Desc="Input Directory">../massEstimation</RelDirectory> + <FileName UseIOFile="1" Desc="Input Filename">massEstimation_conf.xml</FileName> + <PathInXmlFile>ConfigFile/ProgramSettings/ScalingFactors/CenterWing</PathInXmlFile> + <ParametricStudy Desc="Einstellungen fuer Parameterstudie (Mode 1 und 2, s.o.)"> + <ReadValuesFromTextFile Desc="0: Steps (s.u.) werden verwendet, 1: Read from File" UseValuesAsAbsolute="1" RelativeToReference="0" Default="0">1</ReadValuesFromTextFile> + <StepSize Desc="Schrittweite (relativ zu Referenzwert, wenn Attr RelativeToReference ON. sonst abolute Werte)" RelativeToReference="0">0.125</StepSize> + <NumberOfStepsUp Desc="Schrittanzahl nach oben" Default="3">2</NumberOfStepsUp> + <NumberOfStepsDown Desc="Schrittanzahl nach unten" Default="3">2</NumberOfStepsDown> + </ParametricStudy> + </InputParameter> + <OutputParameters Desc="Anzahl der Outputparameter, die mitgetrackt werden">60</OutputParameters> + <OutputParameter ID="1"> + <ParameterName Desc="Name des Parameters">Wing area</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Aerodynamics/ReferenceValues/S_ref</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="2"> + <ParameterName Desc="Name des Parameters">Wing span</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Aerodynamics/ReferenceValues/b</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="3"> + <ParameterName Desc="Name des Parameters">HTP area</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/StabilityAndControlCharacteristics/Stabiliser/S_ref</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="4"> + <ParameterName Desc="Name des Parameters">VTP area</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/StabilityAndControlCharacteristics/VerticalTail/S_ref</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="5"> + <ParameterName Desc="Name des Parameters">T/O thrust@SL (eq. thrust)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/EquivalentThrust</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="6"> + <ParameterName Desc="Name des Parameters">MTOM</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MTOM</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="7"> + <ParameterName Desc="Name des Parameters">MZFM</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MZFM</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="8"> + <ParameterName Desc="Name des Parameters">MLM</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MLM</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="9"> + <ParameterName Desc="Name des Parameters">OME</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/OME</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="10"> + <ParameterName Desc="Name des Parameters">Wing mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Wing/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="11"> + <ParameterName Desc="Name des Parameters">Fuselage mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Fuselage/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="12"> + <ParameterName Desc="Name des Parameters">HTP mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Empennage/Tailplane/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="13"> + <ParameterName Desc="Name des Parameters">VTP mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Empennage/Fin/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="14"> + <ParameterName Desc="Name des Parameters">Landing gear mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/LandingGear/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="15"> + <ParameterName Desc="Name des Parameters">Pylons mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Pylons/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="16"> + <ParameterName Desc="Name des Parameters">Power unit mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/PowerUnit/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="17"> + <ParameterName Desc="Name des Parameters">Systems mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Systems/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="18"> + <ParameterName Desc="Name des Parameters">Furnishings mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/Furnishings/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="19"> + <ParameterName Desc="Name des Parameters">Operators items mass</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MassesAndLoadings/MassBreakdown/OperatorsItems/Mass</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="20"> + <ParameterName Desc="Name des Parameters">Tripfuel (design mission)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/DesignMission/Tripfuel</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="21"> + <ParameterName Desc="Name des Parameters">Total fuel (design mission)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/DesignMission/Missionfuel</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="22"> + <ParameterName Desc="Name des Parameters">Tripfuel (study mission)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/StudyMission/Tripfuel</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="23"> + <ParameterName Desc="Name des Parameters">Total fuel (study mission)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/MissionAnalysis/StudyMission/Missionfuel</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="24"> + <ParameterName Desc="Name des Parameters">LoverD</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Aerodynamics/LoverD_Cruise</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="25"> + <ParameterName Desc="Name des Parameters">CL @ opt. cruise</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Aerodynamics/LiftCoefficients/C_LoptimumCruise</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="26"> + <ParameterName Desc="Name des Parameters">CD @ opt. cruise</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Aerodynamics/DragCoefficients/C_D_total</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="27"> + <ParameterName Desc="Name des Parameters">T-O thrust</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumTakeOff/Thrust</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="28"> + <ParameterName Desc="Name des Parameters">T-O SFC</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumTakeOff/TSFC</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="29"> + <ParameterName Desc="Name des Parameters">Go-around thrust</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumGoAround/Thrust</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="30"> + <ParameterName Desc="Name des Parameters">Go-around SFC</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumGoAround/TSFC</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="31"> + <ParameterName Desc="Name des Parameters">Max. cont. thrust (bucket)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrust/Thrust</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="32"> + <ParameterName Desc="Name des Parameters">Max. cont. SFC (bucket)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrust/TSFC</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="33"> + <ParameterName Desc="Name des Parameters">Max. cont. thrust (bucket,offtakes)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrustOfftakes/Thrust</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="34"> + <ParameterName Desc="Name des Parameters">Max. cont. SFC (bucket,offtakes)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Propulsion/Engine@1/ScaledPerformanceCharacteristics/MaximumContinous/BucketThrustOfftakes/TSFC</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="35"> + <ParameterName Desc="Name des Parameters">TODR</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/TakeOff/TakeOffDistance_Normal</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="36"> + <ParameterName Desc="Name des Parameters">LDN</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/Landing/LandingDistance</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="37"> + <ParameterName Desc="Name des Parameters">V (approach)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/Performance/Landing/V_Approach</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="38"> + <ParameterName Desc="Name des Parameters">NRC (total)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/NonRecurringCosts/NRCTotal</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="39"> + <ParameterName Desc="Name des Parameters">RC (total)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/RecurringCosts/RCTotal</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="40"> + <ParameterName Desc="Name des Parameters">DOC (100 passenger*km)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/OperatingCosts/DirectOperatingCosts/DOC_total/DOC_100ASK</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="41"> + <ParameterName Desc="Name des Parameters">COC (100 passenger*km)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MonetaryValues/LCC/OperatingCosts/DirectOperatingCosts/COC_total/COC_100ASK</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="42"> + <ParameterName Desc="Name des Parameters">Price of airplane</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/MonetaryValues/Prices/PriceAirplane</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="43"> + <ParameterName Desc="Name des Parameters">H2O (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/H2O</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="44"> + <ParameterName Desc="Name des Parameters">SO2 (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/SO2</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="45"> + <ParameterName Desc="Name des Parameters">HC (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/HC</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="46"> + <ParameterName Desc="Name des Parameters">CO (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/CO</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="47"> + <ParameterName Desc="Name des Parameters">NOx (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/NOx</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="48"> + <ParameterName Desc="Name des Parameters">PM10 (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/PM10</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="49"> + <ParameterName Desc="Name des Parameters">CO2 (ICAO LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/ICAO_LTO/CO2</PathInXmlFile> + + </OutputParameter> + <OutputParameter ID="50"> + <ParameterName Desc="Name des Parameters">H2O (LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/H2O</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="51"> + <ParameterName Desc="Name des Parameters">SO2 (LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/SO2</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="52"> + <ParameterName Desc="Name des Parameters">HC (LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/HC</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="53"> + <ParameterName Desc="Name des Parameters">CO (LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/CO</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="54"> + <ParameterName Desc="Name des Parameters">NOx (LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/NOx</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="55"> + <ParameterName Desc="Name des Parameters">PM10 (LTO)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/LTO/PM10</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="56"> + <ParameterName Desc="Name des Parameters">CO2 (cruise)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/CO2</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="57"> + <ParameterName Desc="Name des Parameters">H2O (cruise)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/H2O</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="58"> + <ParameterName Desc="Name des Parameters">CO (cruise)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/SO2</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="59"> + <ParameterName Desc="Name des Parameters">NOx (cruise)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/NOx</PathInXmlFile> + </OutputParameter> + <OutputParameter ID="60"> + <ParameterName Desc="Name des Parameters">PM10 (cruise)</ParameterName> + <RelDirectory UseIODir="0" Desc="">../projects/CSR/CSR-02/</RelDirectory> + <FileName UseIOFile="0" Desc="">CSR-02.xml</FileName> + <PathInXmlFile>AcftExchangeFile/EcologicalValues/Emissions/Operations/OperationComponents/Mission/Cruise/PM10</PathInXmlFile> + </OutputParameter> + </ParameterSettings> + </ProgramSettings> </ConfigFile> \ No newline at end of file diff --git a/UNICADOworkflow/parameterStudyValues.csv b/UNICADOworkflow/parameter_study_values.csv similarity index 97% rename from UNICADOworkflow/parameterStudyValues.csv rename to UNICADOworkflow/parameter_study_values.csv index b0097800c0e54e7eed671dcdbda729d5aa8c807a..eca223e8facd50d0bcb769171da15b6a7777ee08 100644 --- a/UNICADOworkflow/parameterStudyValues.csv +++ b/UNICADOworkflow/parameter_study_values.csv @@ -1,3 +1,3 @@ -wing scaling factor;0.25;0.125;-0.125;-0.25; -fuselage scaling factor;0.25;0.125;-0.125;-0.25; -center wing factor;1.03;0.93;0.73;0.63; +wing scaling factor;0.25;0.125;-0.125;-0.25; +fuselage scaling factor;0.25;0.125;-0.125;-0.25; +center wing factor;1.03;0.93;0.73;0.63; diff --git a/UNICADOworkflow/rangeTypeSpecificFactors.xml b/UNICADOworkflow/range_type_specific_factors.xml similarity index 75% rename from UNICADOworkflow/rangeTypeSpecificFactors.xml rename to UNICADOworkflow/range_type_specific_factors.xml index 1c6394681de12ef1db786972dd885617ac435988..021f3240154f1c28bff688fcc65b05186293de2b 100644 --- a/UNICADOworkflow/rangeTypeSpecificFactors.xml +++ b/UNICADOworkflow/range_type_specific_factors.xml @@ -1,636 +1,497 @@ -<configuration> - <initialSizing> - <number_of_factors>9</number_of_factors> - <factor ID="1"> - <path>/module_configuration_file/program_settings/General/Cf</path> - <value> - <short-range>0.002</short-range> - <medium-range>0.0025</medium-range> - <long-range>0.003</long-range> - </value> - </factor> - <factor ID="2"> - <path>/module_configuration_file/program_settings/General/FamilyThrustScaling</path> - <value> - <short-range>1.010</short-range> - <medium-range>1.000</medium-range> - <long-range>1.000</long-range> - </value> - </factor> - <factor ID="3"> - <path>/module_configuration_file/program_settings/Climb/deltaCD0_app_flaps</path> - <value> - <short-range>0.03</short-range> - <medium-range>0.04</medium-range> - <long-range>0.05</long-range> - </value> - </factor> - <factor ID="4"> - <path>/module_configuration_file/program_settings/Climb/MaxcontMaxto</path> - <value> - <short-range>0.8967</short-range> - <medium-range>0.92</medium-range> - <long-range>0.94</long-range> - </value> - </factor> - <factor ID="5"> - <path>/module_configuration_file/program_settings/Cruise/McrMto</path> - <value> - <short-range>0.956</short-range> - <medium-range>0.956</medium-range> - <long-range>0.924</long-range> - </value> - </factor> - <factor ID="6"> - <path>/module_configuration_file/program_settings/Cruise/maxInitialCruiseCL</path> - <value> - <short-range>0.5516</short-range> - <medium-range>0.55</medium-range> - <long-range>0.5</long-range> - </value> - </factor> - <factor ID="7"> - <path>/module_configuration_file/program_settings/Masses/Fractions/mf_to</path> - <value> - <short-range>0.99</short-range> - <medium-range>0.98</medium-range> - <long-range>0.97</long-range> - </value> - </factor> - <factor ID="8"> - <path>/module_configuration_file/program_settings/Masses/Fractions/mf_descent</path> - <value> - <short-range>0.995</short-range> - <medium-range>0.9925</medium-range> - <long-range>0.99</long-range> - </value> - </factor> - <factor ID="9"> - <path>/module_configuration_file/program_settings/Masses/Fractions/mf_land</path> - <value> - <short-range>0.997</short-range> - <medium-range>0.9945</medium-range> - <long-range>0.992</long-range> - </value> - </factor> - </initialSizing> - <fuselageDesign> - <number_of_factors>35</number_of_factors> - <factor ID="1"> - <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=1/aisle/width</path> - <value> - <short-range>0.6858</short-range> - <medium-range>0.97</medium-range> - <long-range>0.97</long-range> - </value> - </factor> - <factor ID="2"> - <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=2/aisle/width</path> - <value> - <short-range>0.635</short-range> - <medium-range>0.635</medium-range> - <long-range>0.7</long-range> - </value> - </factor> - <factor ID="3"> - <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=2/aisle/height</path> - <value> - <short-range>2.13</short-range> - <medium-range>2.11</medium-range> - <long-range>2.13</long-range> - </value> - </factor> - <factor ID="4"> - <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=3/aisle/width</path> - <value> - <short-range>0.4826</short-range> - <medium-range>0.5334</medium-range> - <long-range>0.5334</long-range> - </value> - </factor> - <factor ID="5"> - <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=3/aisle/height</path> - <value> - <short-range>2.13</short-range> - <medium-range>2.1</medium-range> - <long-range>2.13</long-range> - </value> - </factor> - <factor ID="6"> - <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=3/PAXperSteward</path> - <value> - <short-range>50</short-range> - <medium-range>50</medium-range> - <long-range>40</long-range> - </value> - </factor> - <factor ID="7"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=1/pitch</path> - <value> - <short-range>0.8128</short-range> - <medium-range>0.86</medium-range> - <long-range>0.8128</long-range> - </value> - </factor> - <factor ID="8"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=1/depth</path> - <value> - <short-range>0.75</short-range> - <medium-range>0.6731</medium-range> - <long-range>0.6731</long-range> - </value> - </factor> - <factor ID="9"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=1/width</path> - <value> - <short-range>0.499533</short-range> - <medium-range>0.508</medium-range> - <long-range>0.527</long-range> - </value> - </factor> - <factor ID="10"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=1/heightSeat</path> - <value> - <short-range>0.95</short-range> - <medium-range>0.94</medium-range> - <long-range>0.94</long-range> - </value> - </factor> - <factor ID="11"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=1/heightHead</path> - <value> - <short-range>1.1481</short-range> - <medium-range>1.6</medium-range> - <long-range>1.45</long-range> - </value> - </factor> - <factor ID="12"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=2/pitch</path> - <value> - <short-range>0.915</short-range> - <medium-range>0.97</medium-range> - <long-range>1.524</long-range> - </value> - </factor> - <factor ID="13"> - <path>/module_configuration_file/program_settings/Seats/seat/depth</path> - <value> - <short-range>0.84</short-range> - <medium-range>0.84</medium-range> - <long-range>0.84</long-range> - </value> - </factor> - <factor ID="14"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=2/width</path> - <value> - <short-range>0.7239</short-range> - <medium-range>0.7239</medium-range> - <long-range>0.7239</long-range> - </value> - </factor> - <factor ID="15"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=2/heightSeat</path> - <value> - <short-range>0.94</short-range> - <medium-range>0.94</medium-range> - <long-range>0.94</long-range> - </value> - </factor> - <factor ID="16"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=2/heightHead</path> - <value> - <short-range>1.1481</short-range> - <medium-range>1.1481</medium-range> - <long-range>1.1481</long-range> - </value> - </factor> - <factor ID="17"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=3/pitch</path> - <value> - <short-range>2.</short-range> - <medium-range>2.</medium-range> - <long-range>1.5</long-range> - </value> - </factor> - <factor ID="18"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=3/depth</path> - <value> - <short-range>0.7747</short-range> - <medium-range>0.7747</medium-range> - <long-range>0.7747</long-range> - </value> - </factor> - <factor ID="19"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=3/width</path> - <value> - <short-range>0.7239</short-range> - <medium-range>0.7239</medium-range> - <long-range>0.67</long-range> - </value> - </factor> - <factor ID="20"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=3/heightSeat</path> - <value> - <short-range>0.94</short-range> - <medium-range>0.94</medium-range> - <long-range>0.94</long-range> - </value> - </factor> - <factor ID="21"> - <path>/module_configuration_file/program_settings/Seats/seat@ID=3/heightHead</path> - <value> - <short-range>1.1481</short-range> - <medium-range>1.1481</medium-range> - <long-range>1.1481</long-range> - </value> - </factor> - <factor ID="22"> - <path>/module_configuration_file/program_settings/Exits/NumberOfExitTypes</path> - <value> - <short-range>7</short-range> - <medium-range>2</medium-range> - <long-range>5</long-range> - </value> - </factor> - <factor ID="23"> - <path>/module_configuration_file/program_settings/Exits/ExitType@ID=2</path> - <value> - <short-range>Type B</short-range> - <medium-range>Type III</medium-range> - <long-range>Type I</long-range> - </value> - </factor> - <factor ID="24"> - <path>/module_configuration_file/program_settings/Exits/ExitType@ID=3</path> - <value> - <short-range>Type C</short-range> - <medium-range>0</medium-range> - <long-range>Type II</long-range> - </value> - </factor> - <factor ID="25"> - <path>/module_configuration_file/program_settings/Exits/ExitType@ID=4</path> - <value> - <short-range>Type I</short-range> - <medium-range>0</medium-range> - <long-range>Type III</long-range> - </value> - </factor> - <factor ID="26"> - <path>/module_configuration_file/program_settings/Exits/ExitType@ID=5</path> - <value> - <short-range>Type II</short-range> - <medium-range>0</medium-range> - <long-range>Type IV</long-range> - </value> - </factor> - <factor ID="27"> - <path>/module_configuration_file/program_settings/Exits/ExitType@ID=6</path> - <value> - <short-range>Type III</short-range> - <medium-range>0</medium-range> - <long-range>0</long-range> - </value> - </factor> - <factor ID="28"> - <path>/module_configuration_file/program_settings/Exits/ExitType@ID=7</path> - <value> - <short-range>Type IV</short-range> - <medium-range>0</medium-range> - <long-range>0</long-range> - </value> - </factor> - <factor ID="29"> - <path>/module_configuration_file/program_settings/Exits/Exit@ID=Type A/Height</path> - <value> - <short-range>1.83</short-range> - <medium-range>1.83</medium-range> - <long-range>1.93</long-range> - </value> - </factor> - <factor ID="30"> - <path>/module_configuration_file/program_settings/Miscellaneous/systemHeight</path> - <value> - <short-range>0.125</short-range> - <medium-range>0.3</medium-range> - <long-range>0.3</long-range> - </value> - </factor> - <factor ID="31"> - <path>/module_configuration_file/program_settings/Miscellaneous/wallThickness</path> - <value> - <short-range>0.1575</short-range> - <medium-range>0.155</medium-range> - <long-range>0.1575</long-range> - </value> - </factor> - <factor ID="32"> - <path>/module_configuration_file/program_settings/Miscellaneous/artificialZOffset</path> - <value> - <short-range>0.</short-range> - <medium-range>0.2</medium-range> - <long-range>0.</long-range> - </value> - </factor> - <factor ID="33"> - <path>/module_configuration_file/program_settings/Miscellaneous/Wingbox/relStartPoint</path> - <value> - <short-range>0.25</short-range> - <medium-range>0.34</medium-range> - <long-range>0.36</long-range> - </value> - </factor> - <factor ID="34"> - <path>/module_configuration_file/program_settings/Miscellaneous/dividerThickness</path> - <value> - <short-range>0.25</short-range> - <medium-range>0.1</medium-range> - <long-range>0.1</long-range> - </value> - </factor> - <factor ID="35"> - <path>/module_configuration_file/program_settings/Miscellaneous/lengthFlightDeck</path> - <value> - <short-range>3.75</short-range> - <medium-range>3.26</medium-range> - <long-range>4.5</long-range> - </value> - </factor> - </fuselageDesign> - <engineSizing> - <number_of_factors>1</number_of_factors> - <factor ID="1"> - <path>/module_configuration_file/program_settings/ScalefactorFuelFlow</path> - <value> - <short-range>0.998</short-range> - <medium-range>1.</medium-range> - <long-range>1.</long-range> - </value> - </factor> - </engineSizing> - <calculatePolar> - <number_of_factors>1</number_of_factors> - <factor ID="1"> - <path>/module_configuration_file/program_settings/DragModification/DragCtCorrectionCleanPolar/deltaViscDragWing</path> - <value> - <short-range>-4.</short-range> - <medium-range>0.</medium-range> - <long-range>0.</long-range> - </value> - </factor> - </calculatePolar> - <massEstimation> - <number_of_factors>17</number_of_factors> - <factor ID="1"> - <path>/module_configuration_file/program_settings/Scalingfactors/Wing</path> - <value> - <short-range>1.</short-range> - <medium-range>0.65</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="2"> - <path>/module_configuration_file/program_settings/Scalingfactors/CenterWing</path> - <value> - <short-range>0.83</short-range> - <medium-range>0.605</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="3"> - <path>/module_configuration_file/program_settings/Scalingfactors/HighLiftLE</path> - <value> - <short-range>0.9</short-range> - <medium-range>1.</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="4"> - <path>/module_configuration_file/program_settings/Scalingfactors/HighLiftTE</path> - <value> - <short-range>0.9</short-range> - <medium-range>1.</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="5"> - <path>/module_configuration_file/program_settings/Scalingfactors/Fuselage</path> - <value> - <short-range>0.92</short-range> - <medium-range>1.02</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="6"> - <path>/module_configuration_file/program_settings/Scalingfactors/HorizontalTail</path> - <value> - <short-range>1.</short-range> - <medium-range>1.2</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="7"> - <path>/module_configuration_file/program_settings/Scalingfactors/VerticalTail</path> - <value> - <short-range>1.</short-range> - <medium-range>0.97</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="8"> - <path>/module_configuration_file/program_settings/Scalingfactors/LandingGear</path> - <value> - <short-range>1.</short-range> - <medium-range>1.12</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="9"> - <path>/module_configuration_file/program_settings/Scalingfactors/Pylon</path> - <value> - <short-range>1.2</short-range> - <medium-range>0.78</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="10"> - <path>/module_configuration_file/program_settings/Scalingfactors/Propulsion</path> - <value> - <short-range>1.03</short-range> - <medium-range>1.14</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="11"> - <path>/module_configuration_file/program_settings/Scalingfactors/EngineDryMass</path> - <value> - <short-range>1.167</short-range> - <medium-range>1.</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="12"> - <path>/module_configuration_file/program_settings/Scalingfactors/NacelleMass</path> - <value> - <short-range>0.65</short-range> - <medium-range>1.</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="13"> - <path>/module_configuration_file/program_settings/Gear/Strut/strut_factor</path> - <value> - <short-range>1.2</short-range> - <medium-range>1.15</medium-range> - <long-range>1.1</long-range> - </value> - </factor> - <factor ID="14"> - <path>/module_configuration_file/program_settings/Gear/Wheels/rim_thickness_factor</path> - <value> - <short-range>0.15</short-range> - <medium-range>0.13</medium-range> - <long-range>0.11</long-range> - </value> - </factor> - <factor ID="15"> - <path>/module_configuration_file/program_settings/Gear/Brakes/wearVolume</path> - <value> - <short-range>1.73e-4</short-range> - <medium-range>1.065e-4</medium-range> - <long-range>4e-5</long-range> - </value> - </factor> - <factor ID="16"> - <path>/module_configuration_file/program_settings/Gear/Brakes/landingCycle</path> - <value> - <short-range>925</short-range> - <medium-range>950</medium-range> - <long-range>975</long-range> - </value> - </factor> - <factor ID="17"> - <path>/module_configuration_file/program_settings/Gear/Brakes/v1factor</path> - <value> - <short-range>1.1</short-range> - <medium-range>1.085</medium-range> - <long-range>1.07</long-range> - </value> - </factor> - </massEstimation> - <systemsDesign> - <number_of_factors>14</number_of_factors> - <factor ID="1"> - <path>/module_configuration_file/program_settings/Scalingfactors/Systems</path> - <value> - <short-range>0.95</short-range> - <medium-range>0.95</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="2"> - <path>/module_configuration_file/program_settings/Scalingfactors/Furnishings</path> - <value> - <short-range>1.</short-range> - <medium-range>0.735</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="3"> - <path>/module_configuration_file/program_settings/Scalingfactors/OperatorItems</path> - <value> - <short-range>1.4</short-range> - <medium-range>1.5</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="4"> - <path>/module_configuration_file/program_settings/SystemsConstants/IceRainProtection/percentageOfOME</path> - <value> - <short-range>0.001</short-range> - <medium-range>0.0009</medium-range> - <long-range>0.001</long-range> - </value> - </factor> - <factor ID="5"> - <path>/module_configuration_file/program_settings/SystemsConstants/FlightControls/CommonInstWfactor</path> - <value> - <short-range>0.25</short-range> - <medium-range>0.5</medium-range> - <long-range>0.25</long-range> - </value> - </factor> - <factor ID="6"> - <path>/module_configuration_file/program_settings/SystemsConstants/HydraulicSystem/specificDuctingMass</path> - <value> - <short-range>2.5</short-range> - <medium-range>2.2</medium-range> - <long-range>2.5</long-range> - </value> - </factor> - <factor ID="7"> - <path>/module_configuration_file/program_settings/SystemsConstants/HydraulicSystem/specificPumpMass</path> - <value> - <short-range>1.25</short-range> - <medium-range>1.15</medium-range> - <long-range>1.25</long-range> - </value> - </factor> - <factor ID="8"> - <path>/module_configuration_file/program_settings/SystemsConstants/HydraulicSystem/HydraulicCircuits/HydraulicCircuit/Components/Pumps/Pump@ID=1/Efficiency</path> - <value> - <short-range>0.85</short-range> - <medium-range>0.4</medium-range> - <long-range>0.85</long-range> - </value> - </factor> - <factor ID="9"> - <path>/module_configuration_file/program_settings/SystemsConstants/APU/installationfactor</path> - <value> - <short-range>1.5</short-range> - <medium-range>1.3</medium-range> - <long-range>1.5</long-range> - </value> - </factor> - <factor ID="10"> - <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/scalingfactor</path> - <value> - <short-range>1.</short-range> - <medium-range>0.62</medium-range> - <long-range>1.</long-range> - </value> - </factor> - <factor ID="11"> - <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageInstrumentationOfATAXX</path> - <value> - <short-range>0.08</short-range> - <medium-range>0.129</medium-range> - <long-range>0.08</long-range> - </value> - </factor> - <factor ID="12"> - <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageAutoFlightOfATAXX</path> - <value> - <short-range>0.13</short-range> - <medium-range>0.091</medium-range> - <long-range>0.13</long-range> - </value> - </factor> - <factor ID="13"> - <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageNavigationOfATAXX</path> - <value> - <short-range>0.53</short-range> - <medium-range>0.47</medium-range> - <long-range>0.53</long-range> - </value> - </factor> - <factor ID="14"> - <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageCommunicationOfATAXX</path> - <value> - <short-range>0.26</short-range> - <medium-range>0.31</medium-range> - <long-range>0.26</long-range> - </value> - </factor> - </systemsDesign> +<configuration> + <initial_sizing> + <number_of_factors>9</number_of_factors> + <factor ID="1"> + <path>/module_configuration_file/program_settings/General/Cf</path> + <value> + <short-range>0.002</short-range> + <medium-range>0.0025</medium-range> + <long-range>0.003</long-range> + </value> + </factor> + <factor ID="2"> + <path>/module_configuration_file/program_settings/General/FamilyThrustScaling</path> + <value> + <short-range>1.010</short-range> + <medium-range>1.000</medium-range> + <long-range>1.000</long-range> + </value> + </factor> + <factor ID="3"> + <path>/module_configuration_file/program_settings/Climb/deltaCD0_app_flaps</path> + <value> + <short-range>0.03</short-range> + <medium-range>0.04</medium-range> + <long-range>0.05</long-range> + </value> + </factor> + <factor ID="4"> + <path>/module_configuration_file/program_settings/Climb/MaxcontMaxto</path> + <value> + <short-range>0.8967</short-range> + <medium-range>0.92</medium-range> + <long-range>0.94</long-range> + </value> + </factor> + <factor ID="5"> + <path>/module_configuration_file/program_settings/Cruise/McrMto</path> + <value> + <short-range>0.956</short-range> + <medium-range>0.956</medium-range> + <long-range>0.924</long-range> + </value> + </factor> + <factor ID="6"> + <path>/module_configuration_file/program_settings/Cruise/maxInitialCruiseCL</path> + <value> + <short-range>0.5516</short-range> + <medium-range>0.55</medium-range> + <long-range>0.5</long-range> + </value> + </factor> + <factor ID="7"> + <path>/module_configuration_file/program_settings/Masses/Fractions/mf_to</path> + <value> + <short-range>0.99</short-range> + <medium-range>0.98</medium-range> + <long-range>0.97</long-range> + </value> + </factor> + <factor ID="8"> + <path>/module_configuration_file/program_settings/Masses/Fractions/mf_descent</path> + <value> + <short-range>0.995</short-range> + <medium-range>0.9925</medium-range> + <long-range>0.99</long-range> + </value> + </factor> + <factor ID="9"> + <path>/module_configuration_file/program_settings/Masses/Fractions/mf_land</path> + <value> + <short-range>0.997</short-range> + <medium-range>0.9945</medium-range> + <long-range>0.992</long-range> + </value> + </factor> + </initial_sizing> + <fuselage_design> + <number_of_factors>35</number_of_factors> + <factor ID="1"> + <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=1/aisle/width</path> + <value> + <short-range>0.6858</short-range> + <medium-range>0.97</medium-range> + <long-range>0.97</long-range> + </value> + </factor> + <factor ID="2"> + <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=2/aisle/width</path> + <value> + <short-range>0.635</short-range> + <medium-range>0.635</medium-range> + <long-range>0.7</long-range> + </value> + </factor> + <factor ID="3"> + <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=2/aisle/height</path> + <value> + <short-range>2.13</short-range> + <medium-range>2.11</medium-range> + <long-range>2.13</long-range> + </value> + </factor> + <factor ID="4"> + <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=3/aisle/width</path> + <value> + <short-range>0.4826</short-range> + <medium-range>0.5334</medium-range> + <long-range>0.5334</long-range> + </value> + </factor> + <factor ID="5"> + <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=3/aisle/height</path> + <value> + <short-range>2.13</short-range> + <medium-range>2.1</medium-range> + <long-range>2.13</long-range> + </value> + </factor> + <factor ID="6"> + <path>/module_configuration_file/program_settings/PassengerClass/Class@ID=3/PAXperSteward</path> + <value> + <short-range>50</short-range> + <medium-range>50</medium-range> + <long-range>40</long-range> + </value> + </factor> + <factor ID="7"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=1/pitch</path> + <value> + <short-range>0.8128</short-range> + <medium-range>0.86</medium-range> + <long-range>0.8128</long-range> + </value> + </factor> + <factor ID="8"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=1/depth</path> + <value> + <short-range>0.75</short-range> + <medium-range>0.6731</medium-range> + <long-range>0.6731</long-range> + </value> + </factor> + <factor ID="9"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=1/width</path> + <value> + <short-range>0.499533</short-range> + <medium-range>0.508</medium-range> + <long-range>0.527</long-range> + </value> + </factor> + <factor ID="10"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=1/heightSeat</path> + <value> + <short-range>0.95</short-range> + <medium-range>0.94</medium-range> + <long-range>0.94</long-range> + </value> + </factor> + <factor ID="11"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=1/heightHead</path> + <value> + <short-range>1.1481</short-range> + <medium-range>1.6</medium-range> + <long-range>1.45</long-range> + </value> + </factor> + <factor ID="12"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=2/pitch</path> + <value> + <short-range>0.915</short-range> + <medium-range>0.97</medium-range> + <long-range>1.524</long-range> + </value> + </factor> + <factor ID="13"> + <path>/module_configuration_file/program_settings/Seats/seat/depth</path> + <value> + <short-range>0.84</short-range> + <medium-range>0.84</medium-range> + <long-range>0.84</long-range> + </value> + </factor> + <factor ID="14"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=2/width</path> + <value> + <short-range>0.7239</short-range> + <medium-range>0.7239</medium-range> + <long-range>0.7239</long-range> + </value> + </factor> + <factor ID="15"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=2/heightSeat</path> + <value> + <short-range>0.94</short-range> + <medium-range>0.94</medium-range> + <long-range>0.94</long-range> + </value> + </factor> + <factor ID="16"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=2/heightHead</path> + <value> + <short-range>1.1481</short-range> + <medium-range>1.1481</medium-range> + <long-range>1.1481</long-range> + </value> + </factor> + <factor ID="17"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=3/pitch</path> + <value> + <short-range>2.</short-range> + <medium-range>2.</medium-range> + <long-range>1.5</long-range> + </value> + </factor> + <factor ID="18"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=3/depth</path> + <value> + <short-range>0.7747</short-range> + <medium-range>0.7747</medium-range> + <long-range>0.7747</long-range> + </value> + </factor> + <factor ID="19"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=3/width</path> + <value> + <short-range>0.7239</short-range> + <medium-range>0.7239</medium-range> + <long-range>0.67</long-range> + </value> + </factor> + <factor ID="20"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=3/heightSeat</path> + <value> + <short-range>0.94</short-range> + <medium-range>0.94</medium-range> + <long-range>0.94</long-range> + </value> + </factor> + <factor ID="21"> + <path>/module_configuration_file/program_settings/Seats/seat@ID=3/heightHead</path> + <value> + <short-range>1.1481</short-range> + <medium-range>1.1481</medium-range> + <long-range>1.1481</long-range> + </value> + </factor> + <factor ID="22"> + <path>/module_configuration_file/program_settings/Exits/NumberOfExitTypes</path> + <value> + <short-range>7</short-range> + <medium-range>2</medium-range> + <long-range>5</long-range> + </value> + </factor> + <factor ID="23"> + <path>/module_configuration_file/program_settings/Exits/ExitType@ID=2</path> + <value> + <short-range>Type B</short-range> + <medium-range>Type III</medium-range> + <long-range>Type I</long-range> + </value> + </factor> + <factor ID="24"> + <path>/module_configuration_file/program_settings/Exits/ExitType@ID=3</path> + <value> + <short-range>Type C</short-range> + <medium-range>0</medium-range> + <long-range>Type II</long-range> + </value> + </factor> + <factor ID="25"> + <path>/module_configuration_file/program_settings/Exits/ExitType@ID=4</path> + <value> + <short-range>Type I</short-range> + <medium-range>0</medium-range> + <long-range>Type III</long-range> + </value> + </factor> + <factor ID="26"> + <path>/module_configuration_file/program_settings/Exits/ExitType@ID=5</path> + <value> + <short-range>Type II</short-range> + <medium-range>0</medium-range> + <long-range>Type IV</long-range> + </value> + </factor> + <factor ID="27"> + <path>/module_configuration_file/program_settings/Exits/ExitType@ID=6</path> + <value> + <short-range>Type III</short-range> + <medium-range>0</medium-range> + <long-range>0</long-range> + </value> + </factor> + <factor ID="28"> + <path>/module_configuration_file/program_settings/Exits/ExitType@ID=7</path> + <value> + <short-range>Type IV</short-range> + <medium-range>0</medium-range> + <long-range>0</long-range> + </value> + </factor> + <factor ID="29"> + <path>/module_configuration_file/program_settings/Exits/Exit@ID=Type A/Height</path> + <value> + <short-range>1.83</short-range> + <medium-range>1.83</medium-range> + <long-range>1.93</long-range> + </value> + </factor> + <factor ID="30"> + <path>/module_configuration_file/program_settings/Miscellaneous/systemHeight</path> + <value> + <short-range>0.125</short-range> + <medium-range>0.3</medium-range> + <long-range>0.3</long-range> + </value> + </factor> + <factor ID="31"> + <path>/module_configuration_file/program_settings/Miscellaneous/wallThickness</path> + <value> + <short-range>0.1575</short-range> + <medium-range>0.155</medium-range> + <long-range>0.1575</long-range> + </value> + </factor> + <factor ID="32"> + <path>/module_configuration_file/program_settings/Miscellaneous/artificialZOffset</path> + <value> + <short-range>0.</short-range> + <medium-range>0.2</medium-range> + <long-range>0.</long-range> + </value> + </factor> + <factor ID="33"> + <path>/module_configuration_file/program_settings/Miscellaneous/Wingbox/relStartPoint</path> + <value> + <short-range>0.25</short-range> + <medium-range>0.34</medium-range> + <long-range>0.36</long-range> + </value> + </factor> + <factor ID="34"> + <path>/module_configuration_file/program_settings/Miscellaneous/dividerThickness</path> + <value> + <short-range>0.25</short-range> + <medium-range>0.1</medium-range> + <long-range>0.1</long-range> + </value> + </factor> + <factor ID="35"> + <path>/module_configuration_file/program_settings/Miscellaneous/lengthFlightDeck</path> + <value> + <short-range>3.75</short-range> + <medium-range>3.26</medium-range> + <long-range>4.5</long-range> + </value> + </factor> + </fuselage_design> + <propulsion_design> + <number_of_factors>1</number_of_factors> + <factor ID="1"> + <path>/module_configuration_file/program_settings/ScalefactorFuelFlow</path> + <value> + <short-range>0.998</short-range> + <medium-range>1.</medium-range> + <long-range>1.</long-range> + </value> + </factor> + </propulsion_design> + <aerodynamic_assessment> + <number_of_factors>1</number_of_factors> + <factor ID="1"> + <path>/module_configuration_file/program_settings/DragModification/DragCtCorrectionCleanPolar/deltaViscDragWing</path> + <value> + <short-range>-4.</short-range> + <medium-range>0.</medium-range> + <long-range>0.</long-range> + </value> + </factor> + </aerodynamic_assessment> + <systems_design> + <number_of_factors>14</number_of_factors> + <factor ID="1"> + <path>/module_configuration_file/program_settings/Scalingfactors/Systems</path> + <value> + <short-range>0.95</short-range> + <medium-range>0.95</medium-range> + <long-range>1.</long-range> + </value> + </factor> + <factor ID="2"> + <path>/module_configuration_file/program_settings/Scalingfactors/Furnishings</path> + <value> + <short-range>1.</short-range> + <medium-range>0.735</medium-range> + <long-range>1.</long-range> + </value> + </factor> + <factor ID="3"> + <path>/module_configuration_file/program_settings/Scalingfactors/OperatorItems</path> + <value> + <short-range>1.4</short-range> + <medium-range>1.5</medium-range> + <long-range>1.</long-range> + </value> + </factor> + <factor ID="4"> + <path>/module_configuration_file/program_settings/SystemsConstants/IceRainProtection/percentageOfOME</path> + <value> + <short-range>0.001</short-range> + <medium-range>0.0009</medium-range> + <long-range>0.001</long-range> + </value> + </factor> + <factor ID="5"> + <path>/module_configuration_file/program_settings/SystemsConstants/FlightControls/CommonInstWfactor</path> + <value> + <short-range>0.25</short-range> + <medium-range>0.5</medium-range> + <long-range>0.25</long-range> + </value> + </factor> + <factor ID="6"> + <path>/module_configuration_file/program_settings/SystemsConstants/HydraulicSystem/specificDuctingMass</path> + <value> + <short-range>2.5</short-range> + <medium-range>2.2</medium-range> + <long-range>2.5</long-range> + </value> + </factor> + <factor ID="7"> + <path>/module_configuration_file/program_settings/SystemsConstants/HydraulicSystem/specificPumpMass</path> + <value> + <short-range>1.25</short-range> + <medium-range>1.15</medium-range> + <long-range>1.25</long-range> + </value> + </factor> + <factor ID="8"> + <path>/module_configuration_file/program_settings/SystemsConstants/HydraulicSystem/HydraulicCircuits/HydraulicCircuit/Components/Pumps/Pump@ID=1/Efficiency</path> + <value> + <short-range>0.85</short-range> + <medium-range>0.4</medium-range> + <long-range>0.85</long-range> + </value> + </factor> + <factor ID="9"> + <path>/module_configuration_file/program_settings/SystemsConstants/APU/installationfactor</path> + <value> + <short-range>1.5</short-range> + <medium-range>1.3</medium-range> + <long-range>1.5</long-range> + </value> + </factor> + <factor ID="10"> + <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/scalingfactor</path> + <value> + <short-range>1.</short-range> + <medium-range>0.62</medium-range> + <long-range>1.</long-range> + </value> + </factor> + <factor ID="11"> + <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageInstrumentationOfATAXX</path> + <value> + <short-range>0.08</short-range> + <medium-range>0.129</medium-range> + <long-range>0.08</long-range> + </value> + </factor> + <factor ID="12"> + <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageAutoFlightOfATAXX</path> + <value> + <short-range>0.13</short-range> + <medium-range>0.091</medium-range> + <long-range>0.13</long-range> + </value> + </factor> + <factor ID="13"> + <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageNavigationOfATAXX</path> + <value> + <short-range>0.53</short-range> + <medium-range>0.47</medium-range> + <long-range>0.53</long-range> + </value> + </factor> + <factor ID="14"> + <path>/module_configuration_file/program_settings/SystemsConstants/remainingConsumers/mass/distribution/percentageCommunicationOfATAXX</path> + <value> + <short-range>0.26</short-range> + <medium-range>0.31</medium-range> + <long-range>0.26</long-range> + </value> + </factor> + </systems_design> </configuration> \ No newline at end of file diff --git a/UNICADOworkflow/src/calibration/final_ome_calibration_steps.py b/UNICADOworkflow/src/calibration/final_ome_calibration_steps.py index afca2e16ade429e327e7de4bc3df5e616792d169..a205ec330d960ce3ea7551494c828a2bad9931ed 100644 --- a/UNICADOworkflow/src/calibration/final_ome_calibration_steps.py +++ b/UNICADOworkflow/src/calibration/final_ome_calibration_steps.py @@ -40,7 +40,7 @@ def final_ome_calibration_steps(paths_and_names): ''' save aircraft exchange file of final ome calibration loop to temporary results directory ''' aircraft_exchange_files_of_ome_calibration = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/OMEcalibration/' + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/OMEcalibration/' if not os.path.isdir(aircraft_exchange_files_of_ome_calibration): os.makedirs(aircraft_exchange_files_of_ome_calibration) diff --git a/UNICADOworkflow/src/calibration/perform_ome_iteration.py b/UNICADOworkflow/src/calibration/perform_ome_iteration.py index 6b80f01c0da98358f178f1804cd1fb400fb4163f..77cbee9b488531d15befd990e9f9151020c027b9 100644 --- a/UNICADOworkflow/src/calibration/perform_ome_iteration.py +++ b/UNICADOworkflow/src/calibration/perform_ome_iteration.py @@ -246,7 +246,7 @@ def perform_ome_iteration(paths_and_names, calibration_settings, ome_loop_vector ''' save aircraft exchange file of calibration loop to temporary results directory ''' aircraft_exchange_files_of_ome_calibration = \ path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/OMEcalibration/' + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/OMEcalibration/' if not os.path.isdir(aircraft_exchange_files_of_ome_calibration): os.makedirs(aircraft_exchange_files_of_ome_calibration) diff --git a/UNICADOworkflow/src/clean_up/clean_up_temporary_results.py b/UNICADOworkflow/src/clean_up/clean_up_temporary_results.py index 77692131f9994368bf79b5cc8bafca2ae8296682..7b86d5eee45690e92c74ffb94541eab548312c26 100644 --- a/UNICADOworkflow/src/clean_up/clean_up_temporary_results.py +++ b/UNICADOworkflow/src/clean_up/clean_up_temporary_results.py @@ -193,16 +193,16 @@ def clean_up_temporary_results(paths_and_names, parameter_for_design_case, contr ''' copy workflow configuration file to log-file results ''' shutil.copy(path_of_working_directory_rce + current_workflow_name + '/unicado_workflow_conf.xml', - copy_target_path + '/configFiles/unicado_workflow_conf.xml') + copy_target_path + '/config_files/unicado_workflow_conf.xml') print('UNICADOworkflow configuration file has been successfully copied to results folder!') log_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': ' 'UNICADOworkflow configuration file has been successfully copied to results folder!') elif save_results == 1 and save_only_aircraft_exchange_file == 1 and not skip_saving_flag: if os.path.isdir(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles'): + + '/temporaryResults/aircraft_exchange_files'): shutil.copytree(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles', copy_target_path) + + '/temporaryResults/aircraft_exchange_files', copy_target_path) print('Only aircraft exchange files of current parameter study input successfully stored!') log_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': ' 'Only aircraft exchange files of current parameter study input successfully stored!') @@ -210,7 +210,7 @@ def clean_up_temporary_results(paths_and_names, parameter_for_design_case, contr if optimization_mode == 1: ''' copy optimization configuration file to config files ''' shutil.copy(path_of_working_directory_rce + current_workflow_name + '/optimization_conf.xml', - copy_target_path + '/configFiles/optimization_conf.xml') + copy_target_path + '/config_files/optimization_conf.xml') print('Optimization configuration file has been successfully copied to results folder!') log_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Pptimization configuration file has been successfully copied to results folder!') @@ -218,8 +218,8 @@ def clean_up_temporary_results(paths_and_names, parameter_for_design_case, contr ''' write csv-output file if parameter study is selected ''' if parameter_study_mode == 1: ''' copy parameter study configuration file to config files ''' - shutil.copy(path_of_working_directory_rce + current_workflow_name + '/parameterStudy_conf.xml', - copy_target_path + '/configFiles/parameterStudy_conf.xml') + shutil.copy(path_of_working_directory_rce + current_workflow_name + '/parameter_study_conf.xml', + copy_target_path + '/config_files/parameter_study_conf.xml') print('Parameter study configuration file has been successfully copied to results folder!') log_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': Parameter study configuration file has been successfully copied to results folder!') diff --git a/UNICADOworkflow/src/clean_up/post_operations_of_workflow.py b/UNICADOworkflow/src/clean_up/post_operations_of_workflow.py index 922ead303c311575f72fe59e631917171f3abcbc..6bd2047212165caa6077532dce8007aaef3bbdb3 100644 --- a/UNICADOworkflow/src/clean_up/post_operations_of_workflow.py +++ b/UNICADOworkflow/src/clean_up/post_operations_of_workflow.py @@ -118,7 +118,7 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for ''' save configuration files after executed post operation modules ''' path_of_aircraft_exchange_files_after_execution = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/configFiles/postProcessing/' + + '/temporaryResults/config_files/postProcessing/' os.makedirs(path_of_aircraft_exchange_files_after_execution) for file_name in files_in_working_directory: # check if current list element is a directory @@ -219,9 +219,9 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for ''' save aircraft exchange files to results folder ''' if not os.path.isdir(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles'): + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files'): os.makedirs(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles') + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files') if check_flag_project: source = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project + '/' \ @@ -237,22 +237,22 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for # check for existing aircraft exchange files of sizing loop directory check_flag_aircraft_exchange_files_of_sizing_loop = \ os.path.isdir(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFilesOfSizingLoop') + + '/temporaryResults/aircraft_exchange_files_of_sizing_loop') # check for existing aircraft exchange files of study loop directory check_flag_aircraft_exchange_files_of_study_loop = \ os.path.isdir(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFilesOfStudyMissionLoop') + + '/temporaryResults/aircraft_exchange_files_of_study_loop') if save_acft_xml_to_result_folder == 0: if check_flag_aircraft_exchange_files_of_sizing_loop: # delete temporary workflow files shutil.rmtree(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFilesOfSizingLoop') + + '/temporaryResults/aircraft_exchange_files_of_sizing_loop') if check_flag_aircraft_exchange_files_of_study_loop: # delete temporary workflow files shutil.rmtree(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFilesOfStudyMissionLoop') + + '/temporaryResults/aircraft_exchange_files_of_study_loop') print('All aircraft-exchange files successfully deleted!') log_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': ' @@ -261,19 +261,19 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for elif save_acft_xml_after_each_iteration == 1: if check_flag_aircraft_exchange_files_of_sizing_loop: source = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFilesOfSizingLoop/' + aircraft_project + '_it' \ + + '/temporaryResults/aircraft_exchange_files_of_sizing_loop/' + aircraft_project + '_it' \ + str(count_of_iteration) + '.xml' destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/finalaircraft_exchange_files/' + aircraft_project \ + '_final_design_sizing_file.xml' shutil.copy(source, destination) if check_flag_aircraft_exchange_files_of_study_loop: source = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFilesOfStudyMissionLoop/' + aircraft_project + '_it' \ + + '/temporaryResults/aircraft_exchange_files_of_study_loop/' + aircraft_project + '_it' \ + str(count_of_mission_study_loop) + '.xml' destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + aircraft_project \ + '_final_mission_study_file.xml' shutil.copy(source, destination) @@ -281,7 +281,7 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for source = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project + '/' \ + aircraft_project + '.xml' destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + aircraft_project \ + '_final_project_file.xml' shutil.copy(source, destination) @@ -293,32 +293,32 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for if check_flag_aircraft_exchange_files_of_sizing_loop: # delete temporary workflow files source = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFilesOfSizingLoop/' + aircraft_project + '_it' \ + + '/temporaryResults/aircraft_exchange_files_of_sizing_loop/' + aircraft_project + '_it' \ + str(count_of_iteration) + '.xml' destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + aircraft_project \ + '_final_design_sizing_file.xml' shutil.copy(source, destination) # delete temporary workflow files shutil.rmtree(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFilesOfSizingLoop') + + '/temporaryResults/aircraft_exchange_files_of_sizing_loop') if check_flag_aircraft_exchange_files_of_study_loop: source = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFilesOfStudyMissionLoop/' + aircraft_project + '_it' \ + + '/temporaryResults/aircraft_exchange_files_of_study_loop/' + aircraft_project + '_it' \ + str(count_of_iteration) + '.xml' destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + aircraft_project \ + '_final_mission_study_file.xml' shutil.copy(source, destination) # delete temporary workflow files shutil.rmtree(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFilesOfStudyMissionLoop') + + '/temporaryResults/aircraft_exchange_files_of_study_loop') if check_flag_project: source = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project + '/' \ + aircraft_project + '.xml' destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + aircraft_project \ + '_final_project_file.xml' shutil.copy(source, destination) @@ -335,7 +335,7 @@ def post_operations_of_workflow(paths_and_names, control_settings, parameter_for + aircraft_project + '_CPACS.xml' shutil.copy(source, destination) destination = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + aircraft_project \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + aircraft_project \ + '_final_CPACS_file.xml' shutil.copy(source, destination) diff --git a/UNICADOworkflow/src/design_sizing_loop/activate_plots_and_reports_for_sizing_loop.py b/UNICADOworkflow/src/design_sizing_loop/activate_plots_and_reports_for_sizing_loop.py index cc6a992e081e4c8d423e6c012fdfc7c494d486c7..227ef789911262e5d48c11bab29789abe440108d 100644 --- a/UNICADOworkflow/src/design_sizing_loop/activate_plots_and_reports_for_sizing_loop.py +++ b/UNICADOworkflow/src/design_sizing_loop/activate_plots_and_reports_for_sizing_loop.py @@ -134,11 +134,11 @@ def activate_plots_and_reports_for_sizing_loop(paths_and_names, control_settings file_name = aircraft_exchange_file[:len(aircraft_exchange_file) - 4] if not number_of_max_iteration <= 0: name_of_current_aircraft_exchange_file = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' + file_name + '_it' \ + str(count_of_iteration) + '.xml' shutil.copy(path_of_working_directory_rce + name_of_current_aircraft_exchange_file, path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' + file_name + '_finalLoop.xml') # Check if the tool execution error flag is not existing and plot or report generation is not disabled @@ -148,16 +148,16 @@ def activate_plots_and_reports_for_sizing_loop(paths_and_names, control_settings and (plot_output_on == 1 or report_output_on == 1 or tex_report_on == 1): if number_of_max_iteration < 0: file_source = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' + file_name + '_it' \ + str(count_of_iteration - 2) + '.xml' if not os.path.isfile(file_source): if count_of_iteration < 2: file_source = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' \ + file_name + '_it0.xml' else: file_source = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' \ + file_name + '_it' + str(count_of_iteration - 1) + '.xml' destination = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project \ + '/' + aircraft_exchange_file @@ -166,7 +166,7 @@ def activate_plots_and_reports_for_sizing_loop(paths_and_names, control_settings 'Aircraft exchange file for output generation restored!') else: file_source = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' + file_name + '_it' \ + str(count_of_iteration - 1) + '.xml' destination = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project \ + '/' + aircraft_exchange_file diff --git a/UNICADOworkflow/src/design_sizing_loop/final_operations_of_sizing_loop.py b/UNICADOworkflow/src/design_sizing_loop/final_operations_of_sizing_loop.py index dde8f3814860f3a6f89a1914f2c98b31d5e0c1c3..7e38179956e9db1530267f8f032809ee7e70b8f9 100644 --- a/UNICADOworkflow/src/design_sizing_loop/final_operations_of_sizing_loop.py +++ b/UNICADOworkflow/src/design_sizing_loop/final_operations_of_sizing_loop.py @@ -45,7 +45,7 @@ def final_operations_of_sizing_loop(paths_and_names): ''' save configuration files after performed sizing loop of UNICADO modules ''' path_of_aircraft_exchange_files_after_execution = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/configFiles/' + + '/temporaryResults/config_files/' # create results folder for configuration files os.makedirs(path_of_aircraft_exchange_files_after_execution + 'setup/') diff --git a/UNICADOworkflow/src/design_sizing_loop/initialize_design_sizing_loop.py b/UNICADOworkflow/src/design_sizing_loop/initialize_design_sizing_loop.py index e047449599b6c0ae42bd936d170e89eeff12639e..8aa7aadbbd96baf00d0f380b1ed70a490861f89e 100644 --- a/UNICADOworkflow/src/design_sizing_loop/initialize_design_sizing_loop.py +++ b/UNICADOworkflow/src/design_sizing_loop/initialize_design_sizing_loop.py @@ -282,7 +282,7 @@ def initialize_design_sizing_loop(paths_and_names, parameter_for_design_case, co ''' crate temporary folder for aircraft exchange files of each sizing loop ''' aircraft_exchange_files_of_sizing_loop = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' if not os.path.isdir(aircraft_exchange_files_of_sizing_loop): os.makedirs(aircraft_exchange_files_of_sizing_loop) diff --git a/UNICADOworkflow/src/design_sizing_loop/post_operation_of_design_sizing.py b/UNICADOworkflow/src/design_sizing_loop/post_operation_of_design_sizing.py index b8038648638b2d9cc2eba762498392f0f0708f36..7405867cedfc2716b9e0a8eca74880deaad356c5 100644 --- a/UNICADOworkflow/src/design_sizing_loop/post_operation_of_design_sizing.py +++ b/UNICADOworkflow/src/design_sizing_loop/post_operation_of_design_sizing.py @@ -438,7 +438,7 @@ def post_operation_of_design_sizing(paths_and_names, parameter_for_design_case, + aircraft_exchange_file file_destination = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' + file_name + '_it' \ + str(count_of_iteration) + '.xml' if os.path.isfile(path_of_working_directory_rce + file_destination): os.remove(path_of_working_directory_rce + file_destination) @@ -448,7 +448,7 @@ def post_operation_of_design_sizing(paths_and_names, parameter_for_design_case, if number_of_max_iteration - 1 <= 1: # create backUp-file from aircraft exchange file file_destination = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' \ + file_name + '_finalLoop.xml' shutil.copy(path, path_of_working_directory_rce + file_destination) @@ -549,11 +549,11 @@ def post_operation_of_design_sizing(paths_and_names, parameter_for_design_case, else: name_of_current_aircraft_exchange_file = \ current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' \ + file_name + '_it' + str(count_of_iteration) + '.xml' shutil.copy(path_of_working_directory_rce + name_of_current_aircraft_exchange_file, path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' + file_name + '_finalLoop.xml') # else condition: convergence of each iteration variable is not reached diff --git a/UNICADOworkflow/src/mission_study_loop/activate_plots_and_reports_for_mission_study.py b/UNICADOworkflow/src/mission_study_loop/activate_plots_and_reports_for_mission_study.py index 370c4e799ff4b1f53cd45aa87ec41137d3fb0f43..03df49508a74327a71f8b98ccb1d1130572fa6e3 100644 --- a/UNICADOworkflow/src/mission_study_loop/activate_plots_and_reports_for_mission_study.py +++ b/UNICADOworkflow/src/mission_study_loop/activate_plots_and_reports_for_mission_study.py @@ -100,9 +100,9 @@ def activate_plots_and_reports_for_mission_study(paths_and_names, control_settin ''' save final aircraft exchange file of mission analysis loop to results ''' name_of_current_aircraft_exchange_file = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfStudyLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_study_loop/' + file_name + '_it' \ + str(count_of_mission_study_loop) + '.xml' - destination = current_workflow_name + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' \ + destination = current_workflow_name + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' \ + file_name + '_final_study_loop_file.xml' shutil.copy(path_of_working_directory_rce + name_of_current_aircraft_exchange_file, path_of_working_directory_rce + destination) @@ -116,7 +116,7 @@ def activate_plots_and_reports_for_mission_study(paths_and_names, control_settin if count < 0: count = 0 name_of_current_aircraft_exchange_file = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfStudyLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_study_loop/' + file_name + '_it' \ + str(count) + '.xml' destination = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project + '/' \ + aircraft_exchange_file diff --git a/UNICADOworkflow/src/mission_study_loop/estimate_mission_study_residuals.py b/UNICADOworkflow/src/mission_study_loop/estimate_mission_study_residuals.py index e2b00572148ee1dbc9cb8f8befbaa6ed4e3cb018..04762b27b43b9d6fd52cfb37cfc26b22c8b17ff2 100644 --- a/UNICADOworkflow/src/mission_study_loop/estimate_mission_study_residuals.py +++ b/UNICADOworkflow/src/mission_study_loop/estimate_mission_study_residuals.py @@ -181,7 +181,7 @@ def estimate_mission_study_residuals(paths_and_names, mission_study_variables, c ''' save aircraft-exchange-file of each loop ''' file_name = aircraft_exchange_file[:len(aircraft_exchange_file) - 4] file_destination = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfStudyLoop/' + file_name + '_it' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_study_loop/' + file_name + '_it' \ + str(count_of_mission_study_loop + 1) + '.xml' shutil.copy(path, path_of_working_directory_rce + file_destination) diff --git a/UNICADOworkflow/src/mission_study_loop/final_operations_of_study_loop.py b/UNICADOworkflow/src/mission_study_loop/final_operations_of_study_loop.py index 763b0f9e15c54bbadbff9923e60ab8f5e1d9c947..f7639e7362786390e682ab9d7abd0a0c6eb9ed63 100644 --- a/UNICADOworkflow/src/mission_study_loop/final_operations_of_study_loop.py +++ b/UNICADOworkflow/src/mission_study_loop/final_operations_of_study_loop.py @@ -100,7 +100,7 @@ def final_operations_of_study_loop(paths_and_names, control_settings, parameter_ ''' paths to temporary results of current workflow ''' path_of_mission_study_files = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/configFiles/studyLoop/' + + '/temporaryResults/config_files/studyLoop/' os.makedirs(path_of_mission_study_files) files_to_copy_list = ['create_mission_xml_conf.xml', 'systems_design_conf.xml', 'mission_analysis_conf.xml'] diff --git a/UNICADOworkflow/src/mission_study_loop/initialize_mission_study_analysis.py b/UNICADOworkflow/src/mission_study_loop/initialize_mission_study_analysis.py index 8c504b845f98e5bc22fb44ccaa4352607901f0fe..58843b58ab1e91edb4ac4aa69d360be422c197ad 100644 --- a/UNICADOworkflow/src/mission_study_loop/initialize_mission_study_analysis.py +++ b/UNICADOworkflow/src/mission_study_loop/initialize_mission_study_analysis.py @@ -127,7 +127,7 @@ def initialize_mission_study_analysis(paths_and_names, control_settings, paramet # check if convergence or maximum iteration steps reached if not count_of_iteration == 0: file_source = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' \ + file_name + '_finalLoop.xml' destination = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project + '/' \ + aircraft_exchange_file @@ -139,17 +139,17 @@ def initialize_mission_study_analysis(paths_and_names, control_settings, paramet # copy and remove old file ''' save aircraft exchange files to results folder ''' if not os.path.isdir(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles'): + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files'): os.makedirs(path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles') + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files') if not count_of_iteration == 0: file = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfSizingLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_sizing_loop/' \ + file_name + '_finalLoop.xml' shutil.copy(path_of_working_directory_rce + file, path_of_working_directory_rce + current_workflow_name - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' + file_name + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' + file_name + '_final_sizing_loop_file.xml') os.remove(path_of_working_directory_rce + file) @@ -193,12 +193,12 @@ def initialize_mission_study_analysis(paths_and_names, control_settings, paramet ''' paths to temporary results of current workflow ''' path_of_mission_study_files = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/configFiles/preExecution/studyLoop/' + + '/temporaryResults/config_files/preExecution/studyLoop/' os.makedirs(path_of_mission_study_files) # copy aircraft exchange file to temporaryResults directory path_of_mission_study_exchange_files = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfStudyLoop/' + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_study_loop/' os.makedirs(path_of_mission_study_exchange_files) shutil.copy(path, path_of_mission_study_exchange_files + aircraft_exchange_file[:-4] + '_it0.xml') diff --git a/UNICADOworkflow/src/mission_study_loop/post_operation_of_mission_study_analysis.py b/UNICADOworkflow/src/mission_study_loop/post_operation_of_mission_study_analysis.py index d5c45500250936d4f1002f43a3662b7270676d1d..6004a99bc674d4b83793c8f58c5e70cdd101eb8e 100644 --- a/UNICADOworkflow/src/mission_study_loop/post_operation_of_mission_study_analysis.py +++ b/UNICADOworkflow/src/mission_study_loop/post_operation_of_mission_study_analysis.py @@ -173,10 +173,10 @@ def post_operation_of_mission_study_analysis(paths_and_names, mission_study_vari file_name = aircraft_exchange_file[:len(aircraft_exchange_file) - 4] name_of_current_aircraft_exchange_file =\ current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/aircraftExchangeFilesOfStudyLoop/' \ + + '/temporaryResults/aircraft_exchange_files/aircraft_exchange_files_of_study_loop/' \ + file_name + '_it' + str(count_of_mission_study_loop) + '.xml' destination = current_workflow_name \ - + '/temporaryResults/aircraftExchangeFiles/finalAircraftExchangeFiles/' \ + + '/temporaryResults/aircraft_exchange_files/final_aircraft_exchange_files/' \ + file_name + '_final_study_loop_file.xml' shutil.copy(path_of_working_directory_rce + name_of_current_aircraft_exchange_file, path_of_working_directory_rce + destination) diff --git a/UNICADOworkflow/src/parameter_study/estimate_input_value_from_configuration_file.py b/UNICADOworkflow/src/parameter_study/estimate_input_value_from_configuration_file.py index db9149b7ef948f8bce2b04fabccedc5c181f981a..648ddba6edd4e111eabd8691e1419e75f5865ce5 100644 --- a/UNICADOworkflow/src/parameter_study/estimate_input_value_from_configuration_file.py +++ b/UNICADOworkflow/src/parameter_study/estimate_input_value_from_configuration_file.py @@ -68,8 +68,8 @@ def estimate_input_value_from_configuration_file(root_of_study_xml_file, input_p use_values_as_absolute = \ int(([item for item in input_parameter_settings if 'use_values_as_absolute' in item])[-1][-1]) - if os.path.isfile(path_to_current_study + '/reference_aircraft/parameterStudyValues.csv'): - with open(path_to_current_study + '/reference_aircraft/parameterStudyValues.csv', 'r') as input_file: + if os.path.isfile(path_to_current_study + '/reference_aircraft/parameter_study_values.csv'): + with open(path_to_current_study + '/reference_aircraft/parameter_study_values.csv', 'r') as input_file: for line in input_file: if parameter_name in line: index = line.find(';') diff --git a/UNICADOworkflow/src/parameter_study/initialize_parameter_study.py b/UNICADOworkflow/src/parameter_study/initialize_parameter_study.py index daf8874a65e58e26475aa1f47817e456939e6809..aa98c00401a2723d07555d30eeca15b92960617d 100644 --- a/UNICADOworkflow/src/parameter_study/initialize_parameter_study.py +++ b/UNICADOworkflow/src/parameter_study/initialize_parameter_study.py @@ -50,10 +50,10 @@ def initialize_parameter_study(paths_and_names, log_file_list): abort_parameter_study_flag = False function_name = getframeinfo(currentframe()).function - ''' open and read parameter from parameterStudy_conf.xml configuration file to element tree ''' + ''' open and read parameter from parameter_study_conf.xml configuration file to element tree ''' frame_info = getframeinfo(currentframe()) - path = path_of_working_directory_rce + current_workflow_name + '/parameterStudy_conf.xml' - root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameterStudy', + path = path_of_working_directory_rce + current_workflow_name + '/parameter_study_conf.xml' + root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) @@ -168,7 +168,7 @@ def initialize_parameter_study(paths_and_names, log_file_list): else: # generate working dir working_dir_name = path_of_working_directory + 'workflowResults/' + current_workflow_name + '_' \ - + aircraft_project + '_parameterStudy' + + aircraft_project + '_parameter_study' # set path of parameter study working directory to parameter study configuration file root_of_parameter_study_tree.find( "./ProgramSettings/SensitivityStudySettings/PathToCurrentStudy").text = working_dir_name @@ -225,12 +225,12 @@ def initialize_parameter_study(paths_and_names, log_file_list): working_dir_name + '/reference_aircraft/' + aircraft_project + '_CPACS.xml') # copy parameter study configuration file of current project to reference directory - shutil.copyfile(path_of_working_directory_rce + current_workflow_name + '/parameterStudy_conf.xml', - working_dir_name + '/reference_aircraft/' + 'parameterStudy_conf.xml') + shutil.copyfile(path_of_working_directory_rce + current_workflow_name + '/parameter_study_conf.xml', + working_dir_name + '/reference_aircraft/' + 'parameter_study_conf.xml') # copy parameter study value file of current project to reference directory - shutil.copyfile(path_of_working_directory_rce + current_workflow_name + '/parameterStudyValues.csv', - working_dir_name + '/reference_aircraft/' + 'parameterStudyValues.csv') + shutil.copyfile(path_of_working_directory_rce + current_workflow_name + '/parameter_study_values.csv', + working_dir_name + '/reference_aircraft/' + 'parameter_study_values.csv') # copy starting workflow configuration file of current project as back up file to reference directory shutil.copyfile(path_of_working_directory_rce + current_workflow_name + '/UNICADOworkflow_conf.xml', @@ -266,10 +266,10 @@ def initialize_parameter_study(paths_and_names, log_file_list): # copy range type specific factor file to reference directory if it exists if os.path.isfile(path_of_working_directory_rce + current_workflow_name - + '/rangeTypeSpecificFactors.xml'): + + '/range_type_specific_factors.xml'): shutil.copyfile(path_of_working_directory_rce + current_workflow_name - + '/rangeTypeSpecificFactors.xml', - working_dir_name + '/reference_aircraft/' + 'rangeTypeSpecificFactors.xml') + + '/range_type_specific_factors.xml', + working_dir_name + '/reference_aircraft/' + 'range_type_specific_factors.xml') print('All necessary aircraft reference files have successfully been copied to parameter study working ' 'directory.') diff --git a/UNICADOworkflow/src/parameter_study/prepare_resume_of_parameter_study.py b/UNICADOworkflow/src/parameter_study/prepare_resume_of_parameter_study.py index 046cea3b6b1a426c00b84b8f0be0391dae0cbcea..536d9ec73ff8c0fe5e09ad7071f3ee94e94aa306 100644 --- a/UNICADOworkflow/src/parameter_study/prepare_resume_of_parameter_study.py +++ b/UNICADOworkflow/src/parameter_study/prepare_resume_of_parameter_study.py @@ -122,14 +122,14 @@ def prepare_resume_of_parameter_study(paths_and_names, path_to_folder_old_refere # read elements from old parameter study directory list_of_elements = os.listdir(path_to_folder_old_reference) - if not 'parameterStudy_conf.xml' in list_of_elements: + if not 'parameter_study_conf.xml' in list_of_elements: abort_parameter_study_flag = True for element in list_of_elements: # check if current element is a directory -> if true: -> perform copy of directory entries if os.path.isdir(path_to_folder_old_reference + element): # reset all configuration files to files of old parameter study - if element == 'configFiles': + if element == 'config_files': if os.path.isdir(path_to_folder_old_reference + element + '/preExecution'): list_of_cfg_folders = os.listdir(path_to_folder_old_reference + element + '/preExecution') for sub_folder in list_of_cfg_folders: @@ -212,11 +212,11 @@ def prepare_resume_of_parameter_study(paths_and_names, path_to_folder_old_refere else: abort_parameter_study_flag = True - if element == 'parameterStudy_conf.xml': + if element == 'parameter_study_conf.xml': frame_info = getframeinfo(currentframe()) path = path_to_folder_old_reference + element root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, - 'parameterStudy', function_name, + 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) diff --git a/UNICADOworkflow/src/parameter_study/read_input_parameter_settings.py b/UNICADOworkflow/src/parameter_study/read_input_parameter_settings.py index 168e21e4b24bbc943a9cae735c8d0d0eaf2ff380..972f3f9ed796c45041fe59c1a76b587de5a0b23d 100644 --- a/UNICADOworkflow/src/parameter_study/read_input_parameter_settings.py +++ b/UNICADOworkflow/src/parameter_study/read_input_parameter_settings.py @@ -47,11 +47,11 @@ def read_input_parameter_settings(install_path_directory, path_to_current_study, number_of_current_parameter = int(parameter_file.read()) parameter_file.close() - ''' open and read parameter from parameterStudy_conf.xml configuration file to element tree ''' + ''' open and read parameter from parameter_study_conf.xml configuration file to element tree ''' frame_info = getframeinfo(currentframe()) path_of_working_directory_rce = install_path_directory + 'workingDirectoryRCE/' - path = path_of_working_directory_rce + current_workflow_name + '/parameterStudy_conf.xml' - root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameterStudy', + path = path_of_working_directory_rce + current_workflow_name + '/parameter_study_conf.xml' + root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) diff --git a/UNICADOworkflow/src/parameter_study/read_parameter_study_settings.py b/UNICADOworkflow/src/parameter_study/read_parameter_study_settings.py index 55be2ba4696c1d737c58bc450c5dd5bb188959bb..219ac21ab239424372ec35eee8c3a580c99ed5fe 100644 --- a/UNICADOworkflow/src/parameter_study/read_parameter_study_settings.py +++ b/UNICADOworkflow/src/parameter_study/read_parameter_study_settings.py @@ -41,21 +41,21 @@ def read_parameter_study_settings(install_path_directory, log_file_list, current function_name = getframeinfo(currentframe()).function frame_info = getframeinfo(currentframe()) path_of_working_directory_rce = install_path_directory + 'workingDirectoryRCE/' - path = path_of_working_directory_rce + current_workflow_name + '/parameterStudy_conf.xml' + path = path_of_working_directory_rce + current_workflow_name + '/parameter_study_conf.xml' # copy back-up parameter study configuration file to working directory of rce # to avoid realtime workflow manipulation - root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameterStudy', + root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) path_to_current_study = str(root_of_parameter_study_tree.find( "./ProgramSettings/SensitivityStudySettings/PathToCurrentStudy").text) - shutil.copyfile(path_to_current_study + '/reference_aircraft/parameterStudy_conf.xml', path) + shutil.copyfile(path_to_current_study + '/reference_aircraft/parameter_study_conf.xml', path) - ''' open and read parameter from parameterStudy_conf.xml configuration file to element tree ''' + ''' open and read parameter from parameter_study_conf.xml configuration file to element tree ''' frame_info = getframeinfo(currentframe()) - root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameterStudy', + root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) diff --git a/UNICADOworkflow/src/parameter_study/reset_parameter_study_files.py b/UNICADOworkflow/src/parameter_study/reset_parameter_study_files.py index 4353592bea8644f452ad40285048ab3567c29427..965641728ed78b17d977d78b40ca865840a28609 100644 --- a/UNICADOworkflow/src/parameter_study/reset_parameter_study_files.py +++ b/UNICADOworkflow/src/parameter_study/reset_parameter_study_files.py @@ -32,7 +32,7 @@ def reset_parameter_study_files(install_path_directory, path_to_current_study, p path_to_workflow_dir = install_path_directory + 'workingDirectoryRCE/' + current_workflow_name + '/' i = 0 # find position of project and aircraft name in given path string - index = path_to_current_study.rfind('_parameterStudy') + index = path_to_current_study.rfind('_parameter_study') index_cut = path_to_current_study[:index].rfind('_') project_name = path_to_current_study[index_cut+1:index] @@ -55,9 +55,9 @@ def reset_parameter_study_files(install_path_directory, path_to_current_study, p 'Workflow configuration file successfully reset!') ''' reset range type specific factors xml-file to avoid outer workflow manipulation ''' - if os.path.isfile(path_to_current_study + '/reference_aircraft/rangeTypeSpecificFactors.xml'): - shutil.copyfile(path_to_current_study + '/reference_aircraft/rangeTypeSpecificFactors.xml', - path_to_workflow_dir + 'rangeTypeSpecificFactors.xml') + if os.path.isfile(path_to_current_study + '/reference_aircraft/range_type_specific_factors.xml'): + shutil.copyfile(path_to_current_study + '/reference_aircraft/range_type_specific_factors.xml', + path_to_workflow_dir + 'range_type_specific_factors.xml') print('Range type specific factors xml-file successfully reset!') log_file_list.append(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ': ' 'Range type specific factors xml-file successfully reset!') @@ -119,9 +119,9 @@ def reset_parameter_study_files(install_path_directory, path_to_current_study, p 'Mission data successfully reset!') ''' reset all module configuration files to avoid outer workflow manipulation ''' - if os.path.isdir(path_to_current_study + '/reference_aircraft/configFiles/'): + if os.path.isdir(path_to_current_study + '/reference_aircraft/config_files/'): list_of_working_directory_content = os.listdir(install_path_directory) - path_to_config = path_to_current_study + '/reference_aircraft/configFiles/' + path_to_config = path_to_current_study + '/reference_aircraft/config_files/' list_of_directory_content = os.listdir(path_to_config) for element in list_of_directory_content: if os.path.isdir(path_to_config + element): diff --git a/UNICADOworkflow/src/parameter_study/set_parameter_for_resume_parameter_study.py b/UNICADOworkflow/src/parameter_study/set_parameter_for_resume_parameter_study.py index 10cc7711afe2d252bf4e5c82abcc75561139411b..0c82d69e605e867402fbc808c191cd13e743dee9 100644 --- a/UNICADOworkflow/src/parameter_study/set_parameter_for_resume_parameter_study.py +++ b/UNICADOworkflow/src/parameter_study/set_parameter_for_resume_parameter_study.py @@ -102,11 +102,11 @@ def set_parameter_for_resume_parameter_study(paths_and_names, path_to_folder_old break output_csv_file.close() - ''' open and read parameter from parameterStudy_conf.xml configuration file to element tree ''' + ''' open and read parameter from parameter_study_conf.xml configuration file to element tree ''' frame_info = getframeinfo(currentframe()) - path = path_of_working_directory_rce + current_workflow_name + '/parameterStudy_conf.xml' + path = path_of_working_directory_rce + current_workflow_name + '/parameter_study_conf.xml' root_of_parameter_study_tree, xml_tree = read_xml_file(path, path_of_working_directory_rce, - 'parameterStudy', + 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) diff --git a/UNICADOworkflow/src/parameter_study/write_parameter_study_csv_output.py b/UNICADOworkflow/src/parameter_study/write_parameter_study_csv_output.py index 67d5fc74e80fe15ee788c92a336ad3906c7fea81..e2770cad6938a96f4ed8bc2778f66d0a40f15433 100644 --- a/UNICADOworkflow/src/parameter_study/write_parameter_study_csv_output.py +++ b/UNICADOworkflow/src/parameter_study/write_parameter_study_csv_output.py @@ -72,11 +72,11 @@ def write_parameter_study_csv_output(path_of_working_directory_rce, path_of_work index = copy_target_path.find('reference_aircraft') else: index = copy_target_path.find(parameter_name) - path = copy_target_path[:index] + 'reference_aircraft/parameterStudy_conf.xml' + path = copy_target_path[:index] + 'reference_aircraft/parameter_study_conf.xml' # call function to read the parameter study configuration file frame_info = getframeinfo(currentframe()) - root_of_parameter_study_tree, _ = read_xml_file(path, path_of_working_directory_rce, 'parameterStudy', + root_of_parameter_study_tree, _ = read_xml_file(path, path_of_working_directory_rce, 'parameter_study', function_name, frame_info.lineno, log_file_list, current_workflow_name) diff --git a/UNICADOworkflow/src/pre_condition/prepare_optimization.py b/UNICADOworkflow/src/pre_condition/prepare_optimization.py index cd9e9b6677b743f97b329429058738fef82d8f5b..947da58162b902c4d6cf1bc82fdc102f0906a5a5 100644 --- a/UNICADOworkflow/src/pre_condition/prepare_optimization.py +++ b/UNICADOworkflow/src/pre_condition/prepare_optimization.py @@ -169,11 +169,11 @@ def prepare_optimization(install_path_directory, current_workflow_name, global_l preparation_status = 0 ''' reset module configuration files ''' - if os.path.isdir(path_to_reference_project_directory + 'configFiles/preExecution'): - list_of_directory_content = os.listdir(path_to_reference_project_directory + 'configFiles/preExecution') + if os.path.isdir(path_to_reference_project_directory + 'config_files/preExecution'): + list_of_directory_content = os.listdir(path_to_reference_project_directory + 'config_files/preExecution') for directory in list_of_directory_content: - path_to_config_files = path_to_reference_project_directory + 'configFiles/preExecution/' + directory + path_to_config_files = path_to_reference_project_directory + 'config_files/preExecution/' + directory list_of_sub_folder_content = os.listdir(path_to_config_files) for config_file in list_of_sub_folder_content: try: diff --git a/UNICADOworkflow/src/pre_condition/reset_of_important_values.py b/UNICADOworkflow/src/pre_condition/reset_of_important_values.py index 41e37b10d29cf491fe9f47d498e530c1c00f4c65..718ad948b9c909926f67c0a7e4f2086b102d47b1 100644 --- a/UNICADOworkflow/src/pre_condition/reset_of_important_values.py +++ b/UNICADOworkflow/src/pre_condition/reset_of_important_values.py @@ -100,17 +100,17 @@ def reset_of_important_values(paths_and_names, parameter_for_design_case, contro aircraft_exchange_file, function_name, frame_info.lineno, log_file_list, current_workflow_name) - ''' open and read range dependent parameter from rangeTypeSpecificFactors.xml file ''' + ''' open and read range dependent parameter from range_type_specific_factors.xml file ''' if not use_range_type_specific_factors == 0: ''' initialize public parameter ''' scenario_range = str('no range specified') design_range = float(-1.0) frame_info = getframeinfo(currentframe()) - path_2 = path_of_working_directory_rce + current_workflow_name + '/rangeTypeSpecificFactors.xml' + path_2 = path_of_working_directory_rce + current_workflow_name + '/range_type_specific_factors.xml' ''' read range type specific factors from xml-file ''' range_type_specific_factors, _ = read_xml_file(path_2, path_of_working_directory_rce, - 'rangeTypeSpecificFactors', function_name, + 'range_type_specific_factors', function_name, frame_info.lineno, log_file_list, current_workflow_name) ''' read and set range scenario''' diff --git a/UNICADOworkflow/src/pre_condition/set_configuration_parameter.py b/UNICADOworkflow/src/pre_condition/set_configuration_parameter.py index ea28d61d0f84a6d4fc63570bc97651aa6f613d6d..37443bb2c1fdc9ea120fe45d98b284fbbf501291 100644 --- a/UNICADOworkflow/src/pre_condition/set_configuration_parameter.py +++ b/UNICADOworkflow/src/pre_condition/set_configuration_parameter.py @@ -511,7 +511,7 @@ def set_configuration_parameter(paths_and_names, global_loop_counter): ''' path to temporary aircraft exchange files of sizing loop ''' path_of_aircraft_exchange_files = path_of_working_directory_rce + current_workflow_name \ - + '/temporaryResults/configFiles/preExecution/' + + '/temporaryResults/config_files/preExecution/' if not os.path.isdir(path_of_aircraft_exchange_files): os.makedirs(path_of_aircraft_exchange_files) # create results folder for configuration files diff --git a/UNICADOworkflow/src/pre_condition/set_range_type_specific_factors.py b/UNICADOworkflow/src/pre_condition/set_range_type_specific_factors.py index dfd7cea173221145615e5e3f3d204500758c23db..440cfec79ef63b7f2f28429d9aea8c7d6dda70cd 100644 --- a/UNICADOworkflow/src/pre_condition/set_range_type_specific_factors.py +++ b/UNICADOworkflow/src/pre_condition/set_range_type_specific_factors.py @@ -17,7 +17,7 @@ def set_range_type_specific_factors(paths_and_names, range_type_specific_factors * [12][0] string: 'path_to_project', [12][1] string: 'the system path to current project folder' * [13][0] string: 'aircraft_type', [13][1] string: 'name of aircraft type' - The input elementTree "range_type_specific_factors" contains the data from rangeTypeSpecificFactors.xml file. + The input elementTree "range_type_specific_factors" contains the data from range_type_specific_factors.xml file. The input string "scenario_range" contains the name of range scenario. diff --git a/UNICADOworkflow/src/sub_function/select_configuration_files_from_existing_project.py b/UNICADOworkflow/src/sub_function/select_configuration_files_from_existing_project.py index a2667c895efdf838b9c78bcab19456cc6562a261..bd8173fc1e9eac2afdd832a32ba0cfdebf165405 100644 --- a/UNICADOworkflow/src/sub_function/select_configuration_files_from_existing_project.py +++ b/UNICADOworkflow/src/sub_function/select_configuration_files_from_existing_project.py @@ -58,28 +58,28 @@ def select_configuration_files_from_existing_project(path_of_working_directory_r # Use configuration file from clean sheet design folder if use_configs_from_existing_project == 1: path_to_config = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project \ - + '/cleanSheetDesign/configFiles/' + + '/cleanSheetDesign/config_files/' check_flag_xml_in_clean_sheet_folder =\ os.path.isdir(path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project - + '/cleanSheetDesign/configFiles/') + + '/cleanSheetDesign/config_files/') folder_name = 'cleanSheetDesign' # Use configuration file from engine calibrated design folder if use_configs_from_existing_project == 2: path_to_config = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project \ - + '/retrofitDesign/engineCalibration/configFiles/' + + '/retrofitDesign/engineCalibration/config_files/' check_flag_xml_in_clean_sheet_folder = \ os.path.isdir(path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project - + '/retrofitDesign/engineCalibration/configFiles/') + + '/retrofitDesign/engineCalibration/config_files/') folder_name = 'engineCalibration' # Use configuration file from aero calibrated design folder if use_configs_from_existing_project == 3: path_to_config = path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project \ - + '/retrofitDesign/aerodynamicCalibration/configFiles/' + + '/retrofitDesign/aerodynamicCalibration/config_files/' check_flag_xml_in_clean_sheet_folder = \ os.path.isdir(path_of_working_directory_rce + current_workflow_name + '/' + aircraft_project - + '/retrofitDesign/aerodynamicCalibration/configFiles/') + + '/retrofitDesign/aerodynamicCalibration/config_files/') folder_name = 'aerodynamicCalibration' # Use configuration file from repository folder @@ -98,11 +98,11 @@ def select_configuration_files_from_existing_project(path_of_working_directory_r or name_of_checkout_dir_from_repository == 'engineCalibration' \ or name_of_checkout_dir_from_repository == 'withoutCalibration': path_to_config = path_to_aircraft_projects + aircraft_type + '/' + aircraft_project + '/retrofitDesign/' +\ - name_of_checkout_dir_from_repository + '/configFiles/' + name_of_checkout_dir_from_repository + '/config_files/' check_flag_xml_in_clean_sheet_folder = os.path.isdir(path_to_config) else: path_to_config = path_to_aircraft_projects + aircraft_type + '/' + aircraft_project + '/' \ - + name_of_checkout_dir_from_repository + '/configFiles/' + + name_of_checkout_dir_from_repository + '/config_files/' check_flag_xml_in_clean_sheet_folder = os.path.isdir(path_to_config) folder_name = 'local repository' @@ -132,17 +132,17 @@ def select_configuration_files_from_existing_project(path_of_working_directory_r ssh_url = 'ssh://git@unicado.ilr.rwth-aachen.de:2222/source/' + repository_name + '.git' if name_of_checkout_dir_from_server == 'cleanSheetDesign': - name_of_checkout_dir_from_server = aircraft_type + '/' + aircraft_project + '/cleanSheetDesign/configFiles' + name_of_checkout_dir_from_server = aircraft_type + '/' + aircraft_project + '/cleanSheetDesign/config_files' else: name_of_checkout_dir_from_server = aircraft_type + '/' + aircraft_project + '/retrofitDesign/' \ - + name_of_checkout_dir_from_server + '/configFiles' + + name_of_checkout_dir_from_server + '/config_files' # call function for sparse-checkout from given ssh-git repository sparse_checkout_flag = sparse_checkout_from_git(path_to_local_repository, ssh_url, branch, name_of_checkout_dir_from_server) path_to_config = path_of_working_directory_rce + '/' + current_workflow_name + '/' + aircraft_project \ - + '/temporaryData/configFiles/' + + '/temporaryData/config_files/' check_flag_xml_in_clean_sheet_folder = os.path.isdir(path_to_config) folder_name = 'ssh-server' diff --git a/UNICADOworkflow/unicado_workflow_conf.xml b/UNICADOworkflow/unicado_workflow_conf.xml index e633cbabf927990903aed6e5037ba3b9ea8fa081..e26d7184429d4e7c39b031773da2e512c420d9cf 100644 --- a/UNICADOworkflow/unicado_workflow_conf.xml +++ b/UNICADOworkflow/unicado_workflow_conf.xml @@ -44,21 +44,21 @@ <gnuplot_path description="Path to the gnuplot application (if gnuplot is not installed and available in PATH, set here the path to the local inkscape folder)"> <value>../gnuplot/</value> </gnuplot_path> - <program_specific_settings description="Program settings."> + <program_specific_settings description="Program settings"> <pre_workflow_operation_settings description="Parameter for the pre operation functionalities of workflow"> - <set_project_folder_to_default> + <set_project_folder_to_default description="Delete all old files from project folder and set to default. Switch: true (project folder is set to default) / false (no files are deleted)"> <value>false</value> <default>false</default> </set_project_folder_to_default> - <delete_plots_before_run> + <delete_plots_before_run description="Old plots and reports are deleted from folders (especially useful for studies). Switch: true (reporting/plots folder is cleared) / false (no files are deleted)"> <value>true</value> <default>true</default> </delete_plots_before_run> - <delete_engines_before_run> + <delete_engines_before_run description="Old engine data are deleted from from project folder. Switch: true (engine_data folder is cleared) / false (no files are deleted)"> <value>true</value> <default>true</default> </delete_engines_before_run> - <clear_old_log_files_before_run> + <clear_old_log_files_before_run description="Clear all subtool logfiles at start. Switch: true (log_files of submodules are deleted before workflow start) / false (no files are deleted)"> <value>true</value> <default>true</default> </clear_old_log_files_before_run> @@ -76,15 +76,15 @@ <switch_off_info_files description="Switch to switch off info file generation during the iteration loop. Switch: true (no info files are written during iteration) / false (info files are written in every iteration loop if write_info_files is true)"> <value>true</value> </switch_off_info_files> - <check_settings_for_design_logic> + <check_settings_for_design_logic description="Settings of submodules are checked and adapted according to the design mode given in ./program_settings/design_case_settings/design_mode. Switch: true (check settings of submodules for design mode and adapt accordingly) / false (no checks of settings in submodules) "> <value>true</value> <default>true</default> </check_settings_for_design_logic> - <use_control_settings_for_subprograms> + <use_control_settings_for_subprograms description="The control settings of the workflow are copied to all submodules. Switch: true (the control_settings of workflow are also taken in submodules) / false (no adaption of submodule control settings)"> <value>true</value> <default>true</default> </use_control_settings_for_subprograms> - <use_range_type_specific_factors> + <use_range_type_specific_factors description="Adapt aircraft specific factors in all used modules. Selector: mode_0 (No adaptation) / mode_1 (based on design range) / mode_2 (use short-range values) / mode_3 (use medium-range values) / mode_4 (use long-range values)"> <value>mode_0</value> <default>mode_0</default> </use_range_type_specific_factors> @@ -145,16 +145,16 @@ <default>true</default> </save_aircraft_exchange_files_to_result_folder> </iteration_settings> - <post_workflow_operation_settings> - <save_configs_to_result_folder> + <post_workflow_operation_settings description="Parameter for the post operation functionalities of workflow"> + <save_configs_to_result_folder description="Configs of the subprograms are stored in the folder ../workflowResults/[Workflow name]/config_files. Switch: true (configs are saved in the results folder) / false (configs are not copied to the results folder)"> <value>true</value> <default>true</default> </save_configs_to_result_folder> - <save_log_files_to_result_folder> + <save_log_files_to_result_folder description="Logfiles of the subprograms are stored in the folder ../workflowResults/[Workflow name]/reporting/log_files. Switch: true (log_files are saved in the results folder) / false (log_files are not copied to the results folder)"> <value>true</value> <default>true</default> </save_log_files_to_result_folder> - <save_final_aircraft_exchange_file_to_result_folder> + <save_final_aircraft_exchange_file_to_result_folder description="Aircraft exchange files of each iteration are stored in the folder ../workflowResults/[Workflow name]/aircraft_exchange_files. Switch: true (aircraft exchange files are saved in the results folder) / false (aircraft exchange files are not copied to the results folder)"> <value>true</value> <default>true</default> </save_final_aircraft_exchange_file_to_result_folder> @@ -171,11 +171,11 @@ <default>mode_0</default> </design_mode> <automatic_trim descritpion="Trim is automated"> - <enable> - <value>True</value> - <default>True</default> + <enable description="Enable automatic trim. Switch: true (automatic trim is on) / false (automatic trim is switched off)"> + <value>true</value> + <default>true</default> </enable> - <trim_accuracy> + <trim_accuracy description="Accuracy of aoutomatic trimming of moment coefficient"> <value>1e-4</value> <default>1e-4</default> </trim_accuracy> @@ -189,18 +189,18 @@ <value>30</value> <default>30</default> </max_number_of_iterations_before_exit> - <damp_MTOM_during_iteration description="Switch to activate damping MTOM during iteration; Switch: True (Mean value of the last 2 MTOM values is used to suppress vibrations if necessary.) / False (Damping MTOM is deactivated)"> - <value>False</value> - <default>False</default> + <damp_MTOM_during_iteration description="Switch to activate damping MTOM during iteration; Switch: true (Mean value of the last 2 MTOM values is used to suppress vibrations if necessary.) / false (Damping MTOM is deactivated)"> + <value>false</value> + <default>false</default> </damp_MTOM_during_iteration> - <damp_OME_during_iteration description="Switch to activate damping OME during iteration; Switch: True (Mean value of the last 2 OME values is used to suppress vibrations if necessary.) / False (Damping MTOM is deactivated)"> - <value>False</value> - <default>False</default> + <damp_OME_during_iteration description="Switch to activate damping OME during iteration; Switch: true (Mean value of the last 2 OME values is used to suppress vibrations if necessary.) / false (Damping MTOM is deactivated)"> + <value>false</value> + <default>false</default> </damp_OME_during_iteration> </iteration_settings> - <parallel_execution description="Switch if a parallel execution of the workflow is planned; Switch: True (Parallel execution is planned (configuration files will not be restored at the end)) / False (No parallel execution is planned (configuration files will be restored at the end))"> - <value>False</value> - <default>False</default> + <parallel_execution description="Switch if a parallel execution of the workflow is planned; Switch: true (Parallel execution is planned (configuration files will not be restored at the end)) / false (No parallel execution is planned (configuration files will be restored at the end))"> + <value>false</value> + <default>false</default> </parallel_execution> <calibration_settings description="Detailed settings to design calibrated aircraft configurations."> <ome_calibration_mode description="Selector for OME calibration mode. Selector: mode_0 (no calibration active) / mode_1 (calibration using fuselage mass)"> @@ -211,26 +211,26 @@ <value>mode_0</value> <default>mode_0</default> </mtom_calibration_mode> - <target_values> - <ome> + <target_values description="Preset target values for MTOM and OME"> + <ome description="Preset value for target OME"> <value>42100</value> </ome> - <mtom> + <mtom description="Preset value for target MTOM"> <value>77000</value> </mtom> </target_values> - <reset_calibration_factors_at_start> - <reset_fuselage_mass> - <value>True</value> - <default>True</default> + <reset_calibration_factors_at_start description="Switches to reset calibration values at start."> + <reset_fuselage_mass description="Reset the fuselage_mass calibration value for OME calibration at start. Switch: true (reset of value) / false (value is kept)"> + <value>true</value> + <default>true</default> </reset_fuselage_mass> - <reset_viscous_drag_counts> - <value>True</value> - <default>True</default> + <reset_viscous_drag_counts description="Reset the aerodynamic calibration value for MTOM calibration at start. Switch: true (reset of value) / false (value is kept)"> + <value>true</value> + <default>true</default> </reset_viscous_drag_counts> - <reset_engine_fuel_flow_factor> - <value>True</value> - <default>True</default> + <reset_engine_fuel_flow_factor description="Reset the fuel flow calibration value for MTOM calibration at start. Switch: true (reset of value) / false (value is kept)"> + <value>true</value> + <default>true</default> </reset_engine_fuel_flow_factor> </reset_calibration_factors_at_start> <iteration_settings> @@ -247,21 +247,21 @@ <default>20</default> </max_number_of_iterations_before_ome_calibration_exit> <damp_MTOM_calibration description="Switch to activate damping MTOM during MTOM calibration."> - <enable> - <value>False</value> - <default>False</default> + <enable description="Enable MTOM damping during calibration. If relativ change exceeds maximum_extrapolation_lever, it is automatically damped to that value. Switch: true (damping is on) / false (damping is off)"> + <value>false</value> + <default>false</default> </enable> - <maximum_mtom_extrapolation_lever> + <maximum_mtom_extrapolation_lever description="Maximum allowable relative change in MTOM between two calibrations"> <value>2</value> <default>2</default> </maximum_mtom_extrapolation_lever> </damp_MTOM_calibration> <damp_OME_calibration description="Switch to activate damping OME during OME calibration."> - <enable> - <value>False</value> - <default>False</default> + <enable description="Enable OME damping during calibration. If relativ change exceeds maximum_extrapolation_lever, it is automatically damped to that value. Switch: true (damping is on) / false (damping is off)"> + <value>false</value> + <default>false</default> </enable> - <maximum_ome_extrapolation_lever> + <maximum_ome_extrapolation_lever description="Maximum allowable relative change in OME between two calibrations"> <value>2</value> <default>2</default> </maximum_ome_extrapolation_lever> @@ -270,51 +270,4 @@ </calibration_settings> </design_case_settings> </program_settings> - <ControlSettings Desc="general control settings"> - <ProgramSpecific Desc="program-specific control settings"> - <preSettings Desc="Parameter for the pre operation functionalities of workflow"> - <setProjectFolderToDefault Default="0" Desc="1: Delete all old files from project folder and set to default">0</setProjectFolderToDefault> - <DeletePlotsBeforeRun Default="1" Desc="1: Old plots and reports are deleted from folders (especially useful for studies)">1</DeletePlotsBeforeRun> - <DeleteEnginesBeforeRun Default="1" Desc="1: Old engine data are deleted from from project folder">1</DeleteEnginesBeforeRun> - <ClearOldLogFilesAtStart Default="1" Desc="Clear all subtool logfiles at start">1</ClearOldLogFilesAtStart> - </preSettings> - <useSettings Desc="Parameter for the design mode operation functionalities of workflow"> - <CheckSettingsForDesignLogic Default="1" Desc="Settings of subprograms are checked">1</CheckSettingsForDesignLogic> - <UseControlSettingsForSubPrograms Default="1" Desc="1: Using General Control Settings for All Subprograms">1</UseControlSettingsForSubPrograms> - <UseRangeTypeSpecificFactors Default="0" Des="Adapt aircraft specific factors in all used modules. Mode 0: No adaptation, Mode 1: based on design range, 2: short-range, 3: mid-range, 4: long-range">0</UseRangeTypeSpecificFactors> - </useSettings> - <postSettings Desc="Parameter for the post operation functionalities of workflow"> - <SaveConfigsToResultFolder Default="1" Desc="1: Configs of the subprograms are stored in the folder ../workflowResults/[Workflow name]/configFiles">1</SaveConfigsToResultFolder> - <SaveLogFilesToResultFolder Default="1" Desc="1: Logfiles of the subprograms are stored in the folder ../workflowResults/[Workflow name]/reporting/logFiles">1</SaveLogFilesToResultFolder> - <SaveAcftXmlToResultFolder Default="1" Desc="1: Acft-XML is buffered after each iteration" afterEachIteration="1">1</SaveAcftXmlToResultFolder> - </postSettings> - <DesignCase> - <Mode Default="1" Desc="0: Standard (no checks in subprograms), 1: Clean Sheet Design, 2: Design with existing geometry, 3: Mission study analysis without design sizing loop 4: Design sizing without mission study analysis">1</Mode> - <Optimization Default="0" Desc="0: No optimization will performed, 1: Workflow will perform an optimization (Attention! Needs a lot of time!)">0</Optimization> - <ParameterStudy Default="0" Desc="0: No parameter study will performed, 1: Workflow will performe a parameter study (Attention! Needs a lot of time!">0</ParameterStudy> - <Calibration> - <CalibrateToTargetValues Default="0" Desc="1: use target values for MTOM and OME (see below)">0</CalibrateToTargetValues> - <TargetMTOM Desc="Given MTOM">77000</TargetMTOM> - <TargetOME Desc="Given OME (can be skipped, if already calibrated)" Skip="0">42100</TargetOME> - <FreeVariableOMECal Default="1" Desc="1: massEstimation (fuselage)" ResetAtStart="1">1</FreeVariableOMECal> - <FreeVariableMTOMCal Default="1" Desc="1: engineSizing (FuelFlow), 2:calculatePolar (DragReduction)" ResetBothVariablesAtStart="1" ResetUsedVariableAtStart="1">1</FreeVariableMTOMCal> - <NumberOfIterations Default="4" Desc="Number of iterations after which each MTOM calibration is performed">4</NumberOfIterations> - <MaxIterationsBeforeExitOMECal Default="20" Desc="Number of iterations before the OME calibration is canceled by exit(1)">20</MaxIterationsBeforeExitOMECal> - <TruncErrorFactor Default="5" Desc="Termination criterion: As factor regarding convergenceCriteria (see below)">5</TruncErrorFactor> - <Damp_MTOM_Calibration_Lever Default="0" Desc="Switch for damping MTOM calibration lever arm" x_rel_max="2">0</Damp_MTOM_Calibration_Lever> - <Damp_OME_Calibration_Lever Default="0" Desc="Switch for damping OME calibration lever arm" x_rel_max="2">0</Damp_OME_Calibration_Lever> - </Calibration> - <PayloadRangeAnalysis Desc="for determination of points on PL-Range diagram (not suitable for input of values)"> - <ExitIfMTOMLimitReached AllowedRelOvershoot="0." Default="1" Desc="1: Program abort, if TOM ge MTOM (in Study Mode)">1</ExitIfMTOMLimitReached> - <ExitIfFuelLimitReached AllowedRelOvershoot="0." Default="1" Desc="1: Program abort, if fuel estimated ge MFM">1</ExitIfFuelLimitReached> - <DeltaTOMtoMTOM Desc="MTOM - TOM (study mission)" Unit="kg">0</DeltaTOMtoMTOM> - <DeltaFueltoMFM Desc="MFM - Mission Fuel (study mission)" Unit="kg">0</DeltaFueltoMFM> - <LeastSquareDelta Desc="sqrt(pow(deltaFuel,2)+pow(deltaTOM,2))" Unit="kg">0</LeastSquareDelta> - </PayloadRangeAnalysis> - </DesignCase> - </ProgramSpecific> - </ControlSettings> - <ProgramSettings Desc="program settings"> - - </ProgramSettings> </module_configuration_file> \ No newline at end of file