FLIP Domain Object

The Domain object is a FLIP (Fluid Implicit Particle) solver for the simulation of fluids, gases, smoke, fire, etc.

For details of how to use the FLIP solver and the XP Material for volume rendering, see the main Volume Rendering page.

Note that this is quite different from the SPH fluids object also present in X-Particles.

Interface

The object's interface has several tabs:

Each tab is shown in its own section below.

For the buttons at the bottom of the interface and the 'Groups Affected' tab, please see the 'Common interface elements' page.

Object tab

Domain quicktab

These are general settings for the solver.

Type

This drop-down has three options, allowing you to choose the type of solver:

Liquid

The solver uses algorithms for the simulation of liquids.

Gaseous

This type of solver is more intended for gas. smoke, and fire simulations.

Particles (Gas)

If 'Gaseous' mode is selected the domain object will create its own internal emitter to generate particles for smoke, fire, etc. This is convenient but does not allow access to the many options in the emitter. If you need to change those, choose 'Particles (Gas)' mode and drag an emitter into the link field which appears.

A link field for an emitter; this field only appears if 'Type' is set to 'Particles (Gas)'.

Particles Per Voxel

Not available if the solver type is 'Liquid'. In the other two types, the solver volume is divided into a number of virtual small cubes known as voxels. The solver requires a particle emitter to provide air for the simulation (this is created automatically in 'Gaseous' mode, in 'Particles (Gas)' mode you must supply one). This setting is the number of air particles per voxel. Larger numbers result in a more accurate simulation at the expense of longer playback times.

Weak Spring

This is a weak force between the particles that push them apart to give better particle distributions during simulation. FLIP can loose volume over time, this helps to combat that. For liquids it helps to keep the liquid volume, for gas it helps to keep the air particles better distributed giving a more accurate simulation. Please note: this does add some small overhead, turning it off will save some memory and computation time.

Strength

This value represents how strongly the particles are pushed apart by the weak springs.

Vorticity

When solving simulations energy and swirling motion can be lost due to inaccuracy and interpolation. Vorticity calculates this swirling motion and boosts it, enabling you to put back or boost this motion. This can be used to give more turbulent motion, especially useful for fire/smoke simulations that will have turbulent motion. Adding a Turbulence modifier can also help to inject additional movement or an additional Vorticity modifier to have larger or smaller motion. The vorticity in the Domain object is at the grid resolution.

Viscosity

This setting changes the viscosity of a fluid. With higher values the particles stick together more strongly, giving a thicker, more treacly fluid.

Bounds section

These settings control the size of the solver.

Voxel

This is the voxel size within the boundaries of the solver. The solver volume is divided into cubes of this size. Smaller values result in more accurate simulations but are slower to playback and render. As the voxels get smaller, more particles are required to generate the smoke, etc.

The number of voxels used and the memory required are shown in this section after the 'Size' setting.

Offset

Changing this value will offset the solver volume from the object axis. Note that any particles which are no longer inside the solver as a result will not be used for the simulation.

Size

The size of the solver, represented by a yellow box in the editor. Particles will not escape from this box but will collide from its walls.

Voxels

For information, the number of voxels used on each axis and the memory required. The memory shown is a guide, note that a small change in voxel size can result in a very large change in memory use and computational time.

Walls section

By default the solver has 6 walls, along the 6 orthographic axes (X+, X-, etc.). You can turn off any or all of these walls by unchecking the relevant switch. This is not just a cosmetic effect: particles will not rebound from disabled walls and will escape the solver. Once outside the solver they will not take part in the simulation.

Solver quicktab

Retiming

As in the emitter, this value can be used to slowdown or speed up the simulation. The diffusion of properties (smoke) cannot be changed by this, the diffusion is an inherent part of the solving and due to the voxel resolution and interpolation of the particles to/from voxels.

Accuracy

The domain is an iterative solver, refining the calculations each iteration. More iterations result in a more accurate simulation but will take longer to complete. The accuracy setting determines how close to 'exact' the solution is; the higher it is the more likely it is to reach the maximum number of iterations.

Fast

Click the small black arrow to the left of the word 'Accuracy' to see this option.

By default this is unchecked, which gives the most stable solver. Checking this switch will give a faster solve but also reduced stability.

Iterations

The maximum number of iterations allowed, for very fast velocity changes (explosions) this may need to be higher if you notice artifacts (the 'Accuracy' setting may also have to be increased). Each iteration takes the particle velocities closer to being divergent free.

Pic/Flip

PIC (particle in cell) is the direct voxel solution and tends to be more viscous. FLIP is the particle flow and tends to be noisy and vibrant. Blending the two helps to keep down noise from pure particle advection whilst keeping the fluid motion lively. This field controls the blend between the two.

Max Substeps

The solving will only be accurate if particles don't move beyond a single voxel. The motion is broken into small times (substeps, just like the project Subframes value except done only during the solving). This setting limits how small the time steps are, many substeps will slow the simulation but make it more accurate. For very fast moving fluid (such as explosions) this may need to be higher if you notice incorrect simulations or artifacts.

Strict Sampling

This is not available in 'Liquid' mode. Inaccuracies in the simulation can cause volume loss, for gaseous simulations this can result in pockets of empty voxels. This option ensures that voxels always have air particles in them. Using this option can result in some loss of information from resampling and slightly slower simulation computation.

