# Physics Using Geometric Algebra/Basic Geometric Algebra

Clifford described his algebras as geometric because their algebraic operations map naturally into geometric operations. In particular, they provide an elegant representation of rotations and reflections in various spaces. This introduction will explain how geometric algebras work and how they correspond to geometric operations.

The geometric algebras are a family of algebras. From a physics point of view, the most interesting geometric algebras are G2 (2D), G3 (Euclidean space), and the Spacetime Algebra (STA). For expository purposes, we will start with G2 (2D). (We will not discuss the Spacetime Algebra in this section.)

## Vector Spaces (2D)

An algebra can be defined as a vector space plus a product operation, where a vector space consists of vectors that can be added and scaled, where scalars are real numbers.

e1 and e2 are orthonormal basis vectors, which means that  |e1| = |e2| = 1 and e1 and e2 are orthogonal. (See Figure 1.)

e1 is the unit vector of the x-axis. e2 is the unit vector of the y-axis.

We know what it means to add two vectors, just add components (see Figure 2):

1e1 + 3e2 (u)

+ 2e1 + 1e2 (v)

————————

= 3e1 + 4e2 (w)

NB: [3,4] is not a vector;  3e1 + 4e2 is a vector.

## Vector Products (G2)

What is a vector product in a geometric algebra?

A simple approach to vector multiplication would be to cross-multiply the terms algebraically:

(ae1 + be2)(ce1 + de2) =

ace1e1 + ade1e2 + bce2e1 + bde2e2

But what are e1e1, e1e2, e2e1, and e2e2?

In partial answer to this, we introduce a new basis element, e12, which corresponds to the x-y plane (see Figure 3). We stipulate that e1e2 = e12 and e2e1 = -e12.

The product of two basis vectors is a plane.

You can think of e1e2 as sweeping e1 in the direction of e2.  The area covered is e12.

The basis element has an orientation based on how you rotate when you go from the first vector to the second. If you move in a right-handed way (e.g. from e1 to e2 in the first image of Figure 3), then the orientation is positive. If you move in a left-handed way (e.g. from e2 to e1 in the second image of Figure 3) then the orientation is negative. ('Right-handed' means the direction that your right hand turns if your thumb is pointing at you and you move your hand in the direction of your fingers.)

## Multiplication Table (G2)

We now have four basis elements in G2 if you include a scalar element: 1, e1, e2, and e12.

The following table defines multiplication between these basis elements, where rows correspond to the left term in a product and columns correspond to the right term:

1 e1 e2 e12
1 1 e1 e2 e12
e1 e1 1 e12 e2
e2 e2 -e12 1 -e1
e12 e12 -e2 e1 -1

Note that multiplying by e12 rotates basis vectors by 90 degrees:

Multiplying by e12 on the left rotates left-handed (e1 -> -e2 -> -e1 -> e2).

Multiplying by e12 on the right rotates right-handed (e1 -> e2 -> -e1 -> -e2).

Note also that e12 squared equals -1, which corresponds to rotation by 180 degrees.

e12 plays the role of i in G2.

## Vector Multiplication (G2)

We can now say what it means to cross-multiply two vectors in G2:

(ae1 + be2)(ce1 + de2)

= ace1e1 + ade1e2 + bce2e1 + bde2e2

= ac + ade12 - bce12 + bd

= (ac + bd) + (ad - bc)e12.

This scalar plus a scaled basis plane is isomorphic to a complex number (x +yi), where e12 plays the role of the imaginary i.

We will call any expression of the form a + be12 a spinor (or rotor). (We will see in the next sections why it has this name.)

The product of two vectors is a spinor.

Note that ac + bd is the definition of the dot product (or inner product) of two vectors and ad - bc is the definition of the wedge product (or outer product) of two vectors. Thus, uv = u·v + uv.

In general, a multivector in G2 has four components: a + be1 + ce2 + de12.

We will reserve the word 'vector' for a multivector that just consists of basis vectors: be1 + ce2.

A spinor is a multivector that just consists of a scalar and a basis plane: a + de12.

## Simple Rotation (G2)

When we multiply a vector by e12 on the right:

(ae1 + be2) e12 = ae2 - be1

we see that e12 rotates each basis vector in the vector by 90 degrees:

e1 -> e2

e2 -> -e1.

This has the effect of rotating the whole vector by 90 degrees (see Figure 4). This is because a vector is just the sum of its basis vectors, so if the basis vectors are rotated, the vector is rotated.

Multiplying any vector by e12 rotates the vector by 90 degrees.

## General Rotation (G2)

When we multiply a spinor times a vector we get:

(a + be12) (ce1 + de2)

= a(ce1 + de2) + be12(ce1 + de2)

= a(ce1 + de2) + b(de1- ce2).

The result has a component in the original direction of the vector (the spinor's scalar times the vector (a in Figure 5)), plus a component at right angles to the vector (the spinor's e12 times the vector, which rotates the vector by 90 degrees (b in Figure 5)). This combination allows for the arbitrary rotation of a vector.

Multiplying a spinor times a vector rotates the vector.

## Meaning of the Spinor (G2)

Let u = ae1 + be2

and v = ce1 + de2.

Then

uv = (ae1 + be2)(ce1 + de2)

= (ac + bd) + (ad - bc)e12

= R.

Then uR = (ae1 + be2) [(ac + bd) + (ad - bc)e12]]

= ae1(ac + bd) + ae2(ad - bc) + be2(ac + bd) - be1(ad - bc)

= [a2c + abd - abd + b2c]e1 + [a2d - abc + abc + b2d]e2

