Houdini: Basics of Vorticle in Fluid Simulation

General / 03 October 2019

What is Vorticle?

Vorticity is spinning motion of the velocity field. And in Houdini, it is called Vorticles.
According to Houdini's documentaion,

Vorticles are points that have paddlewheel-like forces associated with them. (source:https://www.sidefx.com/docs/houdini/nodes/dop/gasvorticlegeometry.html )

To clarify, I made a short footage below.
The footage shown below is comparison between without and with Vorticle. Obviously, vorticle makes the smoke more realistic . This is why it is the important element of fluid simulation.


The purpose of vorticles is not to create new forces, but to maintain vorticles that naturally occur and prevent them from dissipating due to artificial viscosity. 

(Source:https://www.sidefx.com/docs/houdini/nodes/dop/gasvorticleforces.html )

Let's create Vorticle in DOP.

Before making vorticles, l build a very simple smoke simulation in DOP network.


The source object is sphere. And I use it as is (I didn't deform it at all).
Also, I didn't make any noise on attributes(density, temperature, and velocity).

Usually, smoke simulation needs attributes and these are Density, Temperature, and Velocity in source object.
So, I prepare them in Pyro Source SOP node(this is point-base), and transfer them into volume in Volume Raterize Attributes SOP.


Source object

Next, with using data from source object, let's make simulation in DOP network.
Shown below is final version of DOP.

The process of vorticle force is below;
1. Gas Vorticle Geomery: This makes initialized data for Vorticle force.
2. Gas Advect: The data created in 1. is advected by this node. But the advection doen't affect the smoke yet.
3. Gas Velocity Stretch: The vorticle geometry and velocity field are stretched according to the attributes. The attributes are N up orient pscale in default. This object makes simulation slow, so I didn't use this time.
4. Gas Vorticle Forces: Add velocity field and geometry forces according to the vorticle data.

First, let's make a basic structure of smoke simulation.

In addition to density, temperature, and velocity, I added divergence attribute. Since source object doesn't have an attribute divergence, density data is used for it.
Divergence attribute makes the smoke more puffy.


Add Gas Vorticle Geometry and Apply Data.
Gas Vorticle Geometry is a microsolver node that crate data for vorticles. Then the data is injected by Apply Data node.

As the image below, points is added in the field.

The size and center in Gas Vorticle Geometry are the same value in Smoke Object node.
Magnitude is the amount of vorticle force. Radius is the radius of the force.
So, the strength and the size of the force are determined by these values.


At this time, these data doesn't give any influence on smoke. 

Next, add Gas Advect and Gas Velocity Stretch node.
Gas Advect node advects the geometry by using the vortcle data which created in Gas Vorticle Geomery.
Gas Velocity Stretch reorients the vorticles.


Finally, add Gas Vorticle Forces and Gas Dissipate.
In Gas Vorticle Forces, the force I created are applied. Then, smoke motion are affected by the force.