Adaptive section

Enable

The amount of memory required and time to calculate depends on the number of voxels used. Enabling this option will limit the voxels calculated to be only around those that contain any information (such as liquid particles or smoke). This helps to reduce memory use and speed up calculation when only a small part of the domain has any particles.

Note: if adaptive bounds are enabled motion blur in the domain will NOT work as the domain size changes with time.

Threshold

This setting determines the level below which is considered no (zero) information for smoke, velocity etc.

Expand

This setting expands the adaptive bounds by this number of voxels to allow the smoke/velocity within to flow into more of the domain. For fast moving simulations (such as explosions) this may need to be higher or adaptive not used as the fluid may flow out of the bounded volume.

Emitters tab

Same System

If this switch is checked, only emitters in the same System object hierarchy as the domain object will be affected by it. If it is unchecked any emitters may be affected by the domain (if they are within its bounds, of course).

Mode

If 'Mode' is set to 'Exclude' you can drag any emitters into this list which you do not want to be affected by the domain. If it is set to 'Include' no emitters will be affected by the domain except the ones you drag into the list.

Emitters

The list of emitters.

Modifiers tab

Same System

If this switch is checked, only modifiers in the same System object hierarchy as the domain object will affect it. If it is unchecked any modifier may affect the domain.

Mode

If 'Mode' is set to 'Exclude' you can drag any modifiers into this list which you do not want to affect the domain. If it is set to 'Include' no modifiers will affect the domain except the ones you drag into the list.

Modifiers

The list of modifiers.

Colliders tab

Mode

If 'Mode' is set to 'Exclude' you can drag any objects into this list which you do not want to act as obstacles in the domain. If it is set to 'Include' no objects will act as obstacles except the ones you drag into the list.

Objects

The list of objects.

Sources tab

Mode

If 'Mode' is set to 'Exclude' you can drag any Domain tags into this list from objects which you do not want to act as sources in this domain. If it is set to 'Include' no objects will act as sources except the ones whose Domain tags you drag into the list.

Objects

The list of Domain tags.

Display tab

This tab controls the solver display in the editor.

Grid

This the solver display itself. The drop-down has four options:

None

The solver is not displayed in the editor.

Voxels

A 3D grid is shown with each grid cell corresponding to one voxel.

Back

A 2D grid displayed on whichever wall faces the camera (so it will change as the view is rotated).

Base

A 2D grid which is always displayed on the base of the solver.

Adaptive Bounds

If this switch is checked the domain object will display the interior bounds of the domain as they change during the simulation. This can help to see what is calculating and to fine tune the 'Threshold' and 'Expand' settings so you can see if the adaptive bounds are far enough away from where your smoke/fire is located. The reason for this is that the simulation may not look as good if the bounds are very close to the simulation.

Velocity

If checked, the velocity (speed and direction) of the simulation are shown as coloured lines in the solver. The colours are taken from the 'Speed' colour and alpha gradients. Note that if you set the 'Property' option to anything other than 'None' both the velocity display and the property display will be shown. This may result in slightly odd artifacts in the editor display but these will not appear in the render.

Colliders

Collider objects (more properly 'obstacles' in the domain) will probably enclose many voxels completely, many not at all, and some only partially. Where the particles in a simulation hit the obstacle, you may see some leak through the obstacle geometry. These can occur where voxels are only partially enclosed by the mesh.

When checked, this switch will show solid voxels (i.e. those enclosed by the collider object). If you see leaking particles, it can help decide where leaks might be occurring.

Property

This drop-down controls which particle parameter is used to display the simulation. It has seven settings:

None

Nothing is displayed, giving the fastest possible simulation.

Temperature

The temperature of the particle is used for the display. The colour used is taken from a gradient.

A second gradient is used to control transparency of the areas with different temperatures. The transparency maps to the colour gradient, so that with the default settings the blue (cold) areas are transparent whereas the red (hot) areas are opaque. You can alter this gradient to see areas with different temperatures.

Smoke, Fire, Fire + Smoke, Fuel and Speed

These parameters are used to colour the particles using different colour and transparency gradients for each parameter.

Speed Color, Speed Alpha

Gradients used to control the display when 'Velocity' is checked OR when 'Speed' is selected from the 'Property' menu

Other gradients

When a property other than 'None' or 'Speed' is selected from the 'Property' menu, a colour and alpha gradient will appear which are used to control the display for the selected parameter.

Opacity

The overall opacity of the display.

Auto Range

When this switch is checked, the colour and alpha gradients for the displayed property are automatically mapped to the range of values in that property. For example, if temperature is displayed, the coldest areas are given the colour blue while the hottest ones are red. If this switch is unchecked you can choose the temperature range to map to the gradients using the 'Temp Min' and 'Temp Max' settings.

Min, Max settings

These settings are only available if the corresponding property is selected for display, except in the case of 'Speed Min' and 'Speed Max' which will also be available if 'Velocity' is checked.

The settings displayed will vary depending on the property being displayed.

Resolution

The resolution of the display in the editor. Decrease the value for a faster but lower-resolution display.

Slices

The number of 'slices' taken through the domain to display in the editor. More slices give a more precise display. Easier to use than to explain!