Libo Huang told us about his recent research paper for SIGGRAPH 2020 about ferrofluids and their capabilities.
I am Libo Huang, and this is joint work with my supervisor Dr. Dominik Michels. I am responsible for the theory development, algorithm implementation, and running of the experiments. We work in the computer sciences group in the visual computing center of KAUST.
Goals and Challenges
Since ferrofluids are so interesting and behave rather unintuitively, we wish to develop a simulation algorithm based on physics laws to gain a better understanding of the material. We hope our contribution can provide a new point of view to simulate ferrofluids. There were theoretical and engineering challenges.
Our first challenge was to derive the theories on how to apply the magnetic forces when we only know the surface mesh of the ferrofluid. After we had the theories, due to their high computational cost, we had to try our best to harvest the computational power of GPUs for our implementation. It involves extensive experiments with a different formulation of the theory and exploring many programming paradigms.
We first solve the static version of Maxwell's equation with the boundary element method (BEM). This step is called the magnetization process. After this step, we obtain the magnetic pressure pressing on the fluids' surface and add that pressure to a novel surface only liquid simulator based on previous authors' work.
Usually solving the magnetization process requires the full spatial information of the ferrofluid. However, in a special case where the ferrofluid reacts linearly to the external magnetic field, the theory says only the surface position is sufficient. This observation allows us to save all the effort to solve the full 3D problem. Hence we only need to solve a much lesser number of unknowns only on the surface.
The surface only needs to discretize the liquid's surface. Given a fixed spatial resolution, the number of unknowns grows proportionally to the surface area, which is typically much less than the volume with the same resolution. However, the cost for solving each unknown is usually more expensive than well-designed volumetric methods. An advanced algorithm can solve the surface problem with linear complexity in terms of unknown. Unfortunately, current work becomes inefficient beyond certain unknown numbers, and the complexity is the square of unknowns. This usually happens around 50k vertices. At the current stage, only simple solid boundaries are supported, we can control the fluid density, surface tension, magnetic susceptibility, and external magnetic strength.
Applications and Limitations
Our current model can generate some simple animation of ferrofluids which can be used for visualization. The video demo already shows some examples.
The limitation comes from the linear magnetic material assumption, and the surface only fluid simulator. Our simulator is not yet able to support complex geometries, and may not be as stable as the eulerian fluid simulator for example FLIP or level set method. We are not able to handle viscosity for the liquid, also the friction reduction effect, thermodynamics aspects of ferrofluids are not yet considered.