My solver pretty run-of-the-mill; only the pressure solver was updated in order to handle anisotropic cells. I've used a finite-volume formulation to derive the pressure-correction equation for this case, but it suffices to say that only the weights used in forming the Poisson equation change.
Here is an example, a grid that is roughly 10x10x5 meters, with 2cm fine cells for roughly 100x100x100 cells:
The aspect ratios get quite high, 100:1 is not uncommon. You can see a buoyant flow simulation that I'm running as the contour values. The simulation takes about 20 seconds per frame, of which 7 seconds is writing the VTK output files that I use to post-process. In spite of that, the visual detail in the region of interest is excellent (given the resolution):
I find that it helps to advect a uniform resolution density field that is roughly 2X the fine cell resolution. Writing the code with general-purpose fields that can be point-sampled arbitrarily makes this a trivial feature to implement, simply allocate different grids for density and velocity.
Finally here is a rendering of the final simulation in Paraview, total simulation time ~35 minutes. There are still some bugs to track down, but the results are pretty promising:
No comments:
Post a Comment