MATLAB: Fluid Flow - Curl of a Vector Field

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 4K views
Tallus Bryne
Messages
34
Reaction score
8
TL;DR
Looking for a mathematical description of what exactly the MATLAB curl function does when doing something like [curlz, cav] = curl(x,y,u,v).
I am working with some data which represents the fluid position and velocity for each point of measurement as an x, y, u, and v matrix (from particle image velocimetry). I have done things like circulation, and discretizing the line integral involved was no problem. I am stuck when trying to calculate the vorticity at each point. Lets say each x, y, u, v matrix is NxN. I would like to find a NxN matrix which represents the curl of the associated velocity field. I'm aware of the curl function on MATLAB and how [curlz, cav] = curl(x,y,u,v) will do the job just fine. What I'm really wondering is how exactly MATLAB's curl function does this calculation, or just how it would be done on paper in a simple case. Aside from a solution, I'd also appreciate any advice or hints.
 
on Phys.org
From the "Algorithms" section of the documentation:

curl computes the partial derivatives in its definition by using finite differences. For interior data points, the partial derivatives are calculated using central difference. For data points along the edges, the partial derivatives are calculated using single-sided (forward) difference.
 
Reply
  • Like
Likes   Reactions: FactChecker
Wow. I don't know how many times I looked over that documentation page, even up to the previous section "Numerical Curl and Angular Velocity" and was somehow blind to the "Algorithms" each time. Appreciate the quick response, thanks!