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
inputfiles on the target machineView 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
.bpsources in a selected directoryInspect available variables for each source and route them into Panes for visualization
Render common graphics like vertex mesh plots that match
xgc.mesh.bpdimensions, as well as basic line plots and color plotsUse plugin renderers from
utils/input_gui/plugins/monitor/for custom visualizationsAdd 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. Then, on the target machine:
# Activate the Python environment
source ~/venvs/xgc-gui/bin/activate
# Enable xgc commands
source ~/path/to/XGC-Devel/utils/xgc_shell/init
# Launch the Python server:
xgc_gui
# Or if you need a different host or port:
XGC_INPUT_GUI_HOST=127.0.0.1 XGC_INPUT_GUI_PORT=5080 xgc_gui
# Launch with an input file preloaded
xgc_gui path/to/my_input
# Launch with a work directory preloaded
xgc_gui path/to/my_work_dir
# Launch with a source file preloaded
xgc_gui path/to/xgc.my_output.bp
If running locally, xgc_gui will automatically open the GUI in your default browser. (Disable that with XGC_OPEN_BROWSER=0). If remote, manually open the GUI locally in your browser of choice at:
http://127.0.0.1:5080