Mridul Aanjaneya
[PHOTO] Department of Computer Science
Rutgers University
about me teaching research contact [PHOTO]

An Efficient Geometric Multigrid Solver for Viscous Liquids

Mridul Aanjaneya, Chengguizi Han, Ryan Goldade and Christopher Batty
Proceedings of the ACM in Computer Graphics and Interactive Techniques (SCA proceedings), 2, 2, 14:1-21, (2019)

thumb                          

Abstract: We present an efficient geometric Multigrid solver for simulating viscous liquids based on the variational approach of [Batty and Bridson 2008]. Although the governing equations for viscosity are elliptic, the strong coupling between different velocity components in the discrete stencils mandates the use of more exotic smoothing techniques to achieve textbook Multigrid efficiency. Our key contribution is the design of a novel box smoother involving small and sparse systems (at most 9x9 in 2D and 15x15 in 3D), which yields excellent convergence rates and performance improvements of 3.5x - 13.8x over a naïve Multigrid approach. We employ a hybrid approach by using a direct solver only inside the box smoother and keeping the remaining pipeline assembly-free, allowing our solver to efficiently accommodate more than 194 million degrees of freedom, while occupying a memory footprint of less than 16 GB. To reduce the computational overhead of using the box smoother, we precompute the Cholesky factorization of the subdomain system matrix for all interior degrees of freedom. We describe how the variational formulation, which requires volume weights computed at the centers of cells, edges, and faces, can be naturally accommodated in the Multigrid hierarchy to properly enforce boundary conditions. Our proposed Multigrid solver serves as an excellent preconditioner for Conjugate Gradients, outperforming existing state-of-the-art alternatives. We demonstrate the efficacy of our method on several high resolution examples of viscous liquid motion including two-way coupled interactions with rigid bodies.

Paper | BibTeX | Video

Valid HTML 4.01 Strict Valid CSS!