fuse.jl

FUsion Synthesis Engine

https://github.com/projecttorreypines/fuse.jl

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    4 of 32 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary

Keywords from Contributors

matrix-exponential
Last synced: 6 months ago · JSON representation ·

Repository

FUsion Synthesis Engine

Basic Info
  • Host: GitHub
  • Owner: ProjectTorreyPines
  • License: apache-2.0
  • Language: Julia
  • Default Branch: master
  • Homepage: https://fuse.help
  • Size: 395 MB
Statistics
  • Stars: 58
  • Watchers: 10
  • Forks: 11
  • Open Issues: 145
  • Releases: 74
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation Notice

README.md

Ask DeepWiki

FUSE.jl

FUSE (FUsion Synthesis Engine) is an open-source framework for integrated simulations of fusion devices. Originally developed by General Atomics, FUSE is now publicly available under the Apache 2.0 license.

The figure below is a sneakpeak of the models implemented in FUSE: FUSE capabilities

Resources

Here are some key resources for getting started with FUSE:

Objectives

FUSE aims to achieve the following objectives:

  • ⚡ Provide a highly efficient, modular framework that tightly couples models across different domains.
  • 🧩 Integrate plasma physics, engineering, control, balance of plant, and costing systems.
  • 🤖 Leverage machine learning to overcome the typical fidelity/speed tradeoff in simulations.
  • ⏱️ Support both stationary and time-dependent simulations.
  • 💻 Harness parallelism and high-performance computing (HPC) for large-scale studies.
  • 🎯 Perform multi-objective constrained optimization to explore design tradeoffs.
  • 🔍 Enable comprehensive sensitivity analysis and uncertainty quantification.

Basic Concepts

FUSE is entirely written in Julia and is structured around the following core concepts:

  1. 📂 Data storage: All data is stored in the dd structure, which follows the ITER IMAS ontology.
  2. 🧠 Actors: The core components of FUSE simulations are physics and engineering actors.
  3. 🕹️ Control: Actor functionality is governed by act parameters.
  4. 🚀 Initialization: The data structure can be initialized from 0D ini parameters.
  5. 🔧 Use cases: FUSE includes templates for various machines (e.g., FPP, ITER, ARC).
  6. 🔄 Studies: Studies pre-bake commonly used functionalities, typically involving multiple FUSE simulations (eg. database generation or multi objective optimizations).
  7. 🌍 Interoperability: FUSE interfaces via dd with existing modeling tools like OMFIT/OMAS and the IMAS ecosystem.

A diagram illustrating these concepts is provided below: FUSE Diagram

Usage Example

Here’s a simple example of setting up and running a FUSE simulation in Julia:

```julia using FUSE

Obtain ini and act parameters for a specific use case

ini, act = FUSE.case_parameters(:FPP)

Initialize the dd structure from 0D ini parameters

dd = FUSE.init(ini, act)

Run a stationary plasma actor simulation

FUSE.ActorStationaryPlasma(dd, act)

Get an overview of the simulation results

FUSE.digest(dd) ```

Make sure to take a look at the introductory tutorial and examples.

Installation

Follow these installation instructions.

Citation

Please cite this work as follows:

@article{meneghini2024fuse, author = {Meneghini, O. and Slendebroek, T. and Lyons, B.C. and McLaughlin, K. and McClenaghan, J. and Stagner, L. and Harvey, J. and Neiser, T.F. and Ghiozzi, A. and Dose, G. and Guterl, J. and Zalzali, A. and Cote, T. and Shi, N. and Weisberg, D. and Smith, S.P. and Grierson, B.A. and Candy, J.}, doi = {10.48550/arXiv.2409.05894}, journal = {arXiv}, title = {{FUSE (Fusion Synthesis Engine): A Next Generation Framework for Integrated Design of Fusion Pilot Plants}}, year = {2024} }

Owner

  • Name: Project Torrey Pines
  • Login: ProjectTorreyPines
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0

message: "If you use this work, please cite it as below."

