{"id":1785,"date":"2019-08-24T18:43:54","date_gmt":"2019-08-24T16:43:54","guid":{"rendered":"https:\/\/aerospaceresearch.net\/?p=1785"},"modified":"2019-08-24T18:43:54","modified_gmt":"2019-08-24T16:43:54","slug":"gsoc2019ksatthemistoklis-3rd-coding-period","status":"publish","type":"post","link":"https:\/\/aerospaceresearch.net\/?p=1785","title":{"rendered":"[GSoC2019|Ksat|Themistoklis] 3rd Coding Period"},"content":{"rendered":"\n<p>This third\nblog post will present the progress of my project during the final coding\nperiod.<\/p>\n\n\n\n<p>If this is\nyour first time reading about the ESDC project it is highly recommended that\nyou go through the first <a href=\"https:\/\/aerospaceresearch.net\/?p=1542\">https:\/\/aerospaceresearch.net\/?p=1542<\/a>\nand second <a href=\"https:\/\/aerospaceresearch.net\/?p=1571\">https:\/\/aerospaceresearch.net\/?p=1571<\/a>\nposts before continuing with this one.<\/p>\n\n\n\n<p>During the previous coding periods the key functionality\nthat was planned for this project was implemented. Thus, during the final\ncoding period there was time for improvements, development of one additional\nfeature whose inspiration came up during the previous period, refactoring and\norganizing the file structure of the code as well as documenting the implemented\ntool for feature users or developers.<\/p>\n\n\n\n<p>First, the\nfollowing improvements were made:<\/p>\n\n\n\n<p>-) The way\nin which the minimum and maximum value of a continuous degree-of-freedom is\ncalculated was adjusted. Previously the minimum and maximum value was\ncalculated from the aggregate of the evolution data, which includes all lineages\nand generations of the genetic optimization process. Now these values are\ncalculated specifically for each visualization scenario, only from the relevant\nlineages and generations according to user defined options. <\/p>\n\n\n\n<p>-) The part\nof the code responsible for generating the animations was refactored and\nextended to include the option to save the animations as compressed gif files.\nThe need for this arose after finding that the size of the gif files would\neasily grow to tenths of megabytes even for the simple optimization scenarios\nexamined here.<\/p>\n\n\n\n<p>Next, an\nadditional type of graphic, which allows for the visualization of useful\nsubsystems\u2019 information on top of the existing 2d or 3d visuals was\nimplemented. This is a stacked bar graph spanning the y-axis on the 2d plots\nand the z-axis on the 3d plots. The units of the stacked bar graphs are the\nsame as the units of the corresponding axis that it\u2019s spanning. The height of\nthe individual bars of a stack are proportional to the values of the\ncorresponding degree-of-freedom of the respective subsystems that each bar is\nrepresenting.<\/p>\n\n\n\n<p>Currently,\nthe stacked bar graphs are used to visualize the distribution of the electric\npropulsion system\u2019s total mass fraction into the corresponding subsystems.\nThus, the stacked bar graphs can be used to explore how the mass fraction of\neach individual subsystem is changing as the genetic algorithms navigates\nthrough different design points. To better understand this, let\u2019s explore two\nexamples.<\/p>\n\n\n\n<p>The first example is a 2d visualization, where the y-axis has been assigned to total mass fraction, the line style to propulsion system type, the line color to effective exhaust velocity, the marker to propellant and the marker color to thrust. Additionally, the stacked bar charts have been activated. As the y-axis corresponds to the total mass fraction, each bar of the stacks will correspond to the mass fraction of the respective subsystem. Only the best lineage is selected for visualization. The visualization system returns the following figure:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"900\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2019\/08\/input_case_1_totalimpulse_112670_deltav_686_plot_case_2.png\" alt=\"\" class=\"wp-image-1787\"\/><\/figure>\n\n\n\n<p>In the\nfigure above, we can examine how the mass fraction of each subsystem evolves as\nthe design of the system becomes optimal. In this simplified example, we can\nsee that the majority of the decrease of the total mass fraction can be\nattributed to the reduction of the propellant and tank subsystems. Of course,\nfor this shrinkage to happen and the electric propulsion system to be able to\nachieve the mission requirements, additional adjustments in other aspects of\nthe systems are being made by the optimization algorithm. Specifically, between\nthe starting and the final design point we can see that the propulsion system\ntype changes from Arcjet (solid line) to Grid Ion Thruster (dashed line), the\npropellant changes from He (crosshair marker) to Xe (circle marker), the\neffective exhaust velocity is increased (line color turns deep red from light\nblue and \u201cjet\u201d is the chosen colormap) and the thrust is decreased (marker\ncolor turns deep blue from deep red and \u201cjet\u201d is the chosen colormap).<\/p>\n\n\n\n<p>The stacked bar graphs can also be activated in 3d visualizations. In this next example, the x-axis has been assigned to effective exhaust velocity, the y-axis to thrust, the z-axis to total mass fraction, the line style to propulsion system type and the marker type to propellant. Only the best lineage is selected for visualization. The visualization system returns the following figure:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"900\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2019\/08\/input_case_1_deltav_686_plot_case_1_lineage_1.png\" alt=\"\" class=\"wp-image-1788\"\/><\/figure>\n\n\n\n<p>Like the\nprevious example, it\u2019s easy to point out that the reduction of the total mass\nfraction can be greatly attributed to the reduction of the propellant and tank\nsubsystems. <\/p>\n\n\n\n<p>When using the stacked bar graphs in the 3d plot, it is also practical to include more lineages in the visualization. Selecting the three best lineages, the visualization system returns the following figure:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"900\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2019\/08\/input_case_1_deltav_686_plot_case_1_lineage_1_3.png\" alt=\"\" class=\"wp-image-1789\"\/><\/figure>\n\n\n\n<p>After this\nfinal feature was implemented, additional refactoring of the code was done to\nsimplify certain parts and achieve improved extendibility and readability.\nRefactoring the code was also done to end up in a restructured organization of\nfunctions into subfolders. As the visualization system was designed with\nflexibility, modularity and extendibility in mind, it is consisted of more than\n100 functions. For this reason, a function dependency graph proved a great aid\nfor understanding the existing dependencies and making the appropriate\nrefactoring and restructuring decisions.<\/p>\n\n\n\n<p>Finally, additional\ndocumentation was created for this project to accompany the blog posts during\nGSoC. All details regarding the available options and settings for configuring\nthe visualization system according to specific needs can be found in the\ndocumentation. There, one can also find ready to use XML input file templates\nwhich correspond to the visualizations found in all GSoC blog posts.<\/p>\n\n\n\n<p>Congratulations\nif you \u2018ve made so far, this was the last long post! A final report will also\nbe released very soon! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>This third blog post will present the progress of my project during the final coding period. If this is your first time reading about the ESDC project it is highly recommended that you go through the first https:\/\/aerospaceresearch.net\/?p=1542 and second https:\/\/aerospaceresearch.net\/?p=1571 posts before continuing with this one. During the previous coding periods the key functionality &hellip; <a href=\"https:\/\/aerospaceresearch.net\/?p=1785\" class=\"more-link\"><span class=\"screen-reader-text\">\u201e[GSoC2019|Ksat|Themistoklis] 3rd Coding Period\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/1785"}],"collection":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1785"}],"version-history":[{"count":1,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/1785\/revisions"}],"predecessor-version":[{"id":1790,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/1785\/revisions\/1790"}],"wp:attachment":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}