Graphical User Interface (GUI)
The current mainline GUI of Streamcenter+ is a native Qt/VTK desktop front end for the native
CUDA solver.
It is intended for users who prefer an interactive workflow for setting up .par files, launching
solver runs, monitoring progress, and previewing FTLE results without typing the full command line
manually.
The interface launches the native CUDA solver, using the same .par-based workflow described in
Input Deck for Solver Parameters and the same structured-VTK input assumptions described in Input Data Files.
General Workflow
In typical use, the GUI is operated in the following order:
Select the input
.vtkfolder and the output folder.Fill in the solver parameters on the left-side parameter pages.
Save or reload a
.parfile if desired.Start the FTLE run from the toolbar.
Monitor progress in the run-status strip and the live console.
Open the generated
.vtsor.pvdresult for visualization.Export a PNG snapshot or, for time-series results, an MP4 animation.
The GUI does not replace external post-processing entirely.
For publication-quality rendering and advanced analysis, ParaView or other VTK-capable tools
are still recommended after the initial inspection.
Left Panel: Parameter Pages
The left side of the window is organized as a tree and stacked pages. In the current mainline GUI, the main pages are:
File IO and Range Settings;Numerical Methods Control;Visualization;Dynamic LCS.
File IO and Range Settings
This page collects the basic case definition:
input
.vtkfolder;results folder;
automatic or manual wall range;
particle lattice sizes in \(x\), \(y\), and \(z\);
integration range
T_range;advection step
dt;physical frame step
physical_dt.
Both the input folder and the output folder must already exist when a run is launched. The current GUI checks these folders before starting the solver and warns if either one is missing.
When Auto wall range is enabled, the solver uses the input grid bounds automatically.
When it is disabled, the manual wall ranges must be filled explicitly.
Numerical Methods Control
This page exposes the major solver options currently supported by the native backend:
direction: double-side or forward-only;
wall treatment;
advection scheme;
interpolation method;
gradient discretization;
Cauchy-Green eigenvalue method.
The backend label shown on this page is informative: in the current mainline it is always the native CUDA path.
Visualization
This page controls how loaded FTLE results are displayed in the embedded viewer. The current options include:
whether to display forward FTLE, backward FTLE, or both;
opaque versus transparent surface rendering;
one isovalue slider for
FTLE_forward;one isovalue slider for
FTLE_backward.
These sliders become meaningful only after a result file containing the corresponding FTLE arrays has been loaded. If one of the arrays is absent, the related control becomes unavailable automatically.
Dynamic LCS
This page switches between steady and dynamic operation:
Steadycorresponds to one still FTLE solve over the chosen range;Dynamicenables sliding-window processing and exposeswin_sizeandwin_step.
When dynamic mode is disabled, the window-size entries are cleared and ignored. When dynamic mode is enabled, these values should be provided consistently with the finite-time interpretation discussed in Unsteady LCS.
Launching a Run
Pressing the run button causes the GUI to collect the current settings, validate the required
entries, and write an auto-generated .par file into the selected output directory.
Its filename follows the form
GUIsolve_YYMMDDhhmmss.par.
The GUI then launches the native solver executable with that generated parameter file. If the solver executable cannot be found, the GUI reports where it looked and instructs the user to build or install the solver first.
The current interaction model is centered on the parameter pages and the native solver workflow, instead of ad hoc command-line style overrides.
Run Monitoring
During execution, two feedback channels are visible:
a compact run-status strip under the parameter pages;
a console panel on the lower right.
The run-status strip summarizes stages such as launching, loading, running, completion, pause, or failure. The console shows the forwarded solver output and GUI-side messages such as generated filenames and log-file locations.
For each GUI-launched run, the current implementation also opens a log file in the output
directory, named after the solver process ID, for example 12345.log.
The pause button suspends or resumes the solver process. The stop button terminates the running process. These controls are intended for long FTLE jobs where an interactive interruption may be necessary.
Embedded Result Viewer
The right side of the main window contains an embedded VTK viewer. It can open:
*.vtsresult files;*.vtkfiles for general inspection;*.pvdcollections for time-series browsing.
Once a result is loaded, the viewer shows:
a structured-domain outline;
FTLE isosurfaces if
FTLE_forwardand/orFTLE_backwardarrays are present;an orientation axes marker;
a small
Streamcenter+watermark;for
.pvdtime series, a time label and a frame slider.
The current visualization model is iso-surface based. When both forward and backward FTLE fields are available, the GUI can display both simultaneously with separate colors. The transparency toggle is useful when overlapping surfaces should remain visible.
Parallel projection can be toggled directly from the toolbar. The viewer uses standard interactive camera manipulation through the VTK trackball camera style.
Time-Series Playback
When a .pvd time series is loaded, the viewer enables:
jump to first frame;
play or stop animation;
jump to last frame;
direct frame selection through the on-screen slider.
The GUI sorts and follows the time information contained in the .pvd collection file.
This makes it convenient to inspect dynamic-window outputs produced by the solver.
The MP4 export function is available only in this time-series state.
If a single still .vts file is loaded instead, the GUI informs the user that MP4 export is not
available for that case.
Saving and Reusing Parameter Files
The GUI can both load an existing .par file and generate a new one from the current widget
state.
This is useful for moving between GUI-driven setup and command-line execution.
In practical terms:
Reload *.Par Fileimports settings from an existing parameter file into the GUI;Generate *.Par for FTLEwrites a user-chosen parameter file without starting a run;pressing
Runwrites a fresh auto-generated.parfile and immediately launches the solver.
This workflow is especially convenient when one wants to prototype a case visually and later move the exact setup to command-line or batch execution.
PNG and MP4 Export
Two export paths are currently integrated:
PNGsaves the current viewer image as a snapshot;MP4exports a time-series animation by rendering frames and callingffmpeg.
PNG export requires only a loaded scene. MP4 export additionally requires:
a loaded
.pvdtime series;a valid output file path;
an
ffmpegexecutable available onPATH.
The MP4 dialog lets the user choose:
output filename;
frame rate;
frame stride;
exported frame window.
If ffmpeg is missing, the export fails with an explicit error message.
Important Notes and Limits
The GUI is a front end to the native CUDA solver.
The GUI does not create missing input or output folders automatically; they should exist before a run is started.
The GUI-side result viewer can open
.vtkfiles, but the solver input workflow itself still expects a folder of qualified.vtkframes as described in Input Data Files.Interactive plotting through
if_visualis not the mainline command-solver workflow. Result inspection is expected to happen through the embedded viewer or an external post-processor.The embedded viewer is intentionally lightweight. For more advanced clipping, transfer functions, camera scripting, or batch rendering, external VTK tools remain preferable.