2D Vortex Core Tracking - Gamma 1 - Super Fast

Identifies 2D vortices using Gamma 1 from Graftieaux

https://zigunov.com/2019/07/08/finding-vortex-cores-with-gamma-1/

You are now following this Submission

Based on and inspired by Sebastian Endrikat https://www.mathworks.com/matlabcentral/fileexchange/52343-find-vortices-in-velocity-fields

Underlying math presented by L Graftieaux "Combining PIV, POD and vortex identification algorithms for the study of unsteady turbulent swirling flows" https://iopscience.iop.org/article/10.1088/0957-0233/12/9/307/pdf
Thanks a lot!

Sebastian's code is rather slow, though, because it uses 4 nested for loops. Producing the gamma1 map can be done more efficiently in Matlab by realizing that the operations described in the Graftieaux's paper can be rearranged into two convolutions. This code does that, basically. It also find the maximum gamma 1 by fitting a spline curve, therefore not being limited by the grid resolution of the vector field.

The drawback is that it'll find only one vortex core, which might not be desired in some applications where multiple vortices form. One can, however, use the second output (G1) to perform their own peak finding/thresholding to find multiple vortex cores.

Write-up of the details on https://zigunov.com/2019/07/08/finding-vortex-cores-with-gamma-1/

Hope it was useful!
-FZ

Cite As

Fernando Zigunov (2026). 2D Vortex Core Tracking - Gamma 1 - Super Fast (https://uk.mathworks.com/matlabcentral/fileexchange/72092-2d-vortex-core-tracking-gamma-1-super-fast), MATLAB Central File Exchange. Retrieved .

Categories

Find more on Fluid Dynamics in Help Center and MATLAB Answers

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.1

Fixed bug when Gamma<0 it needs to find minimum instead of maximum (using abs(Gamma) now).

1.0.11

New tags

1.0.1

Just added the website with some further description and math.

1.0.0