VC.04 2D Vector Fields and Their Trajectories
 BASICS

\(Off[General::spell]; 
\(Off[General::spell1]; \)\)Off[ParametricPlot3D::ppcom]; Off[ParametricPlot::ppcom]; Off[Plot::plnr]; SetOptions[Limit, Analytic -> True];

CMView = {2.7, 1.6, 1.2};

Vector Drawer

BeginPackage["Vector3D`", "Graphics`Colors`"];

\(Axes3D::"usage" = 
      "Axes3D[a, b] creates a Graphics3D object of cartesian axes with x, y, and z running from -a/3 to a, and with axes labels b units beyond the tips of the axes.  Axes3D[a] is Axes3D[a, a/8]."; 

    \(Perpend::"usage" = 
      "Perpend[a] returns a unit vector which is perpendicular to the vector a."; \)\)Arrow::"usage" = 
      "Arrow[a] produces a 2 or 3 dimensional vector from the origin to a. \
Arrow[a, Tail -> tail] gives a vector from tail to a."; Vector::"usage" = 
      "Vector[a, b] gives a 2D or 3D vector from a to b."; ArrowHead::"usage" = 
      "ArrowHead[a, vec] produces an arrowhead with its tip placed at the \
point a, pointing in the direction of the vector vec."; Tail::"usage" = 
      "Tail -> point puts the tail of the vector at point."; Norm::"usage" = 
      "Norm[vec] returns the Euclidean length of vec."; Normalize::"usage" = 
      "Normalize[vec] returns a unit vector in the direction of vec, \
provided vec is nonzero."; Aperture::"usage" = 
      "Aperture is the ratio of the radius of the base to the length of the \
head of a vector."; TipSize::"usage" = 
      "TipSize specifies an absolute size for the inner tip length of the \
head of a vector."; TipRatio::"usage" = 
      "TipRatio is the ratio of the inner length of the arrowhead to the \
length of the shaft of a vector."; HeadRatio::"usage" = 
      "HeadRatio is the ratio of the outer length of the arrowhead to the \
length of the shaft of a vector."; HeadSize::"usage" = 
      "HeadSize specifies an absolute size for the head of a vector."; 
    ScaleFactor::"usage" = 
      "ScaleFactor specifies the amount to scale a vector in length and may \
be either a number or a pure function."; ZeroVectorPointSize::"usage" = 
      "ZeroVectorPointSize is the size of the point used to represent a \
zero vector."; Options[Vector] = 
      Options[Arrow] = 
        Options[ArrowHead] = {HeadRatio -> 0.18, 
            TipRatio -> 0.14, Aperture -> 0.3, 
            ScaleFactor -> 1, HeadType -> Polygon, 
            ShaftQ -> True, EdgesQ -> True, 
            VectorColor -> RGBColor[0, 0, 1], ShaftWidth -> 0.005, 
            ZeroVectorPointSize -> 0.01}; Begin["`Private`"]; SetOptions[ParametricPlot, AspectRatio -> Automatic]; SetOptions[Plot, AspectRatio -> Automatic]; SetOptions[Graphics, AspectRatio -> Automatic]; Axes3D[u_, v_] := 
      Graphics3D[{{Blue, Line[{{-(u/3), 0, 0}, {u, 0, 0}}]}, 
          Text["x", {u + v, 0, 0}], {Blue, 
            Line[{{0, -(u/3), 0}, {0, u, 0}}]}, 
          Text["y", {0, u + v, 0}], {Blue, 
            Line[{{0, 0, -(u/3)}, {0, 0, u}}]}, 
          Text["z", {0, 0, u + v}]}]; Axes3D[u_] := Axes3D[u, (u/8)]; Norm[a_?VectorQ] := N[(Sqrt[a . a])]; Normalize[a_?VectorQ] := If[a . a == 0, a, (a/Norm)[a]]; Perpend[a_?VectorQ] := 
      Normalize[{a[[2]], 
            -a[[1]]}] /; 
        Length[a] == 2Perpend[a_?VectorQ] := 
      Normalize[
          If[a[[1]] == 0, {1, 0, 0}, {0, 
              a[[3]], 
              -a[[2]]}]] /; 
        Length[a] == 3Base3D = 
      Table[{Cos[((2 k π)/8.) ], Sin[((2 k π)/8.) ]}, {k, 0, 
          8}]; Vector[from_?VectorQ, to_?VectorQ, opts___] := 
      Module[{sq, sw, ht, hs, hr, tr, ap, sf, vc, zvps, diff = to - from, 
            tip}, {sq, sw, ht, hs, hr, ts, tr, ap, sf, vc, zvps} = 
            {ShaftQ, ShaftWidth, HeadType, HeadSize, HeadRatio, TipSize, 
                  TipRatio, Aperture, ScaleFactor, VectorColor, 
                  ZeroVectorPointSize} /. {opts} /. Options[Vector]; 
          If[from == to, 
            Return[Graphics[{PointSize[zvps], vc, Point[from]}]]]; 
          diff = If[NumberQ[N[sf]], sf diff, sf[diff]]; tip = from + diff; 
          If[NumberQ[hs], hr = (hs/Norm)[diff]; tr = 0.75 hr]; 
          If[NumberQ[ts], tr = (ts/Norm)[diff]]; 
          Graphics[{
              If[sq, {vc, Thickness[sw], Line[{from, tip - tr diff}]}, {}], 
              With[{trans = ap hr Norm[diff] Perpend[diff]}, {vc, 
                  Thickness[sw], 
                  ht[{tip, tip - hr diff + trans, tip - tr diff, 
                      tip - hr diff - trans, tip}]}]}]] /; 
        Length[from] == Length[to] == 2Vector[from_?VectorQ, to_?VectorQ, opts___] := 
      Module[{sq, eq, sw, hs, hr, tr, ap, sf, vc, zvps, diff = to - from, 
            tip}, {sq, eq, sw, hs, hr, ap, sf, vc, zvps} = 
            {ShaftQ, EdgesQ, ShaftWidth, HeadSize, HeadRatio, Aperture, 
                  ScaleFactor, VectorColor, ZeroVectorPointSize} /. {opts}
                   /. Options[Vector]; 
          If[from == to, 
            Return[Graphics3D[{PointSize[zvps], vc, Point[from]}]]]; 
          diff = If[NumberQ[N[sf]], sf diff, sf[diff]]; tip = from + diff; 
          If[NumberQ[hs], hr = (hs/Norm)[diff]]; tr = (hr/2); 
          Graphics3D[{
              If[sq, {vc, Thickness[sw], Line[{from, tip - tr diff}]}, {}], 
              If[eq, {}, EdgeForm[]], {SurfaceColor[vc], 
                With[{temp = Perpend[diff]}, 
                  (Polygon[Append[#1, tip]]&)/@
                    Partition[
                      (tip - hr diff + #1&)/@
                        ((ap hr Norm[diff] Base3D) . {temp, 
                              Normalize[temp\[Cross]diff]}), 2, 1]]}}]] /; 
        Length[from] == Length[to] == 3Arrow[a_, Tail -> b_, opts___] := Vector[b, a + b, opts]Arrow[a_, opts___] := Vector[Table[0, {Length[a]}], a, opts]\(ArrowHead[a_, b_, opts___] := 
      Vector[a - b, a, ShaftQ -> False, opts]; 

End[]; 

    \(EndPackage[]; \)\)

Graphics`Colors`GosiaGreen = RGBColor[0,  0.392187,  0];

B.1)  Vector fields and their trajectories

B.1.a) Vector fields

A vector field is a function that spits out vectors. You make a 2D vector field by taking two regular functions, m[x, y] and n[x, y], and throwing them into the two slots:

Clear[Field, m, n, x, y]; m[x_, y_] = 0.5 (y - 1); n[x_, y_] = 0.3 (x - 0.5); Field[x_, y_] = {m[x, y], n[x, y]}

You plot a vector field by plotting the vector, Field[x, y], with its tail at {x, y} for a selection of points {x, y}:

\(vectorfieldplot = 
      Table[Arrow[Field[x, y], Tail -> {x, y}], {x, \(-3\), 3, 0.5}, {y, 
          \(-3\), 3, 0.5}]; 

    \(Show[vectorfieldplot, Axes -> True, AxesLabel -> {"x", "y"}]; 
    \)\)

A mad rush to the lower left and the upper right.

B.1.a.i)

What's a good way of interpreting this plot?

Look at what went into the plot.
The plot shows field vectors Field[x, y] plotted with their tails at {x, y} for a selection of points {x, y}.  The selection of points was:

pointplot = 
      Table[Graphics[{Red, PointSize[0.02], Point[{x, y}]}], {x, -3, 3, 
          0.5}, {y, -3, 3, 0.5}]; Show[pointplot, Axes -> True, AxesLabel -> {"x", "y"}];

The plot shows field vectors, Field[x, y], plotted with their tails at the points {x, y} shown above.
Take a look:

Show[pointplot, vectorfieldplot, Axes -> True, 
      AxesLabel -> {"x", "y"}];

Now you're ready to interpret the plot.
Think of the whole xy-plane as fluid flowing with currents and eddies.
-> The vectors represent the flow of the fluid at their tails.
-> The length of each vector indicates the speed of the fluid flow at its tail.
-> The direction of each vector indicates the direction of the flow.
In the plot above, some of the fluid is flowing off to the lower left and some of it is flowing off to the upper right.
The upshot:
The field vector Field[x, y] with tail at {x, y} represents the speed and the direction with which a cork at {x, y} moves away from {x, y} as it is caught by the flow.

B.1.a.ii)  Trajectories

