• Fixing and upgrading moving-objects algorithm for FSI
  • Improved inlet boundary conditions by imposing velocity on nearest points to inlets
  • Fixed that viewer updates when object deform
  • Fixed that STL meshes do not generate degenerate triangles
  • Velocity gradient is not calculated on points with bad neighbors
  • Points that are stopped by moving walls now copy the wall velocity
  • Compilation on Windows now works, soon to start testing
  • Printing of computing device on program start
  • Updates on coupling:
    • Blaze-DEM upadated to the new coupling interface
    • CalculiX updated to version 2.19
    • preCICE updated to new coupling interface


  • Added fast exporting to VTU (binary) file format
  • Set VTU exporter as default
  • Created a Python library that exposes the API
  • Resolved a memory managing bug due to CUDA compiler bugs
  • Disable diffusive component for fluid clumps with bad neighbourhoods


  • Complex rotation rendering bug is resolved
  • Fixed movement timeline to not continue to infinity, but to stop at the last frame
  • Added loading timeline keyframes from CSV files
  • Updated logo and icons
  • Added PMP library for manipulating with surface meshes
  • Inlet meshes are automatically remeshed to point spacing to generate nice inlet stream


  • Extremely fast filling of domain with fluid
  • Exporting of contact flux on mesh (e.g. for washing)
  • Exporting of pressure field on mesh
  • Stable and fast expanding of program memory when adding new points in simulation
  • Updated automatic domain resizing for rotating objects
  • Rendering the domain box
  • Console application distributed again with the GUI application
  • Stabilised Dirichlet and Neumann boundary conditions coefficients
  • Rewrite of exporting system that can be expanded to other file types as well (VTU, H5Part, …)
  • LDG fast reading of read-only memory on NVIDIA GPUs
  • Updated simulation default values
  • Optimized vertices/elements memory access when handling meshes
  • Fixed application flickering due to double buffer issues
  • Skipped writing of movement information for static meshes
  • Accelerated calculation of contact-time
  • Scaling for 4K resolutions


  • Writing static and dynamic contact time over mesh vertices
  • Optimized translation movement of meshes during simulation
  • Advection substepping control using specified substepping time-step
  • Some optimizations when reordering points (conserving incompressibility)
  • Added circle inlet boundary condition, with conical (apex) angle input for spraying
  • Added arbitrary shapes for inlet by loading any mesh (vertices = spawning points, normals = spawning directions)
  • Fixed a bug when loading or generating mesh normals
  • Upgraded pressure right-hand-side which magnitude is now velocity-based
  • Fixed VTK export to ignore points removed from the simulation
  • Dynamically resized domain boundaries for moving meshes
  • Fixed clearing of OpenGL memory when starting new simulation, due to random crashing
  • Information on current time step are now shown in application “Monitor” dock
  • More stable, and arbitrary moveable inlet boundaries
  • Correct rendering of vector fields concerning the depth test
  • Show both relative and absolute residuals of the pressure solution
  • Fixed that simulations can be initialised without fluid (e.g. for washing simulations)
  • Improved stability of linear solvers due to non-zero initialization of vectors


  • Rendering of vector fields in GUI
  • Show running device in GUI
  • Fix for using incompressibility constraint near free-slip boundaries
  • OpenGL 3.3 rendering in CORE profile
  • Stable interpolation between keyframes
  • Windows OpenGL fixed
  • Rendering works on ATI cards
  • Fixed cleaning up the application resources
  • The solver now works on ATI GPUs


  • Better performance of linear solvers
  • Sharp wireframe rendering of meshes
  • GUI starts windowed instead of maximized
  • Fixed raycast testing when detecting collisions
  • Fixed removing of points that leave the fluid domain


  • 3D inlet boundaries
  • Dynamic memory manipulation due to inlets


Highlights: inlet boundaries, stability

  • Introduced inlet boundaries
  • Define inlet geometry as 2D line segment, or 3D rectangle (quad)
  • Define inflow velocity (currently constant in time and space)
  • Pressure gradient is currently defined as zero
  • Renderer ability to show dynamic simulations
  • Stabilised the solver due to many updates from previous releases
  • Added QMRCGStab and preconditioned-QMRCGStab which was missing in the last release
  • Speed up advection of points and potential collision testing with walls

