Bifröst Adaptivity attributes

The Adaptivity attributes can be found in both the bifrostAeroProperties and bifrostLiquidProperties attributes. They can be used to automatically adjust the resolution in order to provide the most detail when and where it is needed, without wasting memory and computation time if it's not needed.

Spatial

Enable
For liquid simulations, this option allows for lower-resolution voxels in the center of the fluid where detail is usually not needed. The maximum resolution as set by the Master Voxel Size is still maintained in regions of fast movement, along the boundaries with collision objects, and along the free surface (that is, the boundary with air). See Control spatial adaptivity.
For aero simulations, this option requires one or more adaptive meshes to have an effect (see Work with adaptive meshes). The maximal voxel resolution is used inside the adaptive mesh, and lower resolutions are used elsewhere.
Generally, you should leave this option on to reduce memory and computation time, unless you experience problems.
Delete Exceeding Particles (liquid only)
Removes some particles when the number per voxel in low-resolution regions exceeds a threshold. Turn this option off if you experience volume loss or other large differences between spatially adaptive and non-adaptive simulations.

Transport, Time Stepping

The Transport and Time Stepping settings control the number of times that calculations are performed each frame. More iterations can result in greater accuracy, at the cost of longer computations. You can try adjusting these settings if you experience problems such as volume loss, particle bunching, spontaneous bursts, and leaks through colliders.

  • The Transport settings control the number of iterations used to advect the particles along the voxel velocity field, after the pressure calculations have been performed. It is often a good choice to try adjusting these settings first if you are experiencing problems such as particles passing through static colliders, because they might solve the problem without much extra computation time. However, the pressure is not recalculated and the colliders and other solids are not revoxelized each iteration — this means that the Transport settings probably won't help with fast-moving colliders and other, more complicated, situations.
  • The Time Stepping settings control the number of iterations of the whole simulation per frame, including the voxelization, pressure, and transport phases. These settings can greatly increase the accuracy, especially with high velocities, but can also result in much longer computation times.

The two sets of controls work together, so that the Transport settings control the number of iterations of the transport phase within each time step. In other words, each frame might contain multiple time steps depending on the Time Stepping settings, and each time step might contain multiple transport steps depending on the Transport settings.

Both sets of controls work in a similar way:
  • At least Min Steps iterations are always performed per frame. This means that you can force a certain number of substeps, even if particles are not moving very fast. However, it is usually better to adjust Adaptivity instead, so you don't cause unnecessary computations.
    Note: Only one iteration is performed on the first frame of a simulation.
  • The Adaptivity value controls whether additional substeps are triggered. A different number of iterations may be performed per frame, depending on how far and how fast the particles are moving in that frame. The values are on a non-linear scale.
    • At a value of 0.0, particles can move an effectively unlimited distance without triggering further substeps.
    • At 0.1, particles can move up to 10 voxel lengths before triggering further substeps.
    • At 0.32, particles can move about 5 voxel lengths before triggering further substeps.
    • At 0.5, particles can move up to 1.0 voxel length before triggering further substeps.
    • At 0.75, particles can move about 0.5 voxel lengths before triggering further substeps.
    • At 1.0, particles can move up to 0.001 voxel lengths before triggering further substeps.

    When you are adjusting settings, be careful not to increase Adaptivity too much at once, particularly for values close to 1.0. Doing so may cause unnecessarily long computations.

    Also note that distances are measured in voxel lengths. This means that a lower Master Voxel Size might trigger extra iterations for particles at a given velocity.

  • No more than Max Steps iterations are ever performed per frame. This provides a limit on the total amount of computation performed.
  • However, particles will always move the entire distance that is required by their velocity and the frame length. This means that particles might not always obey the limit set by Adaptivity. For example, if Adaptivity is set to 0.5 but Max Steps is very low, then fast particles may not be able to cover the entire distance in steps of 1 voxel length — in this case, each step will be longer than 1 voxel length in order to move the whole distance.
Transport Time Scale (Transport only)
Changes the speed of the particle flow. Values greater than 1.0 speed up the flow without introducing any new velocities or accelerations, while values between 0.0 and 1.0 slow it down.

The result is not physically correct, but it can be useful if you just want to quickly retime a simulation. Be careful because it may introduce unwanted side-effects, especially at extreme settings.