Continue to go with the same vector field, Field[x, y], as used in part i) above and look at this plot:

{a, b} = {2, -1}; starterpoint = {a, b}; Clear[Derivative, x, y, t];
equationx=x'[t]==m[x[t], y[t]];
equationy=y'[t]==n[x[t], y[t]];starterx = x[0] == a; startery = y[0] == b; \(endtime = 6; 


    approxsolutions = 
      NDSolve[{equationx, equationy, starterx, startery}, {x[t], y[t]}, {t, 
          0, endtime}]; 

Clear[trajectory]; 

    trajectory[t_] = {
        x[t] /. approxsolutions[[1]], 
        y[t] /. approxsolutions[[1]]}; 

    \(trajectoryplot = 
      ParametricPlot[trajectory[t], {t, 0, endtime}, 
        PlotStyle -> {{Red, Thickness[0.015]}}, 
        DisplayFunction -> Identity]; \)\)\(starterplot = Graphics[{Red, PointSize[0.06], Point[starterpoint]}]; 


    Show[vectorfieldplot, starterplot, trajectoryplot, PlotRange -> All, 
      DisplayFunction -> $DisplayFunction]; \)

Some folks like to call the path you see a "trajectory" of the vector field.  Other folks call this path a "streamline" of the vector field.
What's going on here?