Version 2021.1

Released: 2021-06-08
Highlights: faster 3D, better GUI

  • Ability to load geometry with any number of triangles.
  • Spatial acceleration
    • Accelerated generation of boundary conditions for large meshes, improvement of >15% per time step.
    • Accelerated detection of points/walls collision for large time steps
    • Other geometrical manipulation is accelerated as well
  • Automatic initialisation of domain boundaries, based on bounds of input geometry.
  • Linear solvers are faster due to allocating solving memory only once.
  • Syntax highlighting for simulation input. Easier to write, and find errors if any.
  • Set free-slip boundary condition through boundary condition or coefficient as fluid property.
  • Fixed input and viscosity bugs for non-Newtonian models.
  • Option to render fluid points on top of the geometry, convenient for tanks/containers.
  • Slice operation shows the plane origin and normal when editing its parameters.
  • Added help about GUI, button in the application and a page on the website.
  • Due to the above, i.e. large rewrite, solver may be unstable before the next update.

Version 2020.4

Released: 2020-12-29
Highlights: 3D, non-Newtonian models

  • Added non-Newtonian models:
    • Bingham
    • Power Law
    • Cross-Power Law
    • Bird-Carreau
    • Casson
    • Mohr-Coulumb
  • Improved stability of the implicit velocity solver for flow near free surface.
  • Added 2nd order backward differencing (BDF2) for the implicit velocity solver. Only 1st order was available until now.
  • Added initial algorithm for dynamic (automatic) time stepping.
  • The solver now runs 3D problems in real-time.
  • Added the free-slip boundary condition.
  • Made the first round of optimizations in 3D collision detection of fluid and geometry.
  • GUI is upgraded with icon labels and 3D geometry rendering.
  • 3D camera zoom bugs are fixed.

Version 2020.3

Released: 2020-11-16
Highlights: Windows, implicit velocity solver, surface tension

  • Pressure gradient limiter to stabilise non smooth pressure fields.
  • Stabilised/improved source term for the pressure Poisson equation.
  • Implicit solution to the velocity with Jacobi solver and BDF1, stable high viscosities.
  • Improved Jacobi solver performance by average value of 7%.
  • Explicit curvature estimation at the free surface.
  • Surface tension force through pressure Dirichled b.c. (using curvature and Laplace jump).
  • Windows CPU support. GPU yields strange driver errors not experienced on Linux.
  • The domain acceleration may be imposed through timeline of positions, velocities or accelerations.
  • Fluid can be initialised in separate spaces by specifying multiple sources of flooding.
  • Added real-time colourisation by point’s IDs.
  • Added real-time colourisation of free-surface points.
  • Rendering of too fast simulations is limited to 60 FPS, to avoid losing performance on CUDA -> OpenGL transfer.
  • Added and tested Mohr-Coulomb non-Newtonian model.
  • Made research license a bit more flexible.

Version 2020.2

Released: 2020-05-10
Highlights: GPU, FEM, moving bodies

  • Enabled CUDA backend to run simulations on the GPU.
  • The movement of bodies may be imposed through timeline/keyframes of positions or velocities.
  • Smooth interpolation of imposed movement of bodies in time, using Piecewise Cubic Hermite Interpolating Polynomial (PCHIP).
  • Imposed body oscillations (along vector, or rotating along axis) are superposed to the movement, by using “impose_oscillation” input.
  • No more triangle soups, meshes now use connectivity information. This enables deformations, and easy orientation transformation.
  • Import surface meshes from OBJ, OFF or STL file formats. For STL (triangle soup) file format, connectivity is built upon loading.
  • Warning message is shown for users that have a too old GPU, that cannot view results in real-time.
  • Fluid-structure interaction using preCICE. Rhoxyz can be coupled with an external FEM solver. Tested using CalculiX solver.
  • Bodies marked using: “output_force”: true, export resultant force and torque acting on the body to a CSV file, each time step.

Version 2020.1

Released: 2020-02-15
Highlights: Initial public version