SPH - Particles (Liquid)

This type represents the standard “watery” substances, but is also used for highly viscous fluids, like chocolate or honey. RealFlow's liquids simulate very fast and they are perfectly suited to all kinds of projects with a demand for high detail, because they show even the finest drops and splashes. The liquid particle-based approach can be used for any field of operation where traditional fluids are required. In combination with daemons they open the door to a pretty-much endless variety of effects and applications.

 

 

Type

This submenu allows you to define the fluid’s behaviour. By default, RealFlow generates fluid particles used for all kind of liquids. Fluid particles can interact with other fluid particles and support self-collision. They are affected by any of RealFlow’s internal or imported objects, including RealWave surfaces.

Gas” is used to create substances like air. Gas particles tend to very strong expansion and high velocities. RealFlow gases are not grid-based and therefore behave completely different from other solvers.

Liquid” is RealFlow’s standard setting and provides parameters for all watery or high-viscous substances. It is surely the most often used type and is suitable for all kinds of particle-object interactions, but especially for small to mid-range simulations. For larger projects, you should consider using the new grid-based fluid solver "Hybrido".

Dumb” particles are perfectly suited for fast calculations of secondary effects, like spray or foam. Please keep in mind that these particles cannot react with each other and will not be affected by other emitters.

Elastics” establishes a so-called spring-mass system between the particles, making them behave like a soft body. This option can be used for interesting effects like jelly-like fluids or expanding and contracting substances. Please note that elastic particles are not ruled by RealFlow’s soft body solver – that is a completely different system and can only be used with objects.

Script” gives you the opportunity to write your own fluid behaviour with Python scripting or C++. Choosing this type adds an “Edit” button to the menu. Clicking on “Edit” opens a new scripting window with a predefined function that is used to enter your source code. By default, this window does not contain any executable code.

Resolution

With this setting you can increase or decrease the amount of particles, and therefore it is one of the most important parameters. “Resolution” especially depends on scene scale and emitter scale, but it also affects the fluid’s mass and therefore depends on “Density”, too. By default, resolution is 1.0. A volume of 1 x 1 x 1 units filled with 1,000 particles has a mass of exactly 1,000 kg. In other words: Each particle has a mass of exactly 1.0 kg. By raising “Resolution”, an individual particle’s mass will be lowered and vice versa. You can monitor the relationship between mass and density under

Statistics > Particle mass

Dependent on your scene, “Resolution” can dramatically increase, and values of 1,000 or even much higher are sometimes necessary. Another interesting issue – especially for scripting and plugin development – is the relation between “Resolution” and a particle’s radius, ruled by this formula:

radius = 1.0 / (1000.0 · Resolution1/3)

Density

Density” is defined as mass per volume unit and is expressed in kilograms per cubic metre [ kg/m3 ]. Water, for example, has a density of 1,000 kg/m3. “Density” is different for each substance and for some fluids, like crude oil or honey, there are only average values available, because they consist of variable amounts of ingredients.

Int Pressure

Each fluid shows a more or less strong tendency to expand. With gases this behaviour can be observed best, but even liquid substances have this tendency. “Int Pressure” simulates the forces between nearby particles, and very high values make the fluid fill a greater volume. If “Int Pressure” is set to 0.0 the particles lose their fluid behaviour.

Ext Pressure

This is “Int Pressure’s” counterpart and tries to limit a fluid’s expansion tendency. With very high values it is possible to compress the fluid. Gases, for example, should have very low “Int Pressure” and rather high “Ext Pressure” values to prevent them from flying away. Both parameters are used to fine tune a fluid’s appearance and behaviour, therefore they are fundamentally important for a realistic simulation.

Viscosity

Each fluid has a certain amount of viscosity, even water. It defines the tendency of particles to stick together. With very high values you can observe the typical strings in viscous fluids when they are torn apart. Substances with very high viscosity are honey, tar or syrup, for example. Fluids with low viscosity are alcohol, many solvents or liquid gases. Exaggerated settings can lead to misbehaving particles with high velocities.

Surface tension

On a fluid’s surface we can observe forces that keep the outmost molecules together, creating a kind of skin. Some insects, such as water striders, can even walk on this tight skin. Surface tension can also prevent water from infiltrating cloth to dissolve the dirt. For that reason, detergents contain special substances to reduce the fluid’s surface tension”. These are called surfactants or tensides. A water drop’s shape is mostly a result of these forces.

Interpolation

In some cases it is sufficient to raise the number of particles by selecting “Interpolation” instead of simulating the entire scene again. This feature gives you the possibility to generate more particles from an already cached BIN file sequence, but that is not the real idea behind this feature: “Interpolation” was originally introduced to simulate until a certain frame with low “Resolution”, stop, adjust to a higher value and resume. RealFlow analyses the fluid and places new particles where they will be safe. The new particles are not just filling the gaps, they completely satisfy the fluid engine’s equations.

RealFlow offers three options: “None”, “Local” and “Global”. Of course, “None” does not create any new particles and disables this function. The second options creates the new particles only within the existing fluid cloud with rather high accuracy. Please keep in mind that there are always some particles that will not fit. This is a good choice when the fluid should keep its shape. “Global” can be used when you do not have to worry about the original shape. The new particles will be created with some tolerance leading to slightly fuzzy edges. This solution is perfect for larger amounts of fluids, for example inside water tanks.

Another important thing about interpolation is fluid-object interaction. If a fluid is close to an object, it is very likely that new particles will suddenly appear inside the body. RealFlow does not check for collisions with objects and only examines the fluid.

Compute Vorticity

"Vorticity" hardly contributes to a fluid simulation, but it is a very important and interesting feature when you want to create rendered images. When you read out the BIN files' "Vorticity" channel and add it to add a shader you can create stunning and naturally looking results. The RenderKit mesh engine also supports "Vorticity", as well as the RFRK particle shaders. By default, this property is not simulated and you have to change the value to "Yes" if you want to make use of it. Please note that a particle's vorticity cannot be used to create the typical vortices of gas, fire or smoke.

Max Particles

The pre-adjusted default value is also the maximum value, but it can be changed any time, if you need less. Under “Statistics” you can see two entries counting particles: "Existing Particles" and "Emitted Particles". Max Particles” is connected to the latter value, and if you want to stop the emitter to create more particles you can enter a smaller value. Please note that "Max particles" is based on the total amount of emitted particles. Let's say you have entered "500,000", so even if you currently have only 1,000 particles in your scene, but have already deleted 499,000 particles, RealFlow will stop creating new particles.