4.10.7 · D2Advanced Topics (Elite Level)

Visual walkthrough — Tensor analysis — scalars, vectors, rank-2 tensors

2,091 words10 min readBack to topic

Everything below rests on one honest question: if I redraw my axes, what happens to the numbers I wrote down for a physical thing? We answer it for a dot, then a displacement, then a slope, then a two-slot machine.


Step 1 — The stage: two rulers over the same room

WHAT. We have a flat room (a plane). I lay down my axes and call a point's coordinates . My friend lays down tilted, differently-scaled axes and calls the same point (the tilde ~ just means "friend's version").

WHY. A tensor is defined by how numbers change between these two descriptions. So before any formula, we must picture the two grids sitting on top of one physical room.

PICTURE. Look at . One black dot. Two coordinate meshes. The dot never moves — only the labels we attach to it change. That immovable dot is the whole moral of tensors: the thing is real; the components are bookkeeping.


Step 2 — The one gadget we need: the Jacobian, drawn as a stretch

WHAT. Take one tiny step in my grid, (a tiny displacement, upper index because it is a displacement). How big is that same step in friend's numbers, ? The answer is the Jacobian:

WHY this tool and not another? We need to convert tiny changes between grids. The exact converter for tiny changes is the derivative — that is literally what a derivative is: the local conversion rate. We use the partial derivative because there are several coordinates and we want the rate with respect to one of them at a time. This is the Jacobian.

PICTURE. shows a small blue square in my grid becoming a tilted parallelogram in friend's grid. The Jacobian is exactly the local "how did my little square get stretched and sheared" matrix.


Step 3 — Contravariant vectors: displacement sets the gold standard

WHAT. A displacement is the most trustworthy vector we own — it is a real arrow between two real points. Apply the chain rule to see how its components change:

Anything whose components copy this behaviour we name contravariant, upper index:

WHY. We don't guess the rule — we steal it from something we already believe (a displacement). This is the honest way: define "vector" as "transforms like the one arrow we can't doubt." The repeated index (once up in , once down in ) means sum over — the Einstein summation convention.

PICTURE. : the same orange arrow. On a coarser friend-grid (bigger boxes) the arrow spans fewer boxes → its components get smaller. Numbers shrink as the ruler grows: that opposite-to-the-ruler behaviour is the meaning of the word contra-variant.


Step 4 — Covariant vectors: a slope transforms the other way

WHAT. Now take a scalar (one number per point, e.g. temperature) and its slopes (the gradient components). Chain rule again — but note which variable sits where:

Anything copying this we name covariant, lower index:

WHY the inverse Jacobian here? Because the derivative is with respect to the coordinate: is now in the denominator, so the chain rule pulls out — the flipped converter. A displacement had the new coordinate on top; a gradient has it on the bottom. Same chain rule, opposite slot.

PICTURE. : temperature contour lines. On a coarser grid the temperature climbs more per box → the gradient's components get bigger. Numbers grow with the ruler: co-variant, "varies with the basis."


Step 5 — Rank 2: glue two slots, one Jacobian each

WHAT. A rank-2 tensor is a machine with two slots. Its transformation is just Step 3 (or 4) applied once per slot — one converter factor per index:

WHY. There is no new idea — a two-slot object is two one-slot rules stapled together. Every index "drags exactly one Jacobian factor" (the master rule). Upper indices drag ; lower indices drag ; mixed tensors mix them.

PICTURE. : two arrows fed into a box, each rotated separately, so the box's whole grid of numbers reshuffles. For a pure rotation the Jacobian is a rotation matrix , its inverse is (rotations are orthonormal, so inverse = transpose), and the two-factor rule collapses into the compact matrix sandwich:


Step 6 — Why contraction survives: the converters cancel

WHAT. "Contract" means set an upper index equal to a lower one and sum, e.g. (this is the trace). Under a change of coordinates the two dragged converters meet:

WHY. Summing over the shared index makes and multiply — and by the chain rule they collapse to (1 if , else 0). All the coordinate-dependence evaporates. So a fully contracted tensor is a genuine scalar — it reads the same number in every frame.

PICTURE. : a forward-stretch arrow immediately undone by its inverse, landing you exactly where you started (identity ). That "there-and-back = nothing" is the picture of .


Step 7 — The edge cases you must never trip on

WHAT & WHY. A derivation is only trustworthy if it survives its extremes. Four to hold:

PICTURE. pairs each case with its grid.

  • Identity change (). Then , and every rule reads : no relabelling, nothing moves. Sanity floor.
  • The Kronecker delta (isotropic). Feed it through the mixed rule: . Same in every frame — the chain rule collapses it (this is Step 6's cancellation reused).
  • A plain data table (NOT a tensor). A times-table or a spreadsheet has no attached, so no converter to drag → no transformation law → not a tensor. Numbers alone are never enough.
  • Ordinary derivative (fails in curved grids). also hits the position-dependent Jacobian, spitting out an extra non-tensor term. The fix is the covariant derivative , which adds Christoffel symbols to cancel that junk.

The one-picture summary

One physical object over two grids. A displacement teaches the forward converter (contravariant, index up). A gradient teaches the inverse converter (covariant, index down). A rank-2 tensor staples one converter per slot → . Pair an up with a down and they cancel → an invariant scalar. That single diagram is the entire theory.

Recall Feynman retelling — say it to a 12-year-old

Imagine a dot on the floor. You draw square tiles; your friend draws slanted tiles over the same floor. The dot doesn't care — but the tile-numbers you each write are different. The rule for translating your numbers into your friend's is a little "stretch machine" called the Jacobian.

An arrow (a step across tiles) gets smaller numbers when tiles get bigger — that's a contravariant vector, it fights the tiles. A slope (how fast temperature climbs per tile) gets bigger numbers when tiles get bigger — that's a covariant vector, it goes along with the tiles. One uses the stretch machine, the other uses the stretch machine run backwards.

A rank-2 tensor is a two-armed machine, so you run the stretch machine once for each arm — for a rotation that's the neat sandwich . And if you ever pair an arrow-arm with a slope-arm and add them up, the stretch and the un-stretch cancel perfectly and you get a plain number that everybody agrees on — like the trace, which stayed no matter how we spun the axes. That agreement is the whole point: a tensor is the object whose real content survives the change of tiles.

Recall Quick self-check

Why does a covariant index drag the inverse Jacobian? ::: Because it comes from differentiating with respect to the new coordinate, so the new coordinate sits in the denominator and the chain rule pulls out . What makes the trace invariant? ::: Contracting an upper with a lower index multiplies by , which collapse to , erasing all coordinate dependence. Is a multiplication table a tensor? ::: No — it has no coordinate-change rule attached; tensors are numbers plus a transformation law.