After working on the simulation system today, we have some plausible explosion results! I modified a lot of different components of the system in order to improve our simulation quality, and the outcome seems to be pretty good. Here are some of the changes I made:
- Stop drawing the smoke so that it is easier to see the particles
- Increase the tolerance of the PCG algorithm by a ridiculously large amount so that it can handle the sudden divergence / velocity increase when the fuel particles initially explode and inject pressure into the system
- Instead of creating only one soot particle at the exact same location as a fuel particle only when the fuel is depleted, we now create multiple soot particles while the fuel particle is burning. These are created with a position and velocity near the original fuel particle with slight perturbations. This allows more particles in the system, giving a better visual result.
- Advect the soot particles based on the velocity field of the fluid, and also add a drag force to their movement
- Stop adding in the force of gravity to the particles during the advection step. I realized doing this was redundant and greatly inhibiting the upward movement in the system because gravity is already accounted for in the buoyancy calculation of the fluid
- Tweaking many of the constants to control the temperature increase due to fuel particles burning
The video shows two examples of our current progress. The first video shows an explosion with 1000 particles in a 30x60x5 grid, and the second is 10,000 particles in a 30x60x30 grid. Approximately 10 soot particles are generated per fuel particle, so the last video has roughly 100,000 particles involved in the entire simulation. I plan on rendering a larger high-resolution grid simulation with over a million particles.
Our next step is to continue tweaking the explosion system to make sure as many of the formulae are accounted for as correctly as possible, so that we can achieve the most visually appealing and physically correct output. Our largest piece of remaining work will be to transfer the simulation data into Maya for high quality renders.