Run it again with a different starting point.

{a, b} = {3, -0.5}; starterpoint = {a, b}; Clear[Derivative, x, y, t];
equationx=x'[t]==m[x[t], y[t]];
equationy=y'[t]==n[x[t], y[t]];starterx = x[0] == a; startery = y[0] == b; \(endtime = 6; 


    approxsolutions = 
      NDSolve[{equationx, equationy, starterx, startery}, {x[t], y[t]}, {t, 
          0, endtime}]; 
Clear[newtrajectory]; 

    newtrajectory[t_] = {
        x[t] /. approxsolutions[[1]], 
        y[t] /. approxsolutions[[1]]}; 

    \(newtrajectoryplot = 
      ParametricPlot[newtrajectory[t], {t, 0, endtime}, 
        PlotStyle -> {{Red, Thickness[0.015]}}, 
        DisplayFunction -> Identity]; \)\)newstarterplot = Graphics[{Red, PointSize[0.06], Point[starterpoint]}]; 
    Show[vectorfieldplot, newstarterplot, newtrajectoryplot, 
      PlotRange -> All, DisplayFunction -> $DisplayFunction];

See both plots together:

Show[vectorfieldplot, starterplot, newstarterplot, trajectoryplot, 
      newtrajectoryplot, PlotRange -> All, 
      DisplayFunction -> $DisplayFunction];

Now get down to brass tacks.
These plots depict the path of a cork dropped in the flow defined by
       Field[x, y] = {m[x, y], n[x, y]} 
