Animations of Flux and Flow

Mathematica needs the following package to be able to plot vector fields.

Needs["VectorFieldPlots`"]

Animation of zero flux, positive circulation

Find the flux of the velocity field F=<-y,x> along the path that is the circle (x^2)+(y^2)=1 counterclockwise.

Here is the field:

F={-y,x}
field=VectorFieldPlot[F,{x,-1.5,1.5},{y,-1.5,1.5}]

Here is the curve:

Clear[t]
r[t_]={Cos[t],Sin[t]}
curve=ParametricPlot[r[t],{t,0,2Pi},PlotStyle->{Red,Thick}]

Here is the Runge-Kutta method that solves for the trajectories of particles in this flow--you can think of it as following three pucks on an air hockey table, where the jets of are are manipulated to be in the direction of the arrows in the vector field. If you take the Numerical Methods course you will (sort-of) learn why the Runge-Kutta code works!

Clear[t,x,y,f]
(Subscript[f, 1])[t_,x_,y_]=F[[1]];
(Subscript[f, 2])[t_,x_,y_]=F[[2]] ;

h=2Pi/200;
num=200;
t=0.;
(Subscript[w, 1])=1.;
(Subscript[w, 2])=0.;
data={{t,(Subscript[w, 1]),(Subscript[w, 2])}};
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=0.5;
(Subscript[w, 2])=0.;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=1.2;
(Subscript[w, 2])=0.3;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

points=Table[Graphics[{Disk[{data[[i,2]],data[[i,3]]},0.05],Disk[{data[[num+1+i,2]],data[[num+1+i,3]]},0.05],Disk[{data[[2*num+2+i,2]],data[[2*num+2+i,3]]},0.05]}]
,{i,1,num}];

And finally, the glorious animation!

Manipulate[
Show[curve,field,points[[i]],PlotRange->{{-1.5,1.5},{-1.5,1.5}}]
,{i,1,num,1}]

