2D Vortex Core Tracking - Gamma 1 - Super Fast

version 1.1 (2.45 KB) by Fernando Zigunov
Identifies 2D vortices using Gamma 1 from Graftieaux


Updated 24 Jul 2020

View License

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!

Cite As

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

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!