Vector fields

Math 211, Carleton College, Joshua R. Davis, revised 2023 October 29

Circular vortex

Here’s a basic example of a 2D vector field. Interpreted as a velocity field, it’s kind of like a whirlpool or vortex.

v = {-y / (x^2 + y^2), x / (x^2 + y^2)}
VectorPlot[v, {x, -1, 1}, {y, -1, 1}, VectorPoints->20]

You can imagine the trajectory of a particle as it circles that vortex. Here is a visualization, for many particles at once.

StreamPlot[v, {x, -1, 1}, {y, -1, 1}, VectorPoints->20]

This vector field is not conservative, even though it passes the test suggested by Clairaut’s theorem. The “reason” is that it’s not defined at the origin. Your homework explores that phenomenon further.

Simplify[D[v[[1]], y]]
Simplify[D[v[[2]], x]]

Attractor

Here we make a vector field by starting with a scalar field f and taking its gradient.

f = (x^2 + y^2)^(-1 / 2) / 10;
v = Grad[f, {x, y}]
VectorPlot[v, {x, -1, 1}, {y, -1, 1}, VectorPoints->20]
StreamPlot[v, {x, -1, 1}, {y, -1, 1}, VectorPoints->20]

Question for you: Mimicking code above, check that this vector field satisfies Clairaut’s theorem.

Another question for you: Alter the vector field above so that the origin is a repeller instead of an attractor. I mean, make all of the vectors point away from the origin.

Spiralling vortex

Here we add two vector fields together: the circular vortex and the attractor.

f = (x^2 + y^2)^(-1 / 2) / 10;
v = {-y / (x^2 + y^2), x / (x^2 + y^2)} + Grad[f, {x, y}]
VectorPlot[v, {x, -1, 1}, {y, -1, 1}, VectorPoints->20]
StreamPlot[v, {x, -1, 1}, {y, -1, 1}, VectorPoints->20]

Physics: Newtonian gravity

Here’s a 3D gravity force field (ignoring the physical constants). Unfortunately Mathematica doesn’t offer a StreamPlot3D function.

f = (x^2 + y^2 + z^2)^(-1 / 2);
v = Grad[f, {x, y, z}]
VectorPlot3D[v, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, VectorPoints->10]

Geology: Rock deformation

Structural geology is the study of how rocks fracture, slip, fold, and otherwise deform under the immense stresses found within the Earth. One important kind of deformation situation is called a shear zone. It can be found where two tectonic plates grind against each other, for example. A shear zone consists of a region of deforming rock trapped between two regions of non-deforming rock. The non-deforming regions move toward (or away from) each other at a constant velocity, and the deforming material between them gets smushed and sheared.

The entire system can be described as a velocity field. Although the problem is inherently 3D, we will stick to 2D simplifications, just because they are easier to see.

Here is a typical simple 2D shear zone model. Don’t worry about how the code works (it requires linear algebra), but do try adjusting the numbers L11, L12, and L21, to see how the velocity field changes.

l11 = 2;
l12 = 3;
l21 = 0;
l = {{l11, l12}, {l21, -l11}};
eig = Eigensystem[l];
If[eig[[1, 1]] < eig[[1, 2]],
	u = eig[[2, 1]],
	u = eig[[2, 2]]];
u = l.{u[[1]] / u[[2]], 1};
v = If[y > 1, u,
	If[y < -1, -u,
		l.{x, y}]];
VectorPlot[v, {x, -1.5, 1.5}, {y, -1.5, 1.5}, VectorPoints->20]
StreamPlot[v, {x, -1.5, 1.5}, {y, -1.5, 1.5}, VectorPoints->20]

Can you see the boundaries of the deforming region? They’re where the velocity field is discontinuous. To some geologists, the discontinuity is a defect of the model. So here is another 2D shear zone model, which produces a continuous velocity field. The vector u is the velocity of the northern undeforming region. The velocity of the southern undeforming region is then -u. Try altering u, to see how the field changes.

u = {0.3, -0.1};
v = If[y > 1, u,
	If[y < -1, -u,
		{u[[1]] y, u[[2]] y (3 - y^2) / 2}]];
VectorPlot[v, {x, -1.5, 1.5}, {y, -1.5, 1.5}, VectorPoints->20]
StreamPlot[v, {x, -1.5, 1.5}, {y, -1.5, 1.5}, VectorPoints->20]

Ecology: Predators and prey

