My first book, Geometric Algebra for Electrical Engineers is available

The softcover and hardcover versions are both published using Amazon’s kindle direct publishing and have a 6×9″ format (280 pages.)  I used to also have a color print version available, but unpublished that once the hardcover option became available.  If you are not in the USA, look for the book on your local Amazon marketplace, as it has been published with expanded distribution.

If you download the free PDF 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 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.

Experimenting with pricing of the book.

In mid May 2020, I raised the price of the black and white version slightly (from $12 to $14.50 USD).  That’s a 17% price increase, but the price is still pretty low from an absolute value perspective.  This price increase was an experiment in response to a reseller (SuperBookDeals) buying copies at $12 and then reselling them at higher prices.  For some reason amazon lists the higher price reseller copies before their own direct sales version, so a buyer had to go out of their way to find the lowest priced version.  I wouldn’t care if resellers undercut the list price, and then got a preferential listing from amazon, but the fact that they do this at a higher price suggests I’d set the price too low.

If you are interested in a copy of the book, but don’t like the new higher price, please note that the (color) PDF version is still available for free.


  • V0.1.16-3 (Aug 4, 2021)
    • Nicky, D, Foreest: typo in eq 2.134. Shouldn’t the operator L be in front of the second step?
    • Fix typo in vector Green’s function for space time gradient
  • V0.1.16-1 (Feb 18, 2021)
    • Switch a couple figures to black and white.
    • Parameterize the path to twoParameterDifferentialFig.eps (color vs. black and white.)
    • d’Lambertian -> d’Alembertian (Thanks to Jack Paladin!)
    • s/Othogonal/Orthogonal/ (thanks to Zhengbang Zhou)
    • Spelling fixes.
    • Run the duplicate word checker from
    • Ran link checker and fixed two.
  • V0.1.16-0 (July 28, 2020)
    • preface tweak: display Maxwell’s equation in final form from the get go.
    • Apply suggestion from sigs.
    • Fix errors in cross product wedge relation example: thanks to Bill Ignatiuk!
    • Rework formsVsGA.tex as an appendix.
    • David: typo: page 18, (1.11) For example… (e1)^2 = (e2)^2 = (e3)^3 = 1. The power for (e sub 3) should be 2
    • Bruce Gould: pg 106: In the last expression I think the v1’s should be U2’s.
    • Add Tim Put and some other reviewers that I’d missed to the thanks.
    • Attempt to fix the missing dashes in the bash lstlisting.
    • Merge pull request #1 from TimPut/typos
  • V0.1.15-6 (May 2, 2019)
    • Update figures (thicker lines, remove some ticks, …) and link them to the mathematica link anchors.
    • “in figure fig.” -> “in fig”.
    • Extend my hacks of the classic thesis template to use 6×9 with smaller than default margins. Now have the preface page numbers not in the bleed area of the page.
    • Split colorlablebox into separate .sty (for phy452 notes.)
    • Fix pdfbookmarks for contents and list of figures (so that they don’t show up under the preface)
    • Index quaternion (Bruce Gould)
    • GAelectrodynamics.tex: Want scrheadings starting before contents otherwise page numbers are out of bounds (and the page headings are MIA)
    • Bruce: “May I suggest that the proofs should have the end-of-proof symbol at the end?” Used the amsthm proof environment to do this.
    • Theorem 1.2: turn the converse into a footnote, to be seen later. (Bruce)
    • Added Bruce Gould to the thanks.
    • This version uploaded to kdp (effectively the “2nd” edition)
  • 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.