Eurographics/ACM Proceedings of the Symposium on Computer Animation (2017)
Sebastian Eberhardt, Technical University of Munich
Steffen Weissmann, Google Inc.
Ulrich Pinkall, Technical University of Berlin
Nils Thuerey, Technical University of Munich
We propose a novel method to extract hierarchies of vortex filaments from given three-dimensional flow velocity fields. We call these collections of filaments Hierarchical Vorticity Skeletons (HVS). They extract multi-scale information from the input velocity field, which is not possible with any previous filament extraction approach. Once computed, these HVSs provide a powerful mechanism for data compression and a very natural way for modifying flows. The data compression rates for all presented examples are above 99%. Employing our skeletons for flow modification has several advantages over traditional approaches. Most importantly, they reduce the complexity of three-dimensional fields to one-dimensional lines and, make complex fluid data more accessible for changing defining features of a flow. The strongly reduced HVS dataset still carries the main characteristics of the flow. Through the hierarchy we can capture the main features of different scales in the flow and by that provide a level of detail control. In contrast to previous work, we present a fully automated pipeline to robustly decompose dense velocities into filaments.
Despite the widespread use of fluid simulations, they are difficult to deal with in practice: they produce large amounts of dense three-dimensional flow fields which are unintuitive to look at, and even more difficult to edit. We propose a fundamentally different representation of flow data: a hierarchy of vortex filaments that intuitively captures rotating motions from fast large-scale motions down to subtle small-scale fluctuations. As such, these hierarchies represent time-varying skeletons of the flow data which dramatically reduce the amount of stored data and provide natural handles to edit and modify the flow. The filament hierarchy can be computed from any incompressible velocity field.
Vortex filaments are lines of constant, concentrated vorticity. They can offer a simplified representation of a flow field from the real world or from simulations. In our approach, several sets of filaments, each with its own vorticity strength, are combined to form a hierarchy. Each of these filament sets represents a certain scale in the flow. In this way, they offer a simplified representation of a fluid motion. In simulated data the number of vortices with different strengths can be very high. This poses a great challenge when trying to find a collection of filaments with a limited number of different strengths which match a given flow field as close as possible. Our hierarchy offers an automated algorithm to achieve this result.
While our algorithm is based on the filament computation method by Weissmann et al. This algorithm has inherent shortcomings in its original form. Most prominently, Weissmann et al. proposed an empirical choice of the filament strength. A priori it is completely unknown which choice of filament strength will produce a good representation of the original flow field, or whether this strength will lead to filaments at all.
Fig. 1: An example simulation of a buoyant bunny, reconstructed with filaments for three different frames.
It becomes apparent that none of the reconstruction results is close to the simulation (far right panel). Thus, it requires a significant amount of manual experimentation to achieve good results with previous work for computing filaments. From this fact we draw our motivation to develop a novel approach for the robust, automatic extraction of a set of filaments which represents the original velocity field very closely.
The central contributions of our work are
- an algorithm to decompose a flow field into a hierarchy of vortex filaments,
- an automated strategy to determine circulation strengths,
- an algorithm to improve the filament placement compared to the previous extraction method,
- and a filament-based paradigm for editing and modifying flows.