# curl

Compute curl and angular velocity of vector field

## Syntax

```[curlx,curly,curlz,cav] = curl(X,Y,Z,U,V,W) [curlx,curly,curlz,cav] = curl(U,V,W) [curlz,cav]= curl(X,Y,U,V) [curlz,cav]= curl(U,V) [curlx,curly,curlz] = curl(...) [curlx,curly] = curl(...) cav = curl(...) ```

## Description

`[curlx,curly,curlz,cav] = curl(X,Y,Z,U,V,W)` computes the curl (`curlx`, `curly`, `curlz`) and angular velocity (`cav`) perpendicular to the flow (in radians per time unit) of a 3-D vector field `U`, `V`, `W`.

The arrays `X`, `Y`, and `Z`, which define the coordinates for `U`, `V`, and `W`, must be monotonic, but do not need to be uniformly spaced. `X`, `Y`, and `Z` must have the same number of elements, as if produced by `meshgrid`.

```[curlx,curly,curlz,cav] = curl(U,V,W)``` assumes `X`, `Y`, and `Z` are determined by the expression

`[X Y Z] = meshgrid(1:n,1:m,1:p)`

where `[m,n,p] = size(U)`.

`[curlz,cav]= curl(X,Y,U,V)` computes the curl `z`-component and the angular velocity perpendicular to `z` (in radians per time unit) of a 2-D vector field `U`, and `V`.

The arrays `X` and `Y`, which define the coordinates for `U` and `V`, must be monotonic, but do not need to be uniformly spaced. `X` and `Y` must have the same number of elements, as if produced by `meshgrid`.

`[curlz,cav]= curl(U,V)` assumes `X` and `Y` are determined by the expression

`[X Y] = meshgrid(1:n,1:m)`

where `[m,n] = size(U)`.

`[curlx,curly,curlz] = curl(...)`, `[curlx,curly] = curl(...)` returns only the curl.

`cav = curl(...)` returns only the curl angular velocity.

## Examples

collapse all

Use colored slice planes to display the curl angular velocity at specified locations in the vector field.

```load wind cav = curl(x,y,z,u,v,w); h = slice(x,y,z,cav,[90 134],59,0); shading interp daspect([1 1 1]); axis tight colormap(hot(16)); camlight set([h(1),h(2)],'ambientstrength',.6);``` Display the curl angular velocity in one plane of the volume. Then plot the velocity vectors in the same plane.

```load wind k = 4; x = x(:,:,k); y = y(:,:,k); u = u(:,:,k); v = v(:,:,k); cav = curl(x,y,u,v); pcolor(x,y,cav); shading interp hold on quiver(x,y,u,v,'y'); hold off colormap('copper');``` 