at the starter point. 
Reason: The specifications in the differential equation:
       starterpoint = {a, b},
       equationx = (x'[t] = m[x[t], y[t]]),
       equationy = (y'[t] = n[x[t], y[t]]),
       starterx = (x[0] = a), and
       startery = (y[0] = b)
tell you that the path will start at {a, b}, and that at each point {x[t], y[t]} on the path, the field vector 
       Field[x[t], y[t]] = {m[x[t], y[t]], n[x[t], y[t]]} 
with tail at {x[t], y[t]} is tangent to the path.  In fact, at each point {x[t], y[t]} on the path, the field vector 
       Field[x[t], y[t]] = {m[x[t], y[t]], n[x[t], y[t]]}
is the velocity vector of the cork as it floats on its merry way.
Take a look at this plot which makes the Field vectors twice as long as they really are:

scalefactor = 2; \(velvectors = 
      Table[Arrow[Field@@trajectory[t], Tail -> trajectory[t], 
          ScaleFactor -> scalefactor], {t, 0, endtime, 1}]; 


    Show[trajectoryplot, starterplot, velvectors, 
      DisplayFunction -> $DisplayFunction]; \)

\(newvelvectors = 
      Table[Arrow[Field@@newtrajectory[t], Tail -> newtrajectory[t], 
          ScaleFactor -> scalefactor], {t, 0, endtime, 1}]; 


    Show[trajectoryplot, starterplot, velvectors, newtrajectoryplot, 
      newstarterplot, newvelvectors, 
      DisplayFunction -> $DisplayFunction]; \)

To really get a lot out of this, go back to the beginning and type in a new vector field and redo everything above until you too go with the flow.

B.1.a.iii)

How does the vector field 
       Field[x, y] = {m[x, y], n[x, y]} 
govern the actual path of the cork dropped into the flow?

Answer:

If the cork finds itself at a position {x, y}, then it has to go with the flow.  The flow at {x, y} is in the direction of:

Field[x, y]

To go with the flow, the cork must leave {x, y} in the direction of the vector Field[x, y].  As the cork progresses, it corrects its direction instantaneously at each point to keep on the course that the flow determines.
As you saw above, the result is that if {x, y} is any point on the actual path of the cork, then the vector Field[x, y] with its tail at {x, y} is tangent to the actual path of the cork.

B.2)  Flow of vector fields along curves; flow of vector fields across curves: Visual inspection

B.2.a) Flow of a vector field ACROSS a curve

Describe the net flow across the ellipse parameterized by
       P[t] = {6  Cos[t], 4  Sin[t]} 
with 0 ≤ t ≤ 2  π of a fluid whose velocity is given by the vector field
       Field[x, y] = {x -  1, y}.

Answer:

Enter the vector field:

\(Clear[Field, m, n, x, y]; 
m[x_, y_] = x - 1; 
\(n[x_, y_] = y; 
    \)\)Field[x_, y_] = {m[x, y], n[x, y]}

Here's a look at the curve and the vector field:

