Edition 0.1.14 of my first book, Geometric Algebra for Electrical Engineers is now available

Both paper versions are softcover, both published using amazon’s kindle direct publishing (aka createspace) and have a 6×9″ format, whereas the PDF is formatted as letter size.  The leanpub version was made when I had the erroneous impression that it was a print on demand service like createspace — it’s not, but the set your own price aspect of their service is kind of neat, so I’ve left it up.

If you download the free PDF or buy the black and white version, and feel undercharged, feel free to send some bitcoin my way.

Why I wrote this book.

This book was the product of an M.Eng “project course”, where my aim was to

  1. Perform a literature review of applications of geometric algebra to the study of electromagnetism.
  2. Identify the subset of the literature that had direct relevance to electrical engineering.
  3. Create a complete, and as compact as possible, introduction to the prerequisites required for a graduate or advanced undergraduate electrical engineering student to be able to apply geometric algebra to problems in electromagnetism. With those prerequisites in place, work through the fundamentals of electromagnetism in a geometric algebra context.
  4. Optionally, time permitting, review existing and/or create some Computer Algebra Software (CAS) for symbolic Geometric Algebra.

As well as provide the engineering credits I needed to graduate, this project course provided an opportunity to assemble some of my study related to Geometric Algebra into a coherent narrative.  This is in stark contrast to my “Exploring Physics with Geometric Algebra” writing, which was assembled from many individual articles, and is full of redundancy, and was written for myself at the point of writing.

Why geometric algebra?

Geometric algebra generalizes vectors, providing algebraic representations of not just directed line segments, but also points, plane segments, volumes, and higher degree geometric objects (hypervolumes.). The geometric algebra representation of planes, volumes and hypervolumes requires a vector dot product, a vector multiplication operation, and a generalized addition operation. The dot product provides the length of a vector and a test for whether or not any two vectors are perpendicular. The vector multiplication operation is used to construct directed plane segments (bivectors), and directed volumes (trivectors), which are built from the respective products of two or three mutually perpendicular vectors. The addition operation allows for sums of scalars, vectors, or any products of vectors. Such a sum is called a multivector.

The power to add scalars, vectors, and products of vectors can be exploited to simplify much of electromagnetism. In particular, Maxwell’s equations for isotropic media can be merged into a single multivector equation
\lr{ \spacegrad + \inv{c} \PD{t}{}} \lr{ \BE + I c \BB } = \eta\lr{ c \rho – \BJ },
where \( \spacegrad \) is the gradient, \( I = \Be_1 \Be_2 \Be_3 \) is the ordered product of the three R^3 basis vectors, \( c = 1/\sqrt{\mu\epsilon}\) is the group velocity of the medium, \( \eta = \sqrt{\mu/\epsilon} \), \( \BE, \BB \) are the electric and magnetic fields, and \( \rho \) and \( \BJ \) are the charge and current densities. This can be written as a single equation
\lr{ \spacegrad + \inv{c} \PD{t}{}} F = J,
where \( F = \BE + I c \BB \) is the combined (multivector) electromagnetic field, and \( J = \eta\lr{ c \rho – \BJ } \) is the multivector current.

Encountering Maxwell’s equation in its geometric algebra form leaves the student with more questions than answers. Yes, it is a compact representation, but so are the tensor and differential forms (or even the quaternionic) representations of Maxwell’s equations. The student needs to know how to work with the representation if it is to be useful. It should also be clear how to use the existing conventional mathematical tools of applied electromagnetism, or how to generalize those appropriately. Individually, there are answers available to many of the questions that are generated attempting to apply the theory, but they are scattered and in many cases not easily accessible.

Much of the geometric algebra literature for electrodynamics is presented with a relativistic bias, or assumes high levels of mathematical or physics sophistication. The aim of this work was an attempt to make the study of electromagnetism using geometric algebra more accessible, especially to other dumb engineering undergraduates like myself. In particular, this project explored non-relativistic applications of geometric algebra to electromagnetism. The end product of this project was a fairly small self contained book, titled “Geometric Algebra for Electrical Engineers”. This book includes an introduction to Euclidean geometric algebra focused on R^2 and R^3 (64 pages), an introduction to geometric calculus and multivector Green’s functions (64 pages), applications to electromagnetism (82 pages), and some appendices. Many of the fundamental results of electromagnetism are derived directly from the multivector Maxwell’s equation, in a streamlined and compact fashion. This includes some new results, and many of the existing non-relativistic results from the geometric algebra literature. As a conceptual bridge, the book includes many examples of how to extract familiar conventional results from simpler multivector representations. Also included in the book are some sample calculations exploiting unique capabilities that geometric algebra provides. In particular, vectors in a plane may be manipulated much like complex numbers, which has a number of advantages over working with coordinates explicitly.


