{"id":39087313,"url":"https://github.com/ym1906/uq-sa-fusion-optimisation","last_synced_at":"2026-01-17T18:42:25.509Z","repository":{"id":240048052,"uuid":"689996591","full_name":"ym1906/uq-sa-fusion-optimisation","owner":"ym1906","description":"Uncertainty Quantification and Sensitivity Analysis developed by the PPMI Group at UKAEA","archived":false,"fork":false,"pushed_at":"2025-02-19T16:41:26.000Z","size":74188,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-19T17:36:41.523Z","etag":null,"topics":["nuclearfusion","robustness-analysis","sensitivity-analysis","uncertainty-quantification"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ym1906.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-11T10:35:52.000Z","updated_at":"2025-02-19T16:41:30.000Z","dependencies_parsed_at":"2025-02-19T17:39:42.920Z","dependency_job_id":null,"html_url":"https://github.com/ym1906/uq-sa-fusion-optimisation","commit_stats":null,"previous_names":["ym1906/uq-sa-fusion-optimisation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ym1906/uq-sa-fusion-optimisation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ym1906%2Fuq-sa-fusion-optimisation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ym1906%2Fuq-sa-fusion-optimisation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ym1906%2Fuq-sa-fusion-optimisation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ym1906%2Fuq-sa-fusion-optimisation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ym1906","download_url":"https://codeload.github.com/ym1906/uq-sa-fusion-optimisation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ym1906%2Fuq-sa-fusion-optimisation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28516199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:28:00.501Z","status":"ssl_error","status_checked_at":"2026-01-17T18:28:00.150Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nuclearfusion","robustness-analysis","sensitivity-analysis","uncertainty-quantification"],"created_at":"2026-01-17T18:42:25.417Z","updated_at":"2026-01-17T18:42:25.476Z","avatar_url":"https://github.com/ym1906.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![cover_image](https://github.com/ym1906/uq-sa-fusion-optimisation/blob/main/examples/plots/uq_design_fusion.jpeg)\n\n# Read Me\n\nThis repository contains a suite of tools to perform SA and UQ analysis, with a view towards optimising the robustness and reliability of a nuclear fusion power plant design.\n\nIt has been design to import HDF files generated by EasyVVUQ to run Monte Carlo runs of PROCESS on HPC and perform data analysis. However, the tools only concern the data and not its origin, therefore it should work with data from any source with minor modifications to the code.\n\nThe repository uses Bokeh to generate the plots, which means they can be made interactive and easily hosted as html. Some data analysis tools are imported from Salib.\n\n## Research questions\n\nWhat questions can you answer with this suite?\n\n### What is the probability of powerplant failure subject to uncertainty?\n\nWhen there is uncertainty in design parameters a powerplant is at risk of failure, we want to know this probability.\n\nWhich uncertain parameters are likely to lead to failure?\n\n### How can under-performance be recovered?\n\nUnder performance in design parameters is recovered by control variables. This is constrained by design variables.\n\n\n\n## Demonstration of UQ tool suite\n\nThese tools have been developed to analyse the output of PROCESS Monte Carlo runs, but can analyse data from any software and source if it can be presented in a np.DataFrame format.\n\nThere is a suite of tools design to perform sensitivity analyses (SA), uncertainty quantification (UQ)\n\n### Perform Regional Sensitivity Analysis\n\nThis looks for variables which cause convergence, caclulates a relative index for the most significance.\n\nIn this example use-cases will be demonstrated.\n\n![convergrence_sensitivity](\u003chttps://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/Input%20Parameters%20Influencing%20Convergence_plot.png\u003e)\n\n### Calculate sensitivity for a given figure of merit\n\nIn this case, find the sensitivity towards the major radius, \"rmajor\".\n\nUses rbd_fast method from Salib library. Higher number means more sensitivity.\n\nThen filter for sensitivity above a given number.\n\n![rmajor_sobol](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/Sobol%20Indices%20for%20Major%20Radius_plot.png)\n\n## Create a scatter plot of the results\n\n- This creates a histogram color map of converged solutions (hist=True) and a scatter plot (scatter=True).\n- This can be used for visual identification of relationships, if there is a linear slant to the data it indicates a relationship exists\n- Red on the color map indicates that more points fall in this region.\n- You can plot an individual graph with \"scatter\" and a grid of scatter plots with \"scatter_grid\".\n\n ![scatter_plot](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/tbrnmnrmajor-plot.png)\n ![scatter_grid](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/scatter_gird.png)\n\n## Create CDF plots\n\nPlot the CDF of converged and unconverged samples, as well as the convergence rate for a given sampled parameter.\n\nIf there is a difference between the red and blue lines, this indicates that converged runs are coming from a different selection of input parameters to unconverged solutions (ie the figure of merit is sensitive to convergence).\n\nAs an example, compare the aspect ratio to the number of cycles in the CS coil.\n\n![aspect_ecdf](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/aspect-ecdf-plot.png)\n![n_cycle_ecdf](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/n_cycle_min-ecdf-plot.png)\n\n## Regional Sensitivity Analysis\n\nWe can investigate regional relationships between variables. For example, when the major radius is small, different things may be compromised to achieve a solution when then the major radius is large.\n\nIn this example, to achieve a high burn time the major radius must change from the typical size required for a lower burn time.\n\n![rsatbrnmn](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/tbrnmn-rsa-plot.png)\n\n## Perform Uncertainty Optimisation\n\nThis analysis aims to optimise design space by while integrating uncertainty to the process.\nThis can be addressed by considering the design reliability, robustness, and how the aspects of the design can be traded to achieve the required performance outcomes.\n\nIt is only possible to achieve a robust and reliable design by considering variability in the model inputs during the optimisation stage.  \n\nStochastic methods were developed in this work enable new understanding of the EU DEMO design by first investigating the failure rate of design subject to uncertainty, and then locating the optimal regions of parameter space.\n\nThe optimisation tool analyses the design space to confidently predict regions which will improve reliability and robustness. These bounds can be updated to inform the next round of Monte Carlo experiments and reassess the design space.\n\n![uqoptimisation](https://github.com/ym1906/uq-sa-fusion-design/blob/main/examples/plots/uncertaintyoptimisation.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fym1906%2Fuq-sa-fusion-optimisation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fym1906%2Fuq-sa-fusion-optimisation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fym1906%2Fuq-sa-fusion-optimisation/lists"}