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): .. code-block:: bash 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: .. code-block:: bash ssh -L 5080:127.0.0.1:5080 @ You may need a different host or port. Activate the Python environment and launch the server on the target machine: .. code-block:: bash 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: .. code-block:: text http://127.0.0.1:5080