Bifröst simulations and scene scale

Many aspects of Bifröst simulations depend on the scale to which a scene is modeled. There are several settings that you may need to adjust, depending on the size of objects in the scene.

In particular, Bifröst does not consider the value of Linear in the Working Units group of your Settings preferences. This preference affects only how position values and certain attributes like the Radius of a polysphere are shown in the interface, and in particular it does not actually change the size of anything.

The default values of Bifröst attributes are instead based on the assumption that 1 visible grid unit is equal to 1 meter when Linear working units is set to the default value of centimeter. If you change your linear working unit to meter, then Bifröst considers a grid unit to be 100 meters, and if you change it to millimeter then Bifröst considers a grid unit to be 0.1 meter.

Real-world units and scale

Bifröst is based on real-world units for physical, measurable quantities like velocity and density. This allows for realistic and predictable results at different scene scales and frame rates.

The default attribute values mostly use SI units, that is, the International System of Units, or Système international. For example:
  • The default Gravity Magnitude is 9.8, which is approximately the acceleration due to gravity in m/s2.
  • The default Density of liquid is 1000.0, which is approximately the density of water in kg/m3 at standard ambient temperature and pressure.
  • The default Surface Tension of liquid is 0.072, which is approximately the surface tension of water in N/m or kg/s2 at standard ambient temperature and pressure.
  • The default Viscosity of liquid is 0.0, which turns off the calculation of viscosity to avoid unnecessary computation. The real-world dynamic viscosity of water is 0.001 Pa·s (equivalently kg/(m·s), sometimes called Poiseuille and abbreviated PI), which is too small to make a visible difference except at very small scales and slow speeds.

Temperature is an exception that does not use SI units for input. You enter values in degrees Celsius, although kelvins are used internally and you can see values in kelvins if you display numeric values for the Temperature channel in the viewport. The default ambient temperature for aero simulations is 20.0, which is roughly room temperature in °C.

Some of these values should be adjusted if your scene is modeled to a scale other than 1 cm = 1 m. For example, if your scene is modeled to a scale of 1 cm = 1 cm, then you should change Gravity Magnitude to 980.0 (9.8 m/s2 = 980.0 cm/s2). You should also change Density to 0.001 for water (1000.0 kg/m3 = 0.001 kg/cm3). In this case, you do not need to change Surface Tension because the units are independent of length (but not independent of mass).

However, in the specific case of a scene that has been modeled to a scale of 1 cm = 1 cm, it might be easier to use the cgs system of units. If you use the cgs units of cm for distance and g/cm3 for density, then surface tension and viscosity are automatically in the cgs units of dyn/cm (equivalently g/s2) and poise (P, or g/(cm·s)) respectively. This is because the relationship between basic units and derived units are the same for cgs as for SI. In this case, Gravity Magnitude should be 980.0 again, and for water, Density should be 1.0 and Surface Tension should be 72.0.

In fact you can use any units you like. Simulations should approximate reality as long as you use the same basic units like length and mass consistently, and the appropriate values for derived units like velocity, acceleration, density, surface tension, and viscosity.

An alternative approach is to keep the scale at 1 cm = 1 m, and model very large or small objects while leaving the physical attributes at their defaults. In such cases, you may need to adjust the camera's clipping planes to navigate and see the results.

Special considerations for small scales

There are some special considerations when simulating at small scales, because of the high velocities relative to the small distances and voxel sizes involved.

In particular, you may need to increase Time Stepping and Transport Stepping settings (see Bifröst Adaptivity attributes). In some cases it may also be necessary to increase the frame rate of the scene to emulate a high-speed camera.

At extremely small scales such as a single drop, there are some additional adjustment that you may need to make. Surface Tension does not always give accurate results even with many time steps, so it may be more efficient to use non-physically accurate values to fake a result that looks realistic. In some cases, it can also be more efficient to reduce Gravity Magnitude as well.

Remember that you can also deactivate things like vorticity and droplets to avoid calculations that make no difference to the result at these scales.