In many ways this work only scratches the surface. Many more worked examples, problems, figures and computer algebra listings should be added. In depth applications of derived geometric algebra relationships to problems customarily tackled with separate electric and magnetic field equations should also be incorporated. There are also theoretical holes, topics covered in any conventional introductory electromagnetism text, that are missing. Examples include the Fresnel relationships for transmission and reflection at an interface, in depth treatment of waveguides, dipole radiation and motion of charged particles, bound charges, and meta materials to name a few. Many of these topics can probably be handled in a coordinate free fashion using geometric algebra. Despite all the work that is required to help bridge the gap between formalism and application, making applied electromagnetism using geometric algebra truly accessible, it is my belief this book makes some good first steps down this path.

The choice that I made to completely avoid the geometric algebra space-time-algebra (STA) is somewhat unfortunate. It is exceedingly elegant, especially in a relativisitic context. Despite that, I think that this was still a good choice from a pedagogical point of view, as most of the prerequisites for an STA based study will have been taken care of as a side effect, making that study much more accessible.

Mathematica packages for Geometric Algebra.

I initially had some trouble with some of the existing Mathematica packages that I found for Geometric Algebra (i.e. they would hang my Mathematica front-end intermittently), and ended up writing a couple less fancy Mathematica packages myself.  Those can be found in my gapauli repository


There are three packages, GA20.m, GA30.m and GA13.m, the first two of which use Pauli matrices to represent the algebra, and the latter which uses Dirac matrices.  Each of these packages use less tricky Mathematica syntax than many of the existing packages that I found (and didn’t hang my Mathematica front end).  For the examples in the book I ended up using an existing (and probably more well known) package, CliffordBasic.m geometric algebra module, instead of my less general (and perhaps more hacky) implementation.

Feedback or contribution.

Should you wish to actively contribute typo fixes (or even more significant changes) to this book, you can do so by contacting me, or by forking your own copy of the associated git repositories and building the book pdf from source, and submitting a subsequent merge request.


git clone git@github.com:peeterjoot/latex-notes-compilations.git peeterjoot
cd peeterjoot

submods="figures/GAelectrodynamics figures/gabook mathematica GAelectrodynamics gapauli latex frequencydomain"
for i in $submods ; do
   git submodule update --init $i
   (cd $i && git checkout master)
export PATH=`pwd`/latex/bin:$PATH

cd GAelectrodynamics
make mmacells.sty all

I reserve the right to impose dictatorial control over any editing and content decisions, and may not accept merge requests as-is, or at all. That said, I’ll probably not refuse reasonable suggestions or merge requests.


V0.1.14 (Jan 2019)
– various edits to chapter 1, plus adjustments to produce a 6×9 version for createspace.
V0.1.8 (July 2018)
– start with proper definion of line integral
– define a bivector valued multivector surface area integral, and provide some examples.
– volume integral and example
– call the line integral result: the fundamental theorem for line integrals.
– rework surface integral content.
– Got the basic reorganization of chapter2 done, properly introducing line integral, surface integral and volume integral before the fundamental theorem specializations.
– rewrite normalVectors as theorem-example-proof
– incorporate more feedback from Mo.
– products.tex: split the big hybrid definition into two theorems (dot is scalar selection, vector product has grades 0, 2) and one definition (wedge product).
– fixes for example: products of two unit vectors.
– use (for example) “grade (0,1)-multivector” instead of “0,1 multivector” or “grade 0,1 multivector”
– Rework dual as definition, examples, discussion, instead of the definition last.
– incorporate my annotated comments up to page 12 (ch1).
V0.1.7: (April 2018)
– More comments from Mo. remove the figure that came out blank in the printed version.
– multivector definition changed to sums of scalars, vectors, and products of vectors, special cases of which are k-vectors. (How to interpret products such as e_1 e_1 will need to come later.)
– got rid of contraction axiom reference in the multivector/multivector space intro.
– split out definition of multivector from multivector space. still editing the result, which isn’t entirely coherent.
– rewrite preface again.
– intro materials: add examples.
– start splitting the big ch1 summary table, and do a better introduction to vectors to start things off.
– add indexing of various symbols at point of first use.
– change tables to use \newtcolorbox (this can embed the desired layout attributes).
– small spaces (\,) after dV, dA, …. when they are first in the integrand.
– start incorporating my paper edit notes from first draft createspace print.
– experimenting with 6×9 layout. didn’t reduce the createspace cost (but increased it)
– lr’s on some vector derivatives.