authors:
  - family-names: "Meneghini"
    given-names: "O."
  - family-names: "Slendebroek"
    given-names: "T."
  - family-names: "Lyons"
    given-names: "B.C."
  - family-names: "McLaughlin"
    given-names: "K."
  - family-names: "McClenaghan"
    given-names: "J."
  - family-names: "Stagner"
    given-names: "L."
  - family-names: "Harvey"
    given-names: "J."
  - family-names: "Neiser"
    given-names: "T.F."
  - family-names: "Ghiozzi"
    given-names: "A."
  - family-names: "Dose"
    given-names: "G."
  - family-names: "Guterl"
    given-names: "J."
  - family-names: "Zalzali"
    given-names: "A."
  - family-names: "Cote"
    given-names: "T."
  - family-names: "Shi"
    given-names: "N."
  - family-names: "Weisberg"
    given-names: "D."
  - family-names: "Smith"
    given-names: "S.P."
  - family-names: "Grierson"
    given-names: "B.A."
  - family-names: "Candy"
    given-names: "J."
title: "FUSE (Fusion Synthesis Engine): A Next Generation Framework for Integrated Design of Fusion Pilot Plants"
doi: "10.48550/arXiv.2409.05894"
date-released: "2024-09-02"
url: "https://github.com/ProjectTorreyPines/FUSE.jl"

preferred-citation:
  type: article
  authors:
    - family-names: "Meneghini"
      given-names: "O."
    - family-names: "Slendebroek"
      given-names: "T."
    - family-names: "Lyons"
      given-names: "B.C."
    - family-names: "McLaughlin"
      given-names: "K."
    - family-names: "McClenaghan"
      given-names: "J."
    - family-names: "Stagner"
      given-names: "L."
    - family-names: "Harvey"
      given-names: "J."
    - family-names: "Neiser"
      given-names: "T.F."
    - family-names: "Ghiozzi"
      given-names: "A."
    - family-names: "Dose"
      given-names: "G."
    - family-names: "Guterl"
      given-names: "J."
    - family-names: "Zalzali"
      given-names: "A."
    - family-names: "Cote"
      given-names: "T."
    - family-names: "Shi"
      given-names: "N."
    - family-names: "Weisberg"
      given-names: "D."
    - family-names: "Smith"
      given-names: "S.P."
    - family-names: "Grierson"
      given-names: "B.A."
    - family-names: "Candy"
      given-names: "J."
  doi: "10.48550/arXiv.2409.05894"
  journal: "arXiv"
  title: "FUSE (Fusion Synthesis Engine): A Next Generation Framework for Integrated Design of Fusion Pilot Plants"
  year: 2024

GitHub Events

Total
  • Fork event: 10
  • Create event: 191
  • Commit comment event: 12
  • Release event: 48
  • Issues event: 85
  • Watch event: 34
  • Delete event: 92
  • Member event: 5
  • Issue comment event: 372
  • Push event: 1,035
  • Pull request review event: 46
  • Pull request review comment event: 48
  • Pull request event: 246
Last Year
  • Fork event: 10
  • Create event: 191
  • Commit comment event: 12
  • Release event: 48
  • Issues event: 85
  • Watch event: 34
  • Delete event: 92
  • Member event: 5
  • Issue comment event: 372
  • Push event: 1,035
  • Pull request review event: 46
  • Pull request review comment event: 48
  • Pull request event: 246

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 4,939
  • Total Committers: 32
  • Avg Commits per committer: 154.344
  • Development Distribution Score (DDS): 0.306
Past Year
  • Commits: 1,582
  • Committers: 23
  • Avg Commits per committer: 68.783
  • Development Distribution Score (DDS): 0.205
