Physically-Based Fluid Modeling using Smoothed Particle Hydrodynamics

Table of Contents
Chapter 5: Conclusions and Future Work



Overall this method is successful in modeling fluid motion for computer graphics. The particle motion is convincing and attributes such as pressure and density evolve as the equations of hydrodynamics would predict. Unfortunately the results when using surface rendering were not as successful as it was originally hoped. The performance bottleneck in evaluating the implicit function results in a relatively slow update rate, preventing realistic animations in most cases.

A series of tests were run on the system in order to track interactivity and fluid attributes. The first set of tests (the "interactivity" tests) focused on smaller data sets that had the potential for modeling fluid convincingly (i.e. fast enough to look like fluid flowing without having to save frames for later playback). The other set of tests (the "drop" tests) were intended as full SPH simulations in order to track the evolution of fluid attributes and to check the contribution of the optional SPH equations. All tests were run on an SGI Onyx system. Most were on an 8 processor system (150 MHz) with 512 Mbytes of memory, the rest on a 12 processor system (150 MHz), also with 512 Mbytes of memory.

4.1 Interactivity Tests

The first set of tests used two relatively small particle sets: 36 particles and 156 particles. There were two environments in which the particles were run. One had obstacles forming a "funnel" and a floor, the other had a "spout" and a floor. The environments were created to model a real life fluid situation such as pouring water onto a floor or into a funnel. Figure 6, Appendix shows the spout environment, Figure 7, Appendix shows the funnel environment. Gravity was turned on, but the artificial viscosity, XSPH variant and thermal energy were all turned off. Without surface rendering both particle sets run fast enough for convincing motion, but the large data set has a much smaller time step due to a smaller smoothing length, and so did not move as far during one time step. With surface rendering turned on the 36 particle data set gives marginally convincing motion (if the fluid were cold honey) but the 156 particle simulation is not convincing. Figure 8, Appendix, shows a comparison of the surface update rate and the SPH update rate for this simulation. Table I shows average timings over 2000 time steps (about the length it took the particles to fall, make their way around the obstacle and settle onto the floor). Figure 9 shows the particles falling off the spout at timestep 2800, Figure 10, Appendix shows the same system rendered using an implicit surface.

4.2 Drop Tests

The full SPH tests which were run used data sets ranging form 62 to 1054 particles. All of the optional equations were included, but gravity was turned off. Particles were initialized in a configuration similar to the "drop" tests which Monaghan used in testing the SPH adaptation for incompressible flow (Monaghan, 1994). The initial particle formation was spherical, with initial velocities which were linear in the coordinates (i.e. the initial x velocity is a constant multiple of the initial x coordinate). No surfaces were calculated and there were no obstacles to contend with. The systems were run for 100, 500 and 1000 time steps, on 1, 4, and 8 processors. Unfortunately the serial XSPH loop dominated the timing for all data sets (see Table II), and so the 256 particle data set was also run on the 12 processor Onyx for 500 time steps without the serial XSPH loop. Figure 11, Appendix, shows a timing comparison between the 1, 4, 8 and 12 processor runs. It runs about 4.5 times faster on 12 processors than with 1 processor. Figure 12, Appendix, shows a comparison between the four different data set sizes running on 8 processors (including the XSPH calculation).

Figures 13 and 14, Appendix, show the density and the pressure for 256 particles over 1000 time steps. Initially they oscillate widely about zero, but gradually tend toward zero. This behavior is indicative of a fluid settling into equilibrium (the "molecules" are finding their natural inter molecular distance). Compare these plots against the average acceleration shown in Figure 15, Appendix. As the system settles down the acceleration tends towards zero.

The viscous contribution was found to be quite high at times, ranging from 1% to 20%. Fortunately the computation is not significant relative to the XSPH and rates of change loops, therefore its inclusion causes no performance bottleneck.

The average XSPH contribution to the velocity was found to be less than 0.1%. This is no surprise since this equation was meant to handle high speed flow situations, however it did not prevent inter-particle penetration with or without viscosity. In these simulations particles often intermingle, which is not typical of fluid elements. Initially the reason for this behavior was unclear. Subsequent testing revealed that it is an effect of the gradient of the kernel, preventable by lowering the smoothing length. The kernel gradient approaches a maximum as two particles move together, and decreases towards 0. If particle are close enough together to be "inside" this maximum they will not repel each other as they should. When the smoothing length is set greater than the initial particle separation many particles start out inside that maximum, resulting in unnatural clustering. Figure 16, Appendix, shows the gradient of the kernel and the associated smoothing length. Also shown are two inter-particle separations, one inside the maximum and one outside. By lowering the smoothing length, or by initializing the particle with a larger initial separation, particles will be far enough apart that their gradients will be above the maximum, resulting in proper particle repulsion. This will, however, reduce the size of the time step.

Figure 17, Appendix, shows the initial drop configuration for 256 particles, Figure 18, Appendix shows the drop test at time step 1000.

Data set

SPH Update 
(No surfaces) 

SPH Update 
(Surfaces on) 

Surface Update 

Number of 
36 Particles 0.0078 0.0091 0.1321 37.8
156 Particles 0.0856 0.1048 0.4049 366.8

Data set 
Update Time
Rate of Change 
62 Particles 0.0466 24.4% 69.4%
153 Particles 0.3493 46.4% 52.4%
256 Particles 0.6431 24.6% 74.7%
512 Particles 2.4067 24.4% 75.3%
1054 Particles 8.0447 29.8% 69.9%

Chapter 5: Conclusion and Future Work