Faster VOF simulations by avoiding time-consuming start-up effects

Running VOF simulations typically requires a transient approach, but sometimes you are not necessarily interested in analyzing the start-up effects of a free-surface flow, but rather just the long-term characteristics when the flow pattern has reached a quasi steady-state. Reaching this quasi steady-state can be computationally expensive and time-consuming, sometimes to the point of infeasibility.  

In this week’s blog post we’re going to look at a trick you can use to skip your way past a long start-up sequence for a free-surface flow with strong currents in the heavy phase.  

Free-surface heave for a rotating flow in a cylindrical vessel 

To exemplify this trick and how to skip through a tedious and expensive start-up sequence we will consider a cylindrical tank where we induce a rotating flow using a tangential inlet on the side of the vessel. In this case we are only interested in looking at the free-surface heave once the rotation has developed and we’ve reached a quasi steady-state. The vessel has an outlet pipe in the bottom center. The cylindrical tank is 10 meters in diameter and 5 meters high and the initial free surface is put at 2.5 meters (i.e. at mid-vessel). With dimensions like this you can imagine that developing a flow through this vessel while also accurately resolving the free surface characteristics would likely require a time-step of parts of a second and plenty of simulated time. Resolving this start-up sequence in time would hence be very time-consuming.

Vessel geometry

Based on this we could be very tempted to run this simulation with a steady-state setup. However, attempting this from a stagnant initial state would most certainly result in a crash. The momentum imbalance in the beginning of the iterative process would completely disrupt the free-surface to a non-recoverable state and we would never be able to converge a steady-state VOF solution. The animation below shows a cross-section of the volume fraction field for the first 10 iterations in a steady-state run with default settings. 


This is where the trick comes into play. What if we could propagate the flow pattern throughout the domain without disrupting the free-surface (or caring about resolving it in time)? The truth is we can – and the solution is spelled under-relaxation.  

So, the trick here is to start the simulation with a very small under-relaxation factor for the volume fraction. As the flow propagates through the system and the momentum imbalance settles a bit, you should be able to sequentially ramp-up the under-relaxation factor to reach a fair starting point for the quasi steady-state. This way you can “skip ahead” past the costly and irrelevant start-up phase and go straight to solving for the part you’re interested in.  

Here’s a summary of the simulation steps for this case example: 

  1. Ran 1000 iterations with VOF URF=0.001 
  1. Ran 200 iterations with VOF URF=0.01 
  1. Ran 200 iterations with VOF URF=0.1 
  1. Ran 200 iterations with VOF URF=0.2 
  1. Ran 200 iterations with VOF URF=0.3 
  1. Ran 200 iterations with VOF URF=0.5 
  1. Ran 200 iterations with VOF URF=0.7 

In this simple example, the sequential ramping was done manually by stopping and updating the URF, but you could of course use a more automated approach using e.g. simulation operations.  

After a total of 2000 iterations we have a free surface with a distinct heave due to the rotational flow pattern in the vessel. You can see the progression in the animation below. This would certainly work as a better starting point for a transient run to analyze the quasi steady-state where the flow has propagated through the domain. 


In this case I decided to stop the URF ramp at 0.7 since increasing it more in steady-state started to diffuse the free surface a bit too much. The natural next step in this case would then be to switch to an unsteady approach and start ramping the URF for the volume fraction towards the default value of 0.9. 

NOTE: The example above was run using the steady-state solver, but the same approach could be used also for a transient run where it may help to propagate a flow with a higher time-step than would be required for the free-surface resolution. 

I hope this example can provide as a useful “trick-up-your-sleeve” when you’re facing VOF simulations with strong currents and complex flow patterns. 

As always, you are welcome to send in any questions to 


Johan Bernander

Johan Bernander, M.Sc. 

+46 702 95 18 31 



Scroll to Top