Finding Knotted and Linked Vorticity Lines in 3D Vector Fields
| |||
Thesis in pdf | Defense slides in pdf html| Topological change movie | |||
| This page is a brief introduction to my master's thesis work. Under the joint advisement of Prof. Bruce Boghosian and Prof. Diane Souvaine, with the cooperation of Lucas Finn, I've been researching algorithms to extract vorticity lines from 3D vector fields. There are lots of pictures, and some movies. | |||
| | |||
| The setup of the problem is to create vorticity vector fields from initial conditions containing knots or links. Some examples are shown to the right, with the knots colored in hot colors and the created vectors in black or cool colors. Once these initial conditions have been created, they can be treated as fluid dynamics problems, and evolved using various methods. |
|
|
|
|
The challenge is that the known knot embedding changes under fluid dynamics simulations. It would be nice to be able to find an embedding only using the vorticity vector data. The goal then, is an algorithm that can find vorticity lines, or connected oriented cycles, from only vorticity vector fields. Ideal examples (actual results) are shown. |
|
|
|
|
The general idea behind the algorithm is that we needed a distance measure
between any two vectors with tails in various positions. Inspired by Prof. Shewchuk and Francois Labelle's paper titled
Anisotropic Voronoi Diagrams and Guaranteed-Quality Anisotropic Mesh
Generation, I decided to define a metric tensor for any given vorticity
vector, and use these metric tensors to calculate distance between any two vectors.
On the left, are two shots of the shortest edge lengths calculated using the defined metric tensors. The leftmost shot uses normal Euclidean distance, it looks better to use the other distance, using the L-infinity metric. On the right, the edges were colored according to the calculated distance. The bluer (shorter) edges are on the inside, closest to the original knot. |
|
|
|
|
With this intuitively defined distance measurements, the goal was to now find an
explicit representation of the cycle as a circurlar ordered list. Using the
concept of a filtration from alpha-shapes developed by Prof. Edelsbrunner, we sorted the edges
by length, and added them slowly, until directed cycles are present.
On the left is the first cycle found, the first 5 cycles found, and then a lot of cycles found. |
|
The links on this row are to movies which may or may not work with your computer.
The rightmost two have been checked on the major two desktop systems, and work
well with mplayer under linux as
well. These movies were made with the excellent xvidcap.
The first video is some of the edges being rotated around. The second is a single cycle evolving under Lattice Boltzmann simulation. The third also contains the first 5 distinct cycles as they undergo a topological change under Lattice Boltzmann simulation. |
Movie
|
Movie
|
Movie
|
|
|
|||
| Obviously, I left out all algorithmic details and implementation descriptions. Suffice it to say, the algorithms above perform very well, finding the first cycle in something like 30 seconds of computer time, though the code is very memory intensive. The visualizer is a quick Java3D slap-together job. If you like this page, or have comments, feel free to contact me | |||