= [a2c + b2c]e1 + [a2d + b2d]e2

= [a2 + b2]ce1 + [a2 + b2]de2

= [a2 + b2](ce1 + de2)

= [a2 + b2]v.

So, if uv = R, then uR = |u|2v.

R = uv represents the rotation between u to v.

Another way to show this is to note that since uu = |u|2 for any vector (the wedge product is zero, so only the dot product remains), then uR = u(uv) = (uu)v = |u|2v. So having R on the right rotates a vector from u to v. Similarly, since Rv = (uv)v = u(vv) = |v|2u, having R on the left rotates a vector from v to u.

## Reflection (G2)

Let R = uv. We know that uR = u(uv) = (uu)v = |u|2v. Now consider vR. We know that R rotates a vector by the angle between u and v. When we rotate v away from u by the angle between u and v, then we get u', which is the reflection of u across v. (See Figure 6.)

## Euclidean Space (G3)

In Euclidean space, there are three basis elements corresponding to the three planes: e12 (the x-y plane), e23 (the y-z plane), and e31 (the x-z plane).  There is also a basis element corresponding to the space: e123.

Just as an arbitrary vector can be represented as the sum of scaled basis vectors, an arbitrary plane can be represented as the sum of scaled basis planes. Thus, uv is a sum of scaled basis vectors that represents the plane that contains both u and v in it. (uv is uv without the scalar element, which can be computed using (uv - vu)/2.)

The G3 multivector has eight elements in it:

Multivector = a + be1 + ce2 + de3 + fe12 + ge23 + he31 + ke123

The following subsets of the multivector are useful:

Vector = be1 + ce2 + de3

Plane = fe12 + ge23 + he31

Spinor = a + fe12 + ge23 + he31

The spinor is isomorphic to Pauli spinors.

## Multiplication Table (G3)

Here is the multiplication table for G3:

1 e1 e2 e3 e12 e23 e31 e123
1 1 e1 e2 e3 e12 e23 e31 e123
e1 e1 1 e12 -e31 e2 e123 -e3 e23
e2 e2 -e12 1 e23 -e1 e3 e123 e31
e3 e3 e31 -e23 1 e123 -e2 e1 e12
e12 e12 -e2 e1 e123 -1 -e31 e23 -e3
e23 e23 e123 -e3 e2 e31 -1 -e12 -e1
e31 e31 e3 e123 -e1 -e23 e12 -1 -e2
e123 e123 e23 e31 e12 -e3 -e1 -e2 -1

Note that the subset of this table that only includes the rows and columns for 1, e1, e2, and e12 is identical to the multiplication table for G2. Similarly for the subset that only includes 1, e1, e3, and e31 and the subset that only includes 1, e2, e3, and e23. So the geometry of 2D planes is embedded in the geometry of 3D spaces. The only elements of the table that are new are the ones that involve e123 in some way or that involve multiplying two basis planes together.

Multiplying a basis plane times the remaining vector produces e123:

e12e3 = e123

e1e23 = e123

e2e31 = e123

e31e2 = e123

Think of the plane sweeping out the space in the direction of the vector.

Multiplying anything by e123 produces its dual (NB: vectors and planes are duals of each other, and scalars and spaces are duals of each other):

e12e123 = e3

e1e123 = e23

1e123 = e123

e123e123 = -1

This lets us define the cross product in terms of the wedge product:

uv = e123uv.

The cross product and the wedge product are duals of each other.

Multiplying one plane by another produces the third plane:

e12e23 = -e31

e12e31 = e23

e23e31 = -e12

e31e23 = e12

The three basis planes correspond to i, j, k in quaternions, and the G3 spinor is isomorphic to quaternions. You can see this by comparing the subset of the table that only includes the rows and columns for 1, e12, e23, and e31 with the following table, where e12 corresponds to i, e31 corresponds to j, and e23 corresponds to k.

Quaternion multiplication
× 1 i j k
1 1 i j k
i i −1 k j
j j k −1 i
k k j i −1

The whole G3 multiplication table is based on just two rules:

eiei = 1

eiej = -ejei (i ≠ j)

Here are some examples of how this works (remember that eij = eiej and that eijk = eiejek):

e12e12 = e1e2e1e2 = -e1e2e2e1 = -e1e1 = -1

e123e3 = e1e2e3e3 = e1e2 = e12

e2e31 = e2e3e1 = -e2e1e3 = e1e2e3 = e123

## Rotation (G3)

Rotation in G3 is a little more complicated than rotation in G2. Rotation in G3 works fine if the vector that is being rotated is in the plane of the rotation. But rotation in G3 does not produce a proper vector if the vector being rotated is out of the plane of the rotation. To see this, consider rotating e1 + e2 + e3 by e12 on the right. Based on the multiplication table for G3, we get:

e2 - e1 + e123

The first two elements correspond to rotating e1 + e2 by e12. The last element is what you get when you multiply e3 by e12: the volume e123.

The solution to this problem is to rotate the result on the other side by the conjugate of the rotation (the conjugate of a rotation negates all of the non-scalar elements of the rotation):

-e12(e2 - e1 + e123) = -e1 - e2 + e3

This rotation rotated the first two elements again in the same direction, resulting in a total rotation of 180 degrees. It also restored e3.

In general, you rotate a vector in G3 using a sandwich rotation:

v’ = RvR*

where R* is the conjugate of R.

Effectively, you are rotating the vector twice, with each spinor providing half of the spin.

This can be generalized to any multivector V:

V’ = RVR*

In particular, a spinor can be rotated. The result is the sum of the two rotations.