The Lotka-Volterra model is a classic study of how predators and prey interact. Assume that an ecosystem consists of only two species: rabbits and foxes. Let x be the number of rabbits and y the number of foxes. The rabbits reproduce at a constant rate (and they have an unlimited food supply, which is not part of the model). However, they also get preyed upon. The rate of predation depends on how often foxes find rabbits, which depends on how many rabbits and foxes there are. So it is reasonable to declare that

dx / dt = A x - B x y

for some positive constants A, B. The foxes reproduce at a rate proportional to how much they’re eating, and they die off at a constant rate. So

dy / dt = D x y - C y

for some positive constants C, D. Notice that <dx / dt, dy / dt> is a 2D vector field. Intuitively, the x-y-plane is a “space” of population sizes, and the vector field is a velocity field in that space, describing how the population sizes move over time.

a = 1.5;
b = 1.0;
c = 3.0;
d = 1.0;
v = {a x - b x y, d x y - c y}
VectorPlot[v, {x, 0, 10}, {y,0, 10}, VectorPoints->20]
StreamPlot[v, {x, 0, 10}, {y, 0, 10}, VectorPoints->20]

Try changing the values of the parameters A, B, C, D, to examine their effect on the system. Can you change them to make the rabbit population crash? Can you make the rabbit population explode?

Meteorology: Wind velocity

This is a much more complicated example, which visualizes a data set of wind velocities across Earth’s surface. I found it in the Mathematica documentation.

