## Abstact

We give an algorithm which extracts vortex filaments ("smoke rings") from
a given 3D velocity field. For given filament strength, an optimal number
of vortex filaments, together with their extent and placement, is given
by the zero set of a complex valued function over the domain. This
function is the global minimizer of a quadratic energy based on a
Schrödinger operator. Computationally this amounts to finding the
eigenvector belonging to the smallest eigenvalue of a Laplacian type
sparse matrix.

Turning traditional vector field representations of flows, for example,
on a regular grid, into a corresponding set of vortex filaments is useful
for visualization, analysis of measured flows, hybrid simulation methods,
and sparse representations. To demonstrate our method we give examples
from each of these.