Top Committers
Name Email Commits
Orso Meneghini o****2@g****m 3,426
TimSlendebroek 3****k 615
fuse bot f****t@f****m 329
adrianaghiozzi 6****i 116
Brendan Lyons l****c@f****m 114
jmcclena j****a@g****m 76
Min-Gu Yoo m****6@g****m 34
jacksonharvey h****j@f****m 24
kevinm387 k****1@g****m 23
David Weisberg w****d@f****m 23
Tyler Cote c****t@f****m 18
chrismarsden7 c****e@g****m 18
Nan Shi s****n@f****m 16
Tom Neiser n****t@f****m 16
Luke Stagner s****l@f****m 15
Giacomo Dose g****e@g****m 14
Steven McNamara s****a@t****k 10
avdeevag a****g@f****m 9
Jerome Guterl g****j@f****m 8
+Tim Slendebroek s****t@o****m 6
CompatHelper Julia c****y@j****g 5
+Tim Slendebroek s****t@o****m 5
Steve Kelly k****a@g****m 4
Amani Zalzali 4****7 4
anand jain a****j@u****u 3
JisungKang f****7@g****m 2
Nathan Cummings n****s@h****k 1
Severin Denk d****s@f****m 1
audreysa a****a@e****u 1
wesleyliu728 w****8@g****m 1
and 2 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 144
  • Total pull requests: 277
  • Average time to close issues: 3 months
  • Average time to close pull requests: 24 days
  • Total issue authors: 18
  • Total pull request authors: 24
  • Average comments per issue: 0.92
  • Average comments per pull request: 1.49
  • Merged pull requests: 155
  • Bot issues: 1
  • Bot pull requests: 24
Past Year
  • Issues: 62
  • Pull requests: 240
  • Average time to close issues: 5 days
  • Average time to close pull requests: 8 days
  • Issue authors: 16
  • Pull request authors: 21
  • Average comments per issue: 0.65
  • Average comments per pull request: 1.54
  • Merged pull requests: 135
  • Bot issues: 1
  • Bot pull requests: 24
Top Authors
Issue Authors
  • orso82 (74)
  • TimSlendebroek (34)
  • bclyons12 (12)
  • jmcclena (6)
  • TokaMcNamara (2)
  • nanshi1177 (2)
  • SolaireZ (2)
  • adrianaghiozzi (2)
  • chrismarsden7 (1)
  • avdeevag (1)
  • gwshin (1)
  • jguterl (1)
  • Seanlyons316 (1)
  • github-actions[bot] (1)
  • AreWeDreaming (1)
Pull Request Authors
  • bclyons12 (74)
  • orso82 (52)
  • TimSlendebroek (46)
  • github-actions[bot] (24)
  • jmcclena (21)
  • adrianaghiozzi (12)
  • mgyoo86 (10)
  • nanshi1177 (7)
  • AreWeDreaming (5)
  • daveweisberg (5)
  • tomneiser (4)
  • avdeevag (4)
  • sjkelly (2)
  • nelsonand (1)
  • jguterl (1)
Top Labels
Issue Labels
enhancement (9) bug (8) duplicate (6) documentation (5) Ideas (4) deployment (4) BOP (3) help needed (3) performance (3) GASC (2) JuliaHub (2) build (2) work in progress (1) compatibility (1) framework (1) low priority (1) cases (1) engineering (1) question (1) New-Actor (1) New-Coupling (1) regression (1) physics (1)
Pull Request Labels
enhancement (25) bug (15) work in progress (15) compatibility (13) performance (8) dummy (7) deployment (6) physics (4) ready for review (4) equilibrium (4) build (3) cases (3) control (2) New-Actor (2) wontfix (2) minor (2) framework (1) low priority (1) scripts (1) Ideas (1) costing (1)

Dependencies

.github/workflows/CompatHelper.yml actions
.github/workflows/daily_example.yml actions
  • SimenB/github-actions-cpu-cores v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/setup-julia v1 composite
  • mxschmitt/action-tmate v3 composite
.github/workflows/interactive.yml actions
  • SimenB/github-actions-cpu-cores v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/setup-julia v1 composite
  • mxschmitt/action-tmate v3 composite
.github/workflows/make_docs.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/setup-julia latest composite
.github/workflows/runtests.yml actions
  • SimenB/github-actions-cpu-cores v1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/upload-artifact v4 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
  • mxschmitt/action-tmate v3 composite