Simulation

 

 

As the name would indicate, this is the panel you use to adjust simulation parameters.

 

General

Solver - FumeFX offers two solvers: CG and QCG.

Both solvers are based on the conjugate gradient method and the main difference between those two solvers is the solving speed. QCG is much faster than the original CG which was left inside the FumeFX for backward compatibility. We strongly recommend usage of the QCG solver.

 

Quality -  This defines simulation realism.  Higher quality increases realism at the cost of increased computation and slower simulation performance.  This is sometimes necessary for example, it is advisable to increase quality for fast moving objects.

Higher Quality values will enable the Solver to perform more simulation iterations to achieve a more accurate solution of the fluid dynamics equations. Using a low value for Maximum Iterations may limit the number of iterations when using high Quality values.

 

To allow the solver to always reach the quality set by the user, you might want to keep Maximum Iterations at maximum value.

 

Simulation Status Window message ???CG done with nnn iterations??? will tell you if solver iterations are limited by Maximum Iterations parameter.

 

Maximum Iterations - This parameter sets the maximum number of iterations the solver can complete.  If not bounded by this parameter, the solver will automatically stop when it reaches an acceptable level of accuracy defined with Quality parameter.  The CG solver does not need many iterations to achieve good results (20 - 30 for small grids, 100 for bigger grids, or fast sources/objects). To create sample images, we used Quality=5 and solver required more than 100 iterations to reach it.

 

Max. Iterations: 10

Max. Iterations: 30

Max. Iterations: 100

 

CFL Condition - This value defines the maximum distance allowed for any cell data (velocity, smoke, fire, etc..) to travel in one simulation step. This number has a direct influence on the number of Simulation Steps. For example, if you use the CFL number 5, it would mean that if the system detects any velocity inside the voxel grid that will result in a field to travel more than 5 voxels in one simulation step, the simulation step will be divided so that the the distance does not exceed this number. Generally, simulation is stable when CFL number is kept between 4 and 5, but unless you notice artifacts, much bigger values can be used as well. If you choose too small values you can expect the effect of blurring.

You have to keep in mind that by decreasing the Spacing value you actually decrease voxel dimensions. This will result in increase of simulation steps required to satisfy the CFL Condition, because velocities will be able to carry cell data to through more voxels.

It is not always an imperative to have many simulation steps as fluid motion can look convincing even with one. You always need to find the balance between simulation time and "mathematical correctness" of the simulation.

 

Min. Simulation Steps  - This parameter will set the minimum number of simulation steps, regardless of the CFL Condition value.

 

Max. Simulation Steps  - The number of steps is directly controlled through CFL Condition value, but with this parameter you can limit maximum number of steps.

 

Variable Density Solver - We all know that high density fluid will be able to penetrate into the low density fluid much more that the way around. In FumeFX you can account for temperature and smoke density to simulate such behavior. For easier effect control, we recommend that you either use vd Smoke Multiplier or vd Temp Multiplier. To disable Variable Density solver for either smoke of temperature, simply set vd Multiplier to zero. Keep in mind that enabling this option could increase time for solver to get to the solution as it has to account for additional divergence that is created.

 

Advection

 

Default advection is a good all - purpose advection but it generates visible dissipation.

 

Advanced (fields) advection results in lower dissipation than the Default one. This advection operates on fire, smoke and temperature fields, while velocities are still advected using Default advection.

 

Advanced (fields and vels) advection operates on all fields and velocities as well. This type of advection is excellent for slow moving fluids while highly divergent and fast moving fields might result in artifacts in the form of lines or crosses (see image below). Keep in mind that this advection is very good in preserving small scale detail, so the vorticity value can be kept really low (around 0.1).

 

Conservative advection is amazing at preserving mass and velocity and is essential for slow moving smoke. Quality determines how strong the conservation will be and it will have a significant impact on the simulation time.

 

TIP: Here are few approaches that might help to get rid of artifacts if they show up. First of all, you can try lowering the adaptive grid sensitivity to 0.01 or even to 0.0. This should help because velocity fields close to the grid boundaries tend to be much smoother. If that does not help, you can try to switch to the Advanced (fields) advection, increase solver Quality or even switch back to the Default advection.

 

Advection Stride - This value is relative to Grid Spacing. There is no significant benefit in using advection stride below 1.0 while high values could result in advection errors around sources and obstacles.

 

Cubic Interpolation - If you need better quality, you will want to check this option. Simulation times will rise considerably, but less dissipation will occur and more swirls will be created. Whenever you use any type of Advanced advection, cubic interpolation will be used for the velocity field, while linear interpolation will be used for smoke, fire and temperature.

 