vectorfieldplot = 
      Table[Arrow[Field[x, y], Tail -> {x, y}], {x, -6, 6, 1}, {y, 
          -4, 4, 2}]; \(Clear[t]; 
x[t_] = 6\ Cos[t]; 
\(y[t_] = 4\ Sin[t]; \)\)\(curveplot = 
      ParametricPlot[{x[t], y[t]}, {t, 0, 2\ π}, 
        PlotStyle -> {{Red, Thickness[0.01]}}, 
        DisplayFunction -> Identity]; 


    Show[vectorfieldplot, curveplot, Axes -> True, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

As you can see, this curve isn't a trajectory of the given field. 
Your goal here is to analyze what the flow is doing at the points right on this curve. 
To do this, look at the field vectors at points right on the curve and ignore what's happening elsewhere:

jump = (π/8); \(fieldvectors = 
      Table[Arrow[Field[x[t], y[t]], Tail -> {x[t], y[t]}], {t, 0, 
          2\ π - jump, jump}]; 


    Show[curveplot, fieldvectors, AxesOrigin -> {0, 0}, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

These vectors indicate the direction and the speed of the flow at points of the curve at the tails of the field vectors. 
No doubt about it.
The net flow of this vector field across this curve is from inside to outside.

B.2.b)

Describe the net flow across the ellipse parameterized by
       P[t] = {6  Cos[t], 4  Sin[t]} 
with 0 ≤ t ≤ 2  π  of a fluid whose velocity is given by the vector field
       Field[x, y] = {y -  1, y +  x}.

Answer:

Enter the vector field:

\(Clear[Field, m, n, x, y]; 
m[x_, y_] = y - 1; 
\(n[x_, y_] = y + x; 
    \)\)Field[x_, y_] = {m[x, y], n[x, y]}

Here's a look at the curve and the vector field:

\(vectorfieldplot = 
      Table[Arrow[Field[x, y], Tail -> {x, y}], {x, \(-6\), 6, 1}, {y, 
          \(-4\), 4, 2}]; 

Clear[t]; 
x[t_] = 6\ Cos[t]; 

    \(y[t_] = 4\ Sin[t]; \)\)\(curveplot = 
      ParametricPlot[{x[t], y[t]}, {t, 0, 2\ π}, 

        PlotStyle -> {{Red, Thickness[0.01]}}, 
        DisplayFunction -> Identity]; 


    Show[vectorfieldplot, curveplot, 
	Axes -> True, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

The curve and the vector field are two independent creatures.  One has no influence on the other. Your goal here is to analyze what the flow is doing at the points right on this curve. 
To do this, look at the field vectors at points right on the curve, and ignore what's happening elsewhere:

jump = (π/8); \(fieldvectors = 
      Table[Arrow[Field[x[t], y[t]], Tail -> {x[t], y[t]}], {t, 0, 
          2\ π - jump, jump}]; 


    Show[curveplot, fieldvectors, AxesOrigin -> {0, 0}, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

These vectors indicate the direction and the speed of the flow at points of the curve at the tails of the field vectors. 
No doubt about it.
The net flow of this vector field across this curve is from inside to outside.

B.2.c)

Describe the net flow across and along the ellipse parameterized by
       P[t] = {5  Cos[t], 3  Sin[t]} 
with 0 ≤ t ≤ 2  π of a fluid whose velocity is given by the vector field
       Field[x, y]={x -  y,(y/2)}.

Answer:

Enter the vector field:

\(Clear[Field, m, n, x, y]; 
m[x_, y_] = x - y; 
\(n[x_, y_] = y\/2; 
    \)\)Field[x_, y_] = {m[x, y], n[x, y]}

Here's a look the curve and the vector field:

\(vectorfieldplot = 
      Table[Arrow[Field[x, y], Tail -> {x, y}], 
		\ \ \ \ \ \ \ \ \ 
        \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
        \ \ \ \ \ \ \ \ \ \ \ {x, \(-6\), 6, 1}, {y, \(-4\), 4, 2}]; 


    Clear[t]; 
x[t_] = 5\ Cos[t]; 
\(y[t_] = 3\ Sin[t]; \)\)\(curveplot = 
      ParametricPlot[{x[t], y[t]}, {t, 0, 2\ π}, 
	
        PlotStyle -> {{Red, Thickness[0.01]}}, 
        DisplayFunction -> Identity]; 


    Show[vectorfieldplot, curveplot, 
	Axes -> True, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

Your goal here is to analyze what the flow is doing at the points right on this curve. 
To do this, look at the field vectors at points right on the curve and ignore what's happening elsewhere:

jump = (π/8); \(fieldvectors = 
      Table[Arrow[Field[x[t], y[t]], Tail -> {x[t], y[t]}], {t, 0, 
          2\ π - jump, jump}]; 


    Show[curveplot, fieldvectors, AxesOrigin -> {0, 0}, 
      AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
      DisplayFunction -> $DisplayFunction]; \)

These vectors indicate the direction and the speed of the flow at points of the curve at the tails of the field vectors. 
Looking at the plot, you can see: that:
-> The net flow of this vector field across this curve is from inside to outside.
-> The net flow of this vector field along this curve is counterclockwise.

B.3) Flow of vector fields along curves; flow of vector fields across curves

B.3.a.i)

Try to describe the net flow across and along the ellipse parameterized by
       P[t] = {5  Cos[t], 3  Sin[t]} 
with 0 ≤ t ≤ 2  π of a fluid whose velocity is given by the vector field
       Field[x, y]={(x/4)+ y- 1,0.5 (x +  y)}.

Answer:

Enter the vector field:

\(Clear[Field, m, n, x, y]; 
m[x_, y_] = x\/4 + y - 1; 

    \(n[x_, y_] = 0.5\ \((x + y\^2)\); \)\)Field[x_, y_] = {m[x, y], n[x, y]}

Here's a look at the curve and the vector field:

\(vectorfieldplot = 
      Table[Arrow[Field[x, y], Tail -> {x, y}], 
		\ \ \ \ \ \ \ \ \ 
        \ \ \ \ \ 		\ \ \ \ \ \ \ \ \ \ \ \ \ \ 		\ \ \ \ \ \ \ \ \ \ \ \ 
        \ \ \ \ {x, \(-6\), 6, 1}, {y, \(-4\), 4, 2}]; 

Clear[t]; 

    x[t_] = 5\ Cos[t]; 
\(y[t_] = 3\ Sin[t]; \)\)\(curveplot = 
      ParametricPlot[{x[t], y[t]}, {t, 0, 2\ π}, 
\ \ \ \ \ 
        PlotStyle -> {{Red, Thickness[0.01]}}, 
		
        DisplayFunction -> Identity]; 


    Show[vectorfieldplot, curveplot, 
\ \ 	Axes -> True, 
      AspectRatio -> Automatic, 
	\ \ 
      AxesLabel -> {"x", "y"}, 
	\ \ 
      DisplayFunction -> $DisplayFunction]; \)

Your goal here is to analyze what the flow is doing at the points right on this curve.  To do this, look at the field vectors at points right on the curve and ignore what's happening elsewhere:

jump = (π/12); \(fieldvectors = 
      Table[Arrow[Field[x[t], y[t]], Tail -> {x[t], y[t]}], {t, 0, 
          2\ π - jump, jump}]; 


    outcome = 
      Show[curveplot, fieldvectors, AxesOrigin -> {0, 0}, 
        AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
        DisplayFunction -> $DisplayFunction]; \)

It's hard to tell from this plot whether the net flow along the curve is clockwise or counterclockwise.  
And it's hard to tell from this plot whether the net flow across the curve is from outside to inside or from inside to outside. You can spot some features:
-> The plot indicates clockwise flow along the curve at the top and the bottom with counterclockwise flow along the curve on the left and on the right.
-> The plot also indicates that the flow across the curve is from inside to outside at the top and on the left, but, on the bottom, the flow across the curve is from ouside to inside.

B.3.a.ii) Using tangential components to help make a visual inspection of the flow ALONG a curve

Here's the plot of 
       Field[x, y]={(x/4)+ y- 1,0.5 (x +  y)}
at points on the curve in part i) above:

Show[outcome];

Look at the components of these field vectors in the direction of the tangent vectors to the curve:

Clear[tangent, tancomponent];
tangent[t_]={x'[t],y'[t]};

tancomponent[t_] = 
        Field[x[t], y[t]] . tangent[t]/tangent[t] . tangent[t] 
          tangent[t];

actualflowalong = 
        Table[Arrow[tancomponent[t], Tail -> {x[t], y[t]}], {t, 0, 
            2 π - jump, jump}];

flowalongplot = 
        Show[curveplot, actualflowalong, AxesOrigin -> {0, 0}, 
          AspectRatio -> Automatic, 
          AxesLabel -> {"x", "y"}, 
          DisplayFunction -> $DisplayFunction];

What does this plot of the tangential components of the field vectors tell you?

Look again:

Show[flowalongplot];

No doubt about it. 
The net flow of this vector field along this curve is clockwise.

B.3.a.iii) Using normal components to help make a visual inspection of the flow across a curve

What do you do to make a visual estimation of the flow of the vector field in part i) above across the ellipse?

Plot the components of the field vectors in directions perpendicular to the curve. To do this, look at:

Clear[tangent, normal];
tangent[t_]={x'[t],y'[t]};
normal[t_]={y'[t],-x'[t]};normal[t] . tangent[t]

The upshot:
       normal[t]={y'[t],-x'[t]}
is perpendicular to the curve at the point {x[t], y[t]}.
Here comes the plot of the normal components of the field vectors on the curve:

\(Clear[normalcomponent]; 

    normalcomponent[t_] = 
      \(Field[x[t], y[t]] . normal[t]\/normal[t] . normal[t]\) normal[t]; 

    actualflowacross = 
      Table[Arrow[normalcomponent[t], Tail -> {x[t], y[t]}], {t, 0, 
          2\ π - jump, jump}]; 


    flowacrossplot = 
      Show[curveplot, actualflowacross, AxesOrigin -> {0, 0}, 
        AspectRatio -> Automatic, AxesLabel -> {"x", "y"}, 
        DisplayFunction -> $DisplayFunction]; \)

There is some flow from outside to inside, but there's a heck of a lot more flow from inside to outside. 
No doubt about it; the net flow of this vector field across this curve is from INSIDE TO OUTSIDE.