XGC-GUI

XGC-GUI allows manipulation and visualization of XGC inputs/outputs located locally or on a remote machine, all inside a user’s browser.

XGC-GUI is under development. Please report any issues or feature requests to Aaron.

Features

Editor

In the Editor, users can:

  • Create, load, and save XGC input files on the target machine

  • View and edit input parameters using up-to-date descriptions and parent/child relationships

  • Check for invalid or deprecated input parameters

  • Generate a mesh preview from the input file mesh settings

  • Run XGC’s dryrun, quickstart and launch a batch script (beta)

Monitor

In the Monitor, users can

  • Browse .bp sources in a selected directory

  • Inspect available variables for each source and route them into Panes for visualization

  • Render common graphics like vertex mesh plots that match xgc.mesh.bp dimensions, as well as basic line plots and color plots

  • Use plugin renderers from utils/input_gui/plugins/monitor/ for custom visualizations

  • Add their own custom visualization plugins

  • Save and load custom dashboard configurations

  • Auto-refresh visualizations to watch a simulation run in real-time

Setup

First, set up a Python environment on your target machine (where your inputs/diagnostics are):

python3 -m venv ~/venvs/xgc-gui
source ~/venvs/xgc-gui/bin/activate
python3 -m pip install flask numpy matplotlib adios2

Next, if your target machine is not local, create an SSH tunnel from your local machine:

ssh -L 5080:127.0.0.1:5080 <user>@<remote-host>

You may need a different host or port. Activate the Python environment and launch the server on the target machine:

source ~/venvs/xgc-gui/bin/activate
cd ~/path/to/XGC-Devel
python3 utils/input_gui/app.py
# Or if you need a different host or port:
# XGC_INPUT_GUI_HOST=127.0.0.1 XGC_INPUT_GUI_PORT=5080 python3 utils/input_gui/app.py

Open the GUI locally in your browser of choice at:

http://127.0.0.1:5080