User interface

The graphical user interface (GUI) is comprised of the following parts:

  1. UI elements toolbar
  2. Simulation toolbar
  3. Simulation editor
  4. Time toolbar
  5. 3D viewer
  6. Monitor
  7. Contouring toolbar
  8. 3D viewer options toolbar

Usual procedure

  • Initialize new or load an existing set-up using (2)
    • If needed, edit simulation parameters using (3)
  • Prepare simulation using (2)
    • If needed, inspect the prepared scene using (5)
  • Run the simulation using (4)
    • Track residuals and other information using (6)
    • Inspect results visually using (5), with different options from (7) & (8)


1. UI elements toolbar

These actions open or hide various parts of the user interface.

Show / hide the simulation input to read and edit it.

Show / hide the 3D viewer that is updated during the simulation, i.e. each time step.

Show / hide monitoring of the log, simulation info, residuals and forces.

Show various actions and information about the program:
* Check for updates: checks for new versions online
* Changelog: opens list of changes done to the solver and GUI
* License: opens the license
* Input specification: opens help on how to write the input file
* Issue tracker: opens a GitLab table of issues, if you want to report an issue.

Note: If the 3D viewer is visible while a simulation is running, i.e. it takes time to update and render results each time step. Also if graphs are visible during running the simulation, it takes time to update and render graphs each time step. In conclusion, show the 3D viewer and Monitor if you want to see updates in real-time.

2. Simulation toolbar

This toolbar contains actions for creating and preparing simulations. The listed actions communicate with the simulation editor. The actions can also be called while a simulation is running.

New (Ctrl + N)
Create a clean new simulation input file.

Open (Ctrl + O)
Open an existing input file.

Save (Ctrl + S)
Save changes of the input file.

Save as (Ctrl + Shift + S)
Save changes to the input file to a different file.

Prepare (Ctrl + P)
Save changes to the input file and prepare the simulation for the run, i.e. load boundary surfaces and fill the fluid.

Write computed results of the current simulation time.

3. Simulation editor

The simulation editor is show when the user wants to make a new set-up or after an existing one is loaded. Changes done to the simulation can be saved using actions in (2). When the user is satisfied with the input, the simulation can be saved and prepared for running using the Prepare action in (2). The editor does not need to be shown while the simulation is running.

4. Time toolbar

These actions control how the simulation is advanced.

Constant / Automatic
A switch that controls whether to use: manually specified (contant) time step value, or dynamic (automatic) time step values suggested by the solver.

Time-step (s)
Enter a value, in seconds, for the time step that will be constant during the simulation.

Enter multiplier for automatic, i.e. dynamic, time-step values suggested by the solver.

Advance the simulation by a single time step.

Runtime (s)
Enter a value, in seconds, of the interval that defines how long to run the simulation.

Run (Ctrl + Space)
Start advancing the simulation for the duration as specified above. The time stepping will be constant or dynamic, depending on the options.

Pause (Ctrl + Space, or Esc)
This action is shown when the simulation is running, and it is used to stop advancing the simulation.

5. 3D viewer

The viewer renders: mesh-free points as coloured 3D spheres, colorbar and its legend, boundary geometry (patches), probes, orientation axes, domain box, etc.

Left mouse click + Mouse movement
Orbit the camera around the focus point.

Right mouse click + Mouse movement
Pan the camera left-right-up-down.

Mouse wheel
Forward / backward movement of the camera and the focus point.

Right mouse click
Show the context menu with rendering options from (8).

6. Monitor

This docked window shows (read-only) information about the running simulation.

  • Log: Displays what’s going on (information, warning and error messages).
  • General: Displays some general information about the simulation.
  • Residuals: Shows the residuals graphs for: the pressure linear solver, the velocity linear solver, average velocity divergence (incompressibility).
  • Pressure: Shows the readings of the pressure sensors.

Note: If you care for performance, and don’t need these information all the time, hide the Monitor.

Note: forces, torques and movements of objects are exported to the disk. Rendering them as graphs is work-in-progress.

7. Contouring toolbar

If the 3D viewer is shown, then this toolbar is shown as well. It is used to render different results, i.e. scalar and vector fields, of the current time step of the simulation.

( Field option )
This combo-box lists allowed scalar and vector fields to be rendered as filled contour plot in the 3D viewer.

[ minimum, maximum ]
These two text inputs allow the user to set the range of the rendered contour plot.

Auto range
Finds the minimum and maximum magnitudes of the current scalar or vector field, and sets them as the range of the rendered contour plot.

Note: Vector fields are rendered as contour plots, i.e. colors represent vector magnitudes. Vector direction rendering is work-in-progress.

8. 3D viewer options toolbar

If the 3D viewer is shown, then this toolbar is shown as well. It contains various options to control the rendering in the 3D viewer.

Modify the background gradient, by manually choose two colors of the gradient, or by choosing one of the predefined presets.

Opens a menu with actions that modify the rendering options.
* Point size: changes the radius of the sphere that represents a fluid point.
* Point ambient: changes how dark is the shadow area of spheres.
* Overlay points: an option to draw fluid over other 3D objects, not to be hidden by walls.
* Geometry color: change the shading color of objects.
* Geometry shading: option Wireframe renders only triangle edges, while Filled + Wireframe renders shaded triangles with colored edges.
* Geometry ambient: changes how dark is the shadow area of 3D objects.
* Geometry opacity: changes how opaque or transparent objects will be rendered.

Opens a menu to hide or show different things in 3D viewer.
* Fluid points: show or hide fluid.
* Boundary points: show or hide points generated for boundary conditions.
* Geometry: show or hide patches’ lines / triangles.
* Legend: show or hide the colorbar and values range.
* Probes: show or hide points where probes are located.
* Orientation axes: show or hide XYZ axes in bottom-left part of the viewer.
* Domain box: show or hide the active space for the simulation.

Opens a menu to choose/modify the rendering color palette and its legend location.
* Presets: Viridis (blue to yellow, perceptually uniform, robust to colorblindness), Cool-warm (blue to red diverging map), Jet (blue-green-yellow-red transition), Greyscale (black to white transition).
* Position: modifies the location of the legend on the screen.

Cutting plane
Opens a docked window that enables cutting of the domain. The domain is cut by defining a cutting plane by an origin (any point on the plane), and a normal vector. Only points intersected by the plane are then rendered.

Takes a screenshot of the 3D viewer area, and open a save dialog to save the screenshot.