Clear[t]
F=F/.x->r[t][[1]]/.y->r[t][[2]]
circulation=Integrate[F.r'[t],{t,0,Pi}]
flux=Integrate[F[[1]]*D[r[t][[2]],t]-F[[2]]*D[r[t][[1]],t],{t,0,Pi}]

The flux is zero in this case, since the particles do not cross the boundary. The circulation will be positive since the particles follow the circular path in the x y  - plane in the general direction of the arrows of the field. If we changed the decription of the curve C so that the path was traversed clockwise, then the circulation would be negative.

Notice also that if the curve C was changed to be not centered at the origin, there would be motion across the circle and so the flux would be nonzero--even though the motion of the particles is EXACTLY the same as above, changing the path you are integrating over changes the flux and circulation! Here's an example:

Clear[t]
F={-y,x}
r[t_]={2/10+Cos[t],-2/10+Sin[t]}
curve=ParametricPlot[r[t],{t,0,2Pi},PlotStyle->{Red,Thick}]

Manipulate[
Show[curve,field,points[[i]],PlotRange->{{-1.5,1.5},{-1.5,1.5}}]
,{i,1,num,1}]

Clear[t]
F=F/.x->r[t][[1]]/.y->r[t][[2]]
circulation=Integrate[F.r'[t],{t,0,Pi}]
flux=Integrate[F[[1]]*D[r[t][[2]],t]-F[[2]]*D[r[t][[1]],t],{t,0,Pi}]

It is very common to use circles in (ℝ^2) (and spheres in (ℝ^3)) when computing flux and circulation. What you really want to be able to do is figure out a curve that has zero flux for the vector field at hand (since that would maximize the circulation). These sorts of questions are best left for your other science classes, where the integrals have a specific meaning (fluid dynamics if you are an engineer, Gauss' laws of electrodynamics if you are a physics, diffusion if you are a chemist, etc)

Animation of  positive flux, zero circulation

Find the flux of the velocity field F=<x,y> along the path that is the circle (x^2)+(y^2)=1 counterclockwise.

Here is the field:

F={x,y}
field=VectorFieldPlot[F,{x,-1.5,1.5},{y,-1.5,1.5}]

Here is the curve:

Clear[t]
r[t_]={Cos[t],Sin[t]}
curve=ParametricPlot[r[t],{t,0,2Pi},PlotStyle->{Red,Thick}]

Here is the Runge-Kutta method that solves for the trajectories of particles in this flow.

Clear[t,x,y,f]
(Subscript[f, 1])[t_,x_,y_]=F[[1]];
(Subscript[f, 2])[t_,x_,y_]=F[[2]];

h=3/200;
num=200;
t=0.;
(Subscript[w, 1])=-0.1;
(Subscript[w, 2])=-0.1;
data={{t,(Subscript[w, 1]),(Subscript[w, 2])}};
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=0.1;
(Subscript[w, 2])=0.;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=0.2;
(Subscript[w, 2])=0.3;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

points=Table[Graphics[{Disk[{data[[i,2]],data[[i,3]]},0.05],Disk[{data[[num+1+i,2]],data[[num+1+i,3]]},0.05],Disk[{data[[2*num+2+i,2]],data[[2*num+2+i,3]]},0.05]}]
,{i,1,num}];

And finally, the glorious animation!

Manipulate[
Show[curve,field,points[[i]],PlotRange->{{-1.5,1.5},{-1.5,1.5}}]
,{i,1,num,1}]

Clear[t]
F=F/.x->r[t][[1]]/.y->r[t][[2]]
circulation=Integrate[F.r'[t],{t,0,Pi}]
flux=Integrate[F[[1]]*D[r[t][[2]],t]-F[[2]]*D[r[t][[1]],t],{t,0,Pi}]

The flux is positive in this case, since the particles are leaving the region inside the circle. The circulation will be zero since there is no rotation in the particles motion. Notice that the particles speed up the further away from the origin they get.

Animation of  negative flux, zero circulation

Find the flux of the velocity field F=<-x,-y> along the path that is the circle (x^2)+(y^2)=1 counterclockwise.

Here is the field:

F={-x,-y}
field=VectorFieldPlot[F,{x,-1.5,1.5},{y,-1.5,1.5}]

Here is the curve:

Clear[t]
r[t_]={Cos[t],Sin[t]}
curve=ParametricPlot[r[t],{t,0,2Pi},PlotStyle->{Red,Thick}]

Here is the Runge-Kutta method that solves for the trajectories of particles in this flow.

Clear[t,x,y,f]
(Subscript[f, 1])[t_,x_,y_]=F[[1]];
(Subscript[f, 2])[t_,x_,y_]=F[[2]];

h=3/200;
num=200;
t=0.;
(Subscript[w, 1])=-0.1;
(Subscript[w, 2])=-0.1;
data={{t,(Subscript[w, 1]),(Subscript[w, 2])}};
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=0.1;
(Subscript[w, 2])=0.;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=0.2;
(Subscript[w, 2])=0.3;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

points=Table[Graphics[{Disk[{data[[i,2]],data[[i,3]]},0.05],Disk[{data[[num+1+i,2]],data[[num+1+i,3]]},0.05],Disk[{data[[2*num+2+i,2]],data[[2*num+2+i,3]]},0.05]}]
,{i,1,num}];

And finally, the glorious animation!

Manipulate[
Show[curve,field,points[[i]],PlotRange->{{-1.5,1.5},{-1.5,1.5}}]
,{i,1,num,1}]

Clear[t]
F=F/.x->r[t][[1]]/.y->r[t][[2]]
circulation=Integrate[F.r'[t],{t,0,Pi}]
flux=Integrate[F[[1]]*D[r[t][[2]],t]-F[[2]]*D[r[t][[1]],t],{t,0,Pi}]

The flux is negative in this case, since the particles are entering the region inside the circle. The circulation will be zero since there is no rotation in the particles motion. Notice that the particles slow down the closer to the origin they get.

Animation of More General Case

Find the flux of the velocity field F=<-y cos (x+y),-x+sin (x y)> for the path that is the r[t]={(5/3)Sin[2t],(5/4)Sin[3t]}, 0≤t≤π.

Here is the field:

F={-y Cos[y+x],-x+ Sin[x*y]}
field=VectorFieldPlot[F,{x,-2,2},{y,-2,2}]

Here is the curve:

Clear[t]
r[t_]={(5/3)Sin[2t],(5/4)Sin[3t]}
curve=ParametricPlot[r[t],{t,0,Pi},PlotStyle->{Red,Thick}]

Here is the Runge-Kutta method that solves for the trajectories of particles in this flow.

Clear[t,x,y,f]
(Subscript[f, 1])[t_,x_,y_]=F[[1]];
(Subscript[f, 2])[t_,x_,y_]=F[[2]] ;

h=6/200;
num=200;
t=0.;
(Subscript[w, 1])=0.75;
(Subscript[w, 2])=0.75;
data={{t,(Subscript[w, 1]),(Subscript[w, 2])}};
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=-0.5;
(Subscript[w, 2])=0.;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

t=0.0;
(Subscript[w, 1])=0.1;
(Subscript[w, 2])=-1.5;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}];
Do[
(Subscript[k1, 1])=h (Subscript[f, 1])[t,(Subscript[w, 1]),(Subscript[w, 2])];
(Subscript[k1, 2])=h (Subscript[f, 2])[t,(Subscript[w, 1]),(Subscript[w, 2])];

(Subscript[k2, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k2, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k1, 1])/2),(Subscript[w, 2])+((Subscript[k1, 2])/2)];
(Subscript[k3, 1])=h (Subscript[f, 1])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k3, 2])=h (Subscript[f, 2])[t+(h/2),(Subscript[w, 1])+((Subscript[k2, 1])/2),(Subscript[w, 2])+((Subscript[k2, 2])/2)];
(Subscript[k4, 1])=h (Subscript[f, 1])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[k4, 2])=h (Subscript[f, 2])[t+h,(Subscript[w, 1])+(Subscript[k3, 1]),(Subscript[w, 2])+(Subscript[k3, 2])];
(Subscript[w, 1])=(Subscript[w, 1])+(((Subscript[k1, 1])+2 (Subscript[k2, 1])+2 (Subscript[k3, 1])+(Subscript[k4, 1]))/6.);
(Subscript[w, 2])=(Subscript[w, 2])+(((Subscript[k1, 2])+2 (Subscript[k2, 2])+2 (Subscript[k3, 2])+(Subscript[k4, 2]))/6.);

t=t+h;
data=Append[data,{t,(Subscript[w, 1]),(Subscript[w, 2])}],{i,1,num}]

points=Table[Graphics[{Disk[{data[[i,2]],data[[i,3]]},0.05],Disk[{data[[num+1+i,2]],data[[num+1+i,3]]},0.05],Disk[{data[[2*num+2+i,2]],data[[2*num+2+i,3]]},0.05]}]
,{i,1,num}];

And finally, the glorious animation!

Manipulate[
Show[curve,field,points[[i]],PlotRange->{{-2,2},{-2,2}}]
,{i,1,num,1}]

Clear[t]
F=F/.x->r[t][[1]]/.y->r[t][[2]]
circulation=NIntegrate[F.r'[t],{t,0,Pi}]
flux=NIntegrate[F[[1]]*D[r[t][[2]],t]-F[[2]]*D[r[t][[1]],t],{t,0,Pi}]

These integrals are VERY difficult to work out exactly!