Fluid Force operator

The Fluid Force operator allows you to apply forces from (Phoenix FD and FumeFX) fluid grids to particles.


Fluid Force Rollout

Fluid object

  • Fluid input object: the grid object that forces will be loaded from.

Advection Method

  • Euler: this is the fastest advection method that provides the least amount of accuracy. Each particle derives its velocity from a single grid sample.

  • R-K (Runge-Kutta) 24: these are more accuracy advection methods. Particles derive their velocities from multiple grid samples, at the cost of speed.

The slower and more accurate Runge-Kutta advection methods give better results when overall simulation time step is large. If your time step is smaller (12 frame, 14 frame, etc), the fast and least accurate (Euler) method may provide similar results to the slower methods.

Velocity Magnitude

These controls affect the overall magnitude of fluid forces applied to particle velocities.

  • Add/Blend/Replace: controls how forces computed by the operator will affect existing particle velocities.

  • Influence %: controls how much influence fluid forces will have on particle velocities.

  • Variation %: the per-particle percentage of variation to apply.

Velocity Direction

These controls affect the overall direction of fluid forces applied to particle velocities.

  • Add/Blend/Replace: controls how forces computed by the operator will affect existing particle velocities.

  • Influence %: controls how much influence fluid forces will have on particle velocities.

  • Variation %: the per-particle percentage of variation to apply.

Influence

  • X/Y/Z: controls which axis the forces will affect.

  • Use grid timescale: when enabled, raw grid velocities will be multiplied by the grid’s timescale value (only applies to PhoenixFD containers).

  • Stop if outside grid: particles outside the grid will come to a complete stop.

  • Relative to mass: controls whether particle forces will be relative to particle masses.

  • Simulate substeps: forces will be interpolated in a way that simulates the addition of forces at smaller simulation substeps.

Uniqueness

  • Seed: the seed value for all varied parameters.

Grid Particles Rollout

PhoenixFD liquid grids may also contain particle data. These controls allow you to drive the corresponding particles birthed from a Birth Fluid operator, using the same grid.

Input Particle Channels

  • Channels: the various PhoenixFD particle channels which may be available in the grid.

Input Particle Properties

  • Position/Velocity: controls which properties to copy from PhoenixFD particles onto the corresponding particles within the event.

Settings

  • Delete if dead: if a particle from the event has no corresponding particle in the fluid grid for the selected input channels, it will be deleted.

Fluid Particle Interaction Rollout

Grid velocities

  • Only influence submerged particles: when enabled, the operator will only advect particles that are inside grid cells containing fluid. Enable this setting to have the operator ignore particles that are ‘in the air’.

Spray/foam/bubbles

  • Channel: controls which custom float channel will contain the spray/foam/bubbles classification of particles.

  • Track spray/foam/bubbles: when enabled, particles’ relative location within the fluid grid will be analyzed, and classified accordingly.

By tracking spray/foam/bubbles, you can filter particles by their spray/foam/bubble classification later within the simulation. Fully-submerged particles (bubbles) will be given a custom float value of -1, particles on the surface of the liquid (foam) will be given a custom float value of 0 and particles in the air (spray) will be given a custom float value of 1. So, if you want to add buoyancy to bubbles, you could add a Force operator to the sim (with a positive gravity value) and add a filter to that operator so it only affects particles with a value of -1 in the spray/foam/bubble custom float channel. Or if you want to add wind turbulence to spray particles, you would do the same thing except filter by particles with a value of 1 in the spray/foam/bubbles channel.

By tracking and continually reclassifying particles within the grid, you can also track state changes between particles. For example, a spray particle that lands on the water surface will be reclassified as foam, or foam that moves under the water surface will be reclassified as a bubble, etc.

  • Foam max surface dist: controls how far above the fluid surface a particle can be to be classified as foam. Particles beyond this distance from the fluid surface will be classified as spray.

  • Reset event age if state changes: when enabled, a particle that changes state (ex: foam that turns into a bubble, or a bubble that turns into spray, etc) will have its event age reset to zero.

Built-in forces

  • Buoyancy: when enabled, adds an upwards velocity to particles that are underwater.

  • Drag %: when enabled, reduces the strength of above-water particle velocities (prior to the addition of the gravity force).

  • Gravity: when enabled, adds a downward velocity to particles that are above-water.

Foam patterns
  • Enable foam patterns: when enabled, an implicit particle system will be generated on the surface of the fluid which will repel particles classified as foam (particles that have a spray/foam/bubble float channel value of 0). The repulsion effect on the foam particles will create circular patterns that resemble real-life foam patterns caused rising fluid which spread foam formations apart.

  • Display driver points: displays the implicit driver particles in the viewport.

  • Size: the size of the circular foam patterns.

  • Variation %: the per-particle percentage of variation to apply.
  • Velocity: controls how fast the circular foam patterns will form over time.

  • Variation %: the per-particle percentage of variation to apply.
  • Velocity threshold: the velocity of foam pattern formations will be relative to the magnitude of the velocity of the implicit driver particles divided by this value. In short, the faster driver particles are moving (relative to this value), the faster their patterns will form. This means that slower areas of fluid will have slower pattern formations, and faster areas of fluid will have faster pattern formations.

  • Start time variation: assigns a random value to each implicit particle, controlling how many frames the particle must exist before it will influence the foam.

Keeping “start time variation” fairly large will better approximate the real-life phenomena foam patterns are meant to simulate: random fluid currents which rise up and break foam clumps apart. A “start time variation” of 0 means all implicit particles will begin affecting foam immediately, which may result in web-like structures forming in the foam.

  • Lifespan: controls how many frames a given implicit particle will affect foam.

  • Lifespan variation: controls how much variation will be applied to implicit particle lifespans.


Foam Pattern Noise Rollout

The foam pattern noise values can help to break up the circular shapes of the foam patterns. Larger noise strength values will create more irregular foam pattern shapes.

  • Noise mode: controls which noise algorithm will be used.

  • Noise texmap: the texmap that will be used by the noise texmap mode(s).

  • Noise preview: a preview image showing a 2D representation of the selected noise mode.

  • Strength: the strength of the noise (a multiplier on the default noise range of [-1, 1]).

  • Frequency: the speed at which the noise will evolve over time.

  • Scale: the scale multiplier for position values sent through the noise algorithm. Smaller values create larger noise patterns.

  • Roughness: controls the amount of extra detail applicable noise modes will generate.

  • Lacunarity: controls the scale of successive noise octaves for applicable noise modes.

  • Gain: controls the relative intensity of successive noise octaves for applicable noise modes.

  • Iterations/Octaves: controls the number of overlapping noise patterns that applicable noise modes will generate.

  • Phase: provides manual control over the evolution of the noise over time.