FUSE¶
Contacts: Joseph McClenaghan, Tim Slendebroek, Tom Neiser
Short Description¶
Run the FUSE integrated-modeling framework from OMFIT
Long Description¶
This module runs FUSE (the Julia-based FUsion Synthesis Engine) directly on an HPC server, acting as a bridge between OMFIT and the FUSE integrated-modeling suite. It replaces the previous web-portal client with local execution against a real FUSE install, so OMFIT users can drive FUSE with the same data structures they already use.
Concepts¶
Data lives in the
dddata structure, based on the ITER IMAS ontology (exchanged with OMFIT as an OMAS ODS,dd.json).Physics and engineering actors operate on
dd; their behavior is controlled by theactparameters.ddis initialized from 0Diniparameters (or from an existing ODS).iniandactare exchanged as JSON (FUSE.ini2json/act2json) and can be edited in the GUI before running.FUSE ships template use cases for many machines (ITER, D3D, FPP, ARC, SPARC, KDEMO, …), fetched via
FUSE.case_parameters.
Execution backends¶
The module deploys a single driver script (TEMPLATES/fuse_driver.jl) to the
remote working directory and launches it through OMFITx.executable (ssh +
rsync). Two backends are supported, selected in the Setup tab:
module (default): loads the site FUSE Lmod module and runs
julia --sysimage=$FUSE_HOME/environments/$FUSE_ENVIRONMENT/sys_fuse.so. Works on Perlmutter (module use .../m3739/perlmutter/fuse/modules && module load fuse) and Omega (module load fuse).container (Perlmutter): runs the
podman-hpcFUSE image (e.g.fuse:v1.1.3) from the shared squash-dir.
The Site defaults combo box prefills the backend, module prelude, container
image, squash-dir, and #SBATCH header for a known site; choose custom to
edit them freely for another cluster.
On Perlmutter the container backend is the default because it is fully self-contained and validated end-to-end. The shared module sysimage may fail to initialize on some login nodes (an HDF5 initialization segfault tied to the shared environment’s depot); prefer the container there until the module deploy is refreshed. On Omega the module backend is used.
Typical workflow¶
Setup: pick the server (OMFIT server nickname), the site defaults, and the backend. Optionally enable
sbatchsubmission for long runs.Template: choose a use case and click Fetch template to populate
INPUTS['ini']andINPUTS['act']; edit them as needed.Run: choose the workflow and click Run FUSE:
whole_facility–FUSE.initthenFUSE.ActorWholeFacilityflux_matcher–FUSE.initthenFUSE.ActorFluxMatcher(setsact.ActorCoreTransport.model = :FluxMatcher)init_only– just initializedd
To start from an existing equilibrium/profiles, set Initialize from to
odsand load an ODS json intoINPUTS['dd_in'].Results: the output
ddis loaded intoOUTPUTS['dd']as an ODS; use Quick-look plots for a summary, or feedddinto other OMFIT modules.
Requirements¶
A FUSE install on the target server: the Lmod
fusemodule or thepodman-hpcimage. On NERSC/Perlmutter and GA/Omega these are maintained under projectm3739/ the theory FUSE area.The first run compiles nothing extra (the sysimage is prebuilt), so startup is seconds; batch submission is available for long transport/whole-facility runs.
Supported devices¶
Device agnostic (via
FUSE.case_parameterstemplates)
Relevant publications¶
Meneghini, T. Slendebroek, B.C. Lyons, K. McLaughlin, J. McClenaghan, L. Stagner, J. Harvey, T.F. Neiser, A. Ghiozzi, G. Dose, J. Guterl, A. Zalzali, T. Cote, N. Shi, D. Weisberg, S.P. Smith, B.A. Grierson, A next generation framework for integrated design of fusion pilot plants, IAEA Fusion Energy Conference (2023)
External resources¶
Documentation: https://fuse.help
Contributors¶
List of contributors sorted by number of lines authored:
488 Tom Neiser
55 Orso Meneghini
Submodules¶
None