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