data=GeoVectorENU[GeoPosition[CompressedData["
1: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
     "]]->StructuredArray[QuantityArray,{251,2},StructuredArray`StructuredData[QuantityArray,{{5.515519990456641,4.628070789743083},{-4.500960765126835,-25.526216958076432`},{7.56,0},{0,0},{5.58,-9.664843506234336},{1.3127802231619932`,-7.445146612772292},{-4.136639992842482,-3.4710530923073124`},{-7.2,0},{-6.016492026666007,-7.170175987593634},{-21.980909047232483`,-3.875827325525885},{-17.25275651762928,-6.279489831459277},{-17.25275651762928,-6.279489831459277},{8.795522930556102,-3.201308541528259},{-17.25275651762928,-6.279489831459277},{-29.52,0},{-17.25275651762928,-6.279489831459277},{-2.5630471023638917`,14.53576243446019},{5.515519990456641,4.628070789743083},{-35.45307910843949,6.251334396009492},{0,-5.4},{-12.782534959858314`,7.38},{12.178416365385374`,4.432581057500667},{-13.869863082800007`,5.04821731548687},{5.4,0},{1.8469087739586112`,-5.074340152243906},{-27.72,0},{17.09811197041559,-14.347019448203556`},{-35.45307910843949,6.251334396009492},{-21.980909047232483`,-3.875827325525885},{-1.900099746648619,-5.220481148628529},{10.835198140557186`,-29.769462226497577`},{18.081070345304138`,3.1881805419648406`},{0,-5.4},{0,-5.4},{-16.308416389882165`,-2.875613822164366},{20.34,-35.22991342595096},{-22.665386013356112`,8.24952585701513},{-16.308416389882165`,-2.875613822164366},{-9.664843506234336,-5.58},{5.58,-9.664843506234336},{-29.52,0},{-35.45307910843949,6.251334396009492},{3.125667198004746,17.726539554219745`},{18.081070345304138`,3.1881805419648406`},{-5.515519990456641,-4.628070789743083},{4.136639992842482,3.4710530923073124`},{-3.875827325525885,21.980909047232483`},{-3.78,6.547152052610356},{-19.32968701246867,11.16},{-12.782534959858314`,7.38},{-17.25275651762928,-6.279489831459277},{2.5856722835420554`,7.104076213141467},{-17.25275651762928,-6.279489831459277},{0,18.36},{-4.500960765126835,-25.526216958076432`},{-34.843802378741486`,-12.682106914515796`},{-8.24952585701513,-22.665386013356112`},{-20.88853273928066,12.06},{-3.6,-6.235382907247958},{16.546559971369927`,13.88421236922925},{-16.308416389882165`,-2.875613822164366},{-20.88853273928066,12.06},{0,-5.4},{-17.09811197041559,14.347019448203556`},{0,22.32},{0,0},{-12.782534959858314`,7.38},{-2.875613822164366,16.308416389882165`},{2.500533758403797,-14.181231643375796`},{-15.504037145639327`,18.47699196802975},{-17.25275651762928,-6.279489831459277},{-19.282492578526842`,-7.018253341042722},{0,-5.4},{-3.78,6.547152052610356},{-17.25275651762928,-6.279489831459277},{10.835198140557186`,-29.769462226497577`},{-38.65937402493734,-22.32},{2.875613822164366,16.308416389882165`},{0,9.36},{5.515519990456641,4.628070789743083},{-3.816944799514463,10.486969647970739`},{5.4,0},{0,0},{-17.25275651762928,-6.279489831459277},{-2.5630471023638917`,14.53576243446019},{7.104076213141467,2.5856722835420554`},{-14.53576243446019,2.5630471023638917`},{-17.25275651762928,-6.279489831459277},{8.105997779422344,-4.68},{-17.09811197041559,14.347019448203556`},{9.927935982821955,-8.33052742153755},{-16.308416389882165`,-2.875613822164366},{-20.88853273928066,12.06},{0,-5.4},{0,-5.4},{-3.4710530923073124`,4.136639992842482},{-17.25275651762928,-6.279489831459277},{-17.25275651762928,-6.279489831459277},{10.990454523616242`,1.9379136627629425`},{5.515519990456641,4.628070789743083},{36.51667148169267,-6.438874427889776},{8.795522930556102,-3.201308541528259},{1.8,-3.117691453623979},{-12.782534959858314`,7.38},{-3.4710530923073124`,-4.136639992842482},{-20.88853273928066,12.06},{-34.47912738358597,41.090623928901984`},{-7.142013131227138,8.511519807494965},{-14.53576243446019,2.5630471023638917`},{-7.56,0},{5.58,-9.664843506234336},{0,0},{5.515519990456641,4.628070789743083},{5.58,-9.664843506234336},{-4.136639992842482,3.4710530923073124`},{-17.25275651762928,-6.279489831459277},{-4.500960765126835,-25.526216958076432`},{-6.48145,-11.226200706717298`},{-6.016492026666007,-7.170175987593634},{0,0},{-8.24952585701513,-22.665386013356112`},{0,-5.4},{-13.869863082800007`,5.04821731548687},{7.38,12.782534959858314`},{1.3127802231619932`,-7.445146612772292},{-4.500960765126835,-25.526216958076432`},{0,-5.4},{-14.76,0},{10.835198140557186`,-29.769462226497577`},{-5.4,-9.353074360871938},{-29.52,0},{7.090615821687898,1.2502668792018985`},{5.58,-9.664843506234336},{18.081070345304138`,3.1881805419648406`},{-17.25275651762928,-6.279489831459277},{-13.869863082800007`,5.04821731548687},{-2.5630471023638917`,14.53576243446019},{10.635923732531847`,1.8754003188028476`},{2.3140353948715413`,2.7577599952283207`},{-17.25275651762928,-6.279489831459277},{41.090623928901984`,-34.47912738358597},{-17.25275651762928,-6.279489831459277},{0,-5.4},{-7.090615821687898,1.2502668792018985`},{9.217800568194267,1.6253469429624678`},{5.515519990456641,4.628070789743083},{0,0},{-21.980909047232483`,3.875827325525885},{-29.769462226497577`,10.835198140557186`},{-17.25275651762928,-6.279489831459277},{4.136639992842482,3.4710530923073124`},{11.80158051384486,14.064575975664436`},{0,-5.4},{-17.25275651762928,-6.279489831459277},{11.80158051384486,14.064575975664436`},{9.523541225115766,11.34971446925078},{9.927935982821955,8.33052742153755},{-6.547152052610356,-3.78},{18.081070345304138`,3.1881805419648406`},{20.52,0},{3.201308541528259,8.795522930556102},{-12.782534959858314`,7.38},{-2.5630471023638917`,14.53576243446019},{-4.500960765126835,-25.526216958076432`},{10.644562816409088`,12.685695978050274`},{27.305617659484184`,-32.54156794369418},{13.86,-24.006224192904636`},{6.547152052610356,3.78},{0,0},{3.201308541528259,8.795522930556102},{40.218219751749324`,23.22},{-5.663853573473073,15.561309800214643`},{-20.88853273928066,12.06},{-4.2561429259690415`,3.571327959418412},{-17.25275651762928,-6.279489831459277},{0,0},{14.064575975664436`,11.80158051384486},{-4.500960765126835,-25.526216958076432`},{-7.633889599028926,20.973939295941477`},{0,-5.4},{-22.44737846609265,-12.96},{0,-10.8},{17.77084128565668,10.26},{-12.782534959858314`,7.38},{-20.88853273928066,12.06},{-17.25275651762928,-6.279489831459277},{-1.6253469429624678`,9.217800568194267},{40.218219751749324`,23.22},{-20.88853273928066,12.06},{-17.25275651762928,-6.279489831459277},{-17.25275651762928,-6.279489831459277},{-35.45307910843949,6.251334396009492},{11.223689233046326`,6.48},{7.56,0},{3.4710530923073124`,-4.136639992842482},{-6.547152052610356,-3.78},{7.56,0},{-6.279489831459277,-17.25275651762928},{5.515519990456641,4.628070789743083},{-22.665386013356112`,-8.24952585701513},{36.51667148169267,-6.438874427889776},{6.48,11.223689233046326`},{0,0},{-1.6253469429624678`,9.217800568194267},{-8.28,14.341380686670302`},{0,0},{-3.5632606057254104`,20.208255091810507`},{-8.795522930556102,3.201308541528259},{-24.268287958009225`,-20.363511474869565`},{-7.018253341042722,19.282492578526842`},{3.78,-6.547152052610356},{-12.76596442152195,2.250983962278651},{-3.5632606057254104`,20.208255091810507`},{-6.016492026666007,-7.170175987593634},{14.341380686670302`,-8.28},{-29.52,0},{5.4,0},{-20.88853273928066,12.06},{-7.56,0},{-21.980909047232483`,-3.875827325525885},{-5.58,9.664843506234336},{-22.44737846609265,-12.96},{28.404927950851704`,23.834564567176873`},{5.58,-9.664843506234336},{-29.52,0},{-17.25275651762928,-6.279489831459277},{-18.36,0},{-20.88853273928066,12.06},{-8.33052742153755,-9.927935982821955},{-14.53576243446019,2.5630471023638917`},{4.8594743292302365`,-5.791295989979473},{-29.52,0},{-17.25275651762928,-6.279489831459277},{-12.782534959858314`,7.38},{-17.25275651762928,-6.279489831459277},{9.353074360871938,5.4},{-22.44737846609265,-12.96},{0,-5.4},{5.58,-9.664843506234336},{-4.432581057500667,12.178416365385374`},{0,0},{9.927935982821955,-8.33052742153755},{7.38,-12.782534959858314`},{-2.5630471023638917`,14.53576243446019},{0,-14.4},{-17.25275651762928,-6.279489831459277},{14.341380686670302`,-8.28},{2.500533758403797,-14.181231643375796`},{-20.88853273928066,12.06},{5.58,-9.664843506234336},{-2.5630471023638917`,14.53576243446019}},"Hours"^(-1) "Kilometers",{{1},{2}}]]];
params={{{{-90,90},{-20,80}},{0,30},{0,0}},{{{0,90},{-40,-20}},{0,30},{0,0}},{{{-90,0},{-100,-20}},{0,-60},{-(Pi/2),0}},{{{0,90},{-100,-40}},{0,-100},{-(13 (Pi/18)),0}},{{{0,90},{-180,-100}},{0,-100},{-(13 (Pi/18)),0}},{{{-90,0},{-180,-100}},{0,-160},{-(19 (Pi/18)),0}},{{{0,90},{80,180}},{0,30},{0,0}},{{{-90,0},{80,180}},{0,140},{11 (Pi/18),0}}};
parts=Table[GeoVectorPlot[data,GeoRange->p[[1]],GeoProjection->{"GoodeHomolosine","Centering"->p[[2]],"GridOrigin"->p[[3]],"ReferenceModel"->1},GeoRangePadding->None,Sequence[StreamStyle->Red,GeoGridLines->Quantity[10,"AngularDegrees"],GeoBackground->"CountryBorders"]],{p,params}];
Show[Graphics@@@parts,PlotRange->All]
parts=Table[GeoStreamPlot[data,GeoRange->p[[1]],GeoProjection->{"GoodeHomolosine","Centering"->p[[2]],"GridOrigin"->p[[3]],"ReferenceModel"->1},GeoRangePadding->None,Sequence[StreamStyle->Red,GeoGridLines->Quantity[10,"AngularDegrees"],GeoBackground->"CountryBorders"]],{p,params}];
Show[Graphics@@@parts,PlotRange->All]

You can imagine integrating such information into practical tasks such as forecasting weather, modeling climate change, and planning wind farms. In fact, the Mathematica documentation includes a great example showing that wind speed matches wind farm density in the USA. But I couldn’t get it to work.