Time Scale - Use this to speed up or slow down the passage of time during simulation.  If you set it to 0, the simulation comes to a halt; set a higher value to increase speed.  If you accelerate time by some significant amount (>1.5x), you will have to increase the simulation steps as well to preserve stability and continuity.  Also, note that you can animate this parameter.

 

Use Grid Motion  - Enable this option if you want FumeFX fields to be affected by the grid motion. It allows user to create effects like falling comet, rocket launch etc. by using container that is linked to the source.

 

Use for N-Sim  - FumeFX supports simulation of nested grids. To be able to use N - Sim, this option has to be enabled. Also, grids have to overlap and they must be axis aligned (no rotation) as shown on the image below.

You should arrange grids to overlap by at least 10% as too little overlap may cause more abrupt transitions from one grid to another.

If using ???Boundless??? grid option, the expansion along overlapping axis will be disabled.

 

 

In the case that ???Use for N - Sim??? option is disabled, the FumeFX grid will not participate in N - Sim even if it overlaps with the master grid. On the image below we have selected A grid as a ???master??? grid which automatically drives simulation of ???child??? grids B1 and B2.

 

 

 

Master Grid  - Select the grid that will always be the main grid in the simulation. Other grids with only Use for N - Sim option selected will not be able to run simulations.

 

N - Sim Syncing  - This option allows a user to sync all child parameters with the master grid. This comes in handy if you keep changing parameters in your master grid and want to propagate those to all children automatically.

If selected, Rendering, Shader and Illumination parameters will be synced during Preview Window update as well as during rendering. There is no undo for this type of sync operation.

 

There are following sync options:

Sc (Simulated Channels) - sync which channels are going to be simulated.

Ec (Exported Channels) - sync channels that will be exported (Output rollout).

Gp - sync General Parameters, except Width, Length, Height and Boundless parameters.

Sp - sync parameters from the Simulation rollout. It will preserve the on/off states of the child's simulated channels like Fire, Smoke and Color which can be controlled by enabling ???Sc??? option. Blocking Sides parameters won't be synced as well.

Wp - sync Wavelet Turbulence and Post Processing rollout parameters.

Rp - sync Rendering Setting rollut parameters.

Sh - sync Shading (Fire,Smoke,Fuel) parameters.

Im - sync Illumination Parameters, including lights.

 

You can enable all of the buttons if you hold the left Shift key and left mouse click on any of the sync options. They can all be disabled if you hold the left Ctrl key down and left mouse click on any of the sync options.

 

 

System

Gravity - This value defines gravity strength. The resulting force of gravity on a fluid causes buoyancy. That means that the fluid that has a different density that the surrounding will rise or fall. Hot air from fire has lower density than the surrounding air which causes it to rise. The influence of gravity is that it multiplies Smoke, Fuel and Temperature buoyancy values. Note that in zero gravity, there is no buoyancy!

 

Vorticity - This parameter is very useful for coarse grids when simulation lacks detail.

With increased grid detail the need for vorticity is lower as the simulation itself produces more detail. Higher vorticity will increase the number and strength of small vortices in the fluid.

FumeFX offers two different Vorticity types.

 

Vorticity I

 

Strength  - This parameter is used to control the amount of small scale vortices that are added to the simulation. High values might cause smoke to dissipate and decelerate.

 

Strength: 0.0

Strength: 0.2

Strength: 1.0

 

Vorticity II

 

Vortices Scale  - This parameter controls the scale of generated vortices. Higher values will tend to create a stream like motion while small values will tend to spread the motion outwards.

 

Note: It is recommended that the Vortices Scale parameter stays below value of 0.5 and that the ratio of Strength and Vortices Scale does not exceed 50. If this parameter's value is above 0.5 or ratio becomes higher than 50, a warning asterisk symbol will appear in front of the Vortices Scale spinner.

 

Stren: 0.2  Scale: 0.001

Stren: 0.5  Scale: 0.001

Stren: 1.0  Scale: 0.001

Stren: 0.2  Scale: 0.01

Stren:0.5  Scale: 0.01

Stren: 1.0  Scale: 0.01

Stren: 0.2  Scale: 0.1

Stren: 0.5  Scale: 0.1

Stren: 1.0  Scale: 0.1

Stren: 0.2  Scale: 0.5

Stren: 0.5  Scale: 0.5

Stren: 1.0  Scale: 0.5

Stren: 0.2  Scale: 1.0

Stren: 0.5  Scale: 1.0

Stren: 1.0  Scale: 1.0

 

Velocity Damping - This gradually slows down the speed of flow, simulating internal friction.

 

Damping: 0.0

Damping: 0.01

Damping: 0.1

 

X/Y/Z Turbulence - Add artificial disturbance to smoke and fire on each axis separately or on all together. The Turbulence Noise Group offers further modification.

 

 

Turbulence Noise

Scale - Set the scale for Noise, in world units. For a starting value, you can set Scale value to be 5 times bigger than the Grid Spacing value.

 

Frames - This value functions as a measure of speed for each phase change. Less frames means faster turbulence. For example, value of 25 would mean that turbulence will finish one 'cycle' in 25 frames.

 

Detail - Detail is equivalent to fractal noise levels.  Set to a value greater than one if you do not see enough detail.  This will, of course, slow down the simulation.

 

Offset - Use it to offset noise motion by specified value (in frames).

 

 

Blocking Sides Group of Controls

On each grid axis, you can choose to have zero, one, or two blocking sides.  For example, if you set the Y - axis to "+Y" then top of the grid will act as a ceiling.  If you set it back to none, the top of the grid will act as open space, letting smoke exit freely.

 

 

Fuel

Select the Simulate Fuel checkbox to include it in the simulation.  Then, adjust it with the following parameters:

 

Master Effector  - By using this Effector you can directly affect Fuel content of each voxel.

 

Fuel Buoyancy - With this parameter you can affect the buoyancy of the fuel, so it can become affected by the gravity as well. Negative values will cause fuel to fall, while positive values will cause fuel to rise.

 

Burning Process

 

Simple Model  - This model assumes that there is an abundance of oxygen in the grid and that the burning process is limited only by the temperature and fuel content of each voxel.

 

Model With Oxygen  - It uses one additional field to model the burning process - oxygen. Each FumeFX Source has an option to emit oxygen into the grid. When oxygen is mixed with fuel and when temperature is above the Ignition Temperature, it will result in combustion. During the combustion process, a fuel and oxygen amounts are reduced and temperature is increased. However, oxygen can be replenished to some extent by the diffusion process.

 

Ignition Temperature - Fuel will burn in each voxel with a temperature equal to, or greater, than this value.

 

Burn Rate - The percentage of fuel in each voxel that is burned with each frame.  Heat production and Expansion depend on the amount of burned fuel.

Burn Rate: 20.0

Burn Rate: 30.0

Burn Rate: 40.0

 

Burn Rate Variation - This is the maximum variation allowed in the burn rate, expressed as fraction.

 

Heat production - This determines the rate of temperature increase per burned fuel.  With high heat production, temperature in the grid will increase, causing fluid to rise faster (due to the buoyancy parameter).

 

Expansion - This determines the rate of pressure increase per burned fuel.  Excessive expansion can create extreme velocities and cause simulation times to increase significantly.

 

Expansion: 1.0

Expansion: 1.5

Expansion: 2.0

 

Oxygen Master Effector  - By using this Effector you can directly affect oxygen content of each voxel.

 

Oxygen Diffusion  - The rate of diffusion will determine the shape of the flames. High diffusion rates will result in a candle like flames. Large scale fire effects should use a very low diffusion parameter value - preferably zero.

 

Fire Creates Smoke - If you enable this option, smoke will be created on the surface of the flame; usually, it is created on the source.

 

Smoke Density - This amount of smoke density is added to the voxel when fuel approaches zero.

 

Temperature Based - If you enable this option, smoke can be created based on the temperature.

 

Temperature Threshold - When temperature of the fire reaches this value, smoke will be created. Using this method smoke formation can occur further away from the source then using default method.

 

 

Smoke

Select the Simulate Smoke checkbox to include it in the simulation.  Then, adjust it with the following parameters.

 

Master Effector  - With Master Effector you can directly alter Smoke content of each voxel.

 

Smoke Buoyancy - This value defines the rate at which smoke will rise or fall. Negative values will result in smoke that is heavier than the surrounding air forcing it do fall, while positive values will result in smoke that rises.

 

vd Multiplier - This value is used in the case when you are using Variable Density Solver. It is a multiplication factor of Smoke Buoyancy and the final value is used by the vd (Variable Density) solver.

 

Dissipation Min. Dens - If smoke density goes below this value, it will fade according to the Dissipation Strength amount.

 

Dissipation Strength - The higher this value, the more rapidly smoke will diminish.  This parameter is expressed as percentage of voxel value that will be lost.

 

These two parameters are useful if you want to constrain smoke to a smaller volume.  Restricting computations to a certain volume helps keep the adaptive grid as tight as possible, which, in turn, improves simulation speed.  This may be most helpful in situations where temperature is invisible and can be clipped.

 

Diffusion - Set the rate of smoke diffusion.

 

Sharpen  - During the simulation the smoke tends to diffuse and dissipate which is usually not desired in the simulation. By using a moderate sharpening value (0.2 for example), the smoke can keep the details for much longer.

 

Sharpen Radius  - Defines the width of the sharpening filter.

Sharpen: 0.0

Sharpen: 0.2  Radius: 1

Sharpen: 0.2  Radius: 2

 

 

Temperature

Temperature field can be controlled with the following parameters, which are analogous to Smoke.  FumeFX burns unreacted fuel based on Ignition Temperature; and, Temperature Diffusion is the only way to realistically spread the temperature across volume and thus, to help fire propagation.

 

Master Effector  - With Temperature Master Effector you can directly control Temperature channel of each voxel.

 

Temperature Buoyancy - This value defines how much the fluids will rise in correspondence with the temperature. As fluid is hotter, it's density decreases and under the influence of the gravity, it is forced to rise. Positive values will cause hot air to rise and cold air to fall, while negative values will inverse that.

 

vd Multiplier - This value is used in the case when you are using Variable Density Solver. It is a multiplication factor of Temperature Buoyancy and the final value is used by the vd (Variable Density) solver.

 

Dissipation Min. Temp - If temperature goes below this value, it will fade according to the Dissipation Strength amount.

 

Dissipation Strength - The higher this value, the more rapidly temperature will diminish.

 

Diffusion - This value sets the rate of temperature diffusion.  At very high values, temperature inside the grid can drop dramatically.  Consequently, if you are simulating burning fuel, the fuel may stop burning; if so, you might need to increase the Heat Production value.

 

Sharpen  - During the simulation the temperature tends to diffuse and dissipate which is generally acceptable for this channel. By using a moderate sharpening value (0.2 for example), the temperature can keep most of the details which might be usable for fire rendering using the Blackbody shader (as it uses the temperature channel for shading).

 

Sharpen Radius  - Defines the width of the sharpening filter.

 

 

Color

Simulate Color: Select this checkbox to include the color channel in the simulation.

 

Master Effector  - With Color Master Effector you can directly control Color channel of each voxel.

 

 

Note: Select the Simulate Color checkbox to include Color in the simulation.

 

 

Velocity Rollout

Velocity Channel is always simulated so there is no option to avoid it.

 

Master Effector  - With Velocity Master Effector you can directly control Velocity channel of each voxel.

 

Diffusion  - Although velocity diffusion is what you'll want to avoid most of the time, sometimes it can be handy to give it just a little bit of diffusion.

 

Sharpen  - During the simulation the velocity field tends to diffuse and dissipate similar to smoke, fire and other channels. By using this parameter, user can control the amount of the velocity field sharpening.

 

Sharpen Radius  - Defines the width of the sharpening filter. Higher value might result in a more "blobby" appearance of the smoke.

 

Sharpen: 0.0

Sharpen: 0.2  Radius: 1

Sharpen: 0.4  Radius: 1

Sharpen: 0.4  Radius: 2

Sharpen: 0.6  Radius: 2

Sharpen: 0.6  Radius: 4

 

 

Extra Detail

The rollout lets you choose whether to simulate Fluid Mapping or Wavelet Turbulence as extra detail for lower resolution simulations.

 

All option are valid for Default Sim. mode.

 

Mode: None  - None of the additional information will be computed.

 

Mode: Fluid Mapping - When this checkbox is active, an Extra Detail channel will automatically be added to exported channels, and will increase the simulation frame file size. Simulation times may increase for up to 20% and RAM usage will be roughly doubled for a given simulation.

 

RAM usage for rendering will be increased by (24*voxels) bytes.

 

Once simulated, you can use this mapping to greatly enhance fire and smoke rendering with 3D texture maps that appear to move along with the fire and smoke.

 

Latency/Frames - As Fluid Mapping, in fact XYZ world coordinates travel through the simulation grid, they become stretched in some places. As such, they must be regenerated periodically and reset to default world coordinates. Speed of that regeneration is defined by this spinner. Latency is expressed in frames. So you will want lower values for fast or curly motion, and higher values for slow or homogeneous motion.

 

Mode: Wavelet Turbulence - When this option is selected, Default Sim. mode will precompute all necessary information required for Wavelet Simulation mode. Without this information computed and stored into Default Sim. caches, Wavelet mode will not be able to start simulation.