The Magnetic Field of an Axon: Ampere versus Biot-Savart

Brad Roth
6 min readDec 27, 2019


In Homework Problem 14 of Chapter 8 in Intermediate Physics for Medicine and Biology, Russ Hobbie and I ask the reader to calculate the magnetic field produced by the action current in a nerve axon using the law of Biot and Savart, and to compare it to the result found using Ampere’s law. This is a useful exercise, but I’ve always been uncomfortable with one aspect of the calculation. I’ll explain what I mean in today’s post.

In the homework problem you assume the intracellular current is uniform along one section of the axon, and is zero elsewhere (this is a big assumption, but it lets you derive an analytical solution). When you calculate the magnetic field using the law of Biot and Savart, you get a smooth, continuous function valid for any position along the axon. However, when you use Ampere’s law the result seems like it should be discontinuous. For some positions the intracellular current contributes to the current enclosed by the Amperian loop, but for other positions the intracellular current is zero and contributes nothing. How can the magnetic field be smooth and continuous if the intracellular current is discontinuous?

Below I’ll show you an elegant way to resolve this paradox. The bottom line is that the magnetic field you calculate using Ampere’s law is the same continuous function that you’d get using the law of Biot and Savart. I’ll change the details so that you don’t solve the homework problem in the book exactly, but the fundamental idea works for the book’s problem too.

Let the intracellular current be for − b < x < b, and zero elsewhere, where x is the position along the axon (see the figure above). The axon is surrounded by saline with conductivity σ. The calculation consists of four steps: First calculate the extracellular voltage in the saline, then differentiate to find the x-component of the extracellular current density , next integrate the current density across the area of the Amperian loop to get the return current (that part of the extracellular current that passes through the loop), and finally determine the net current enclosed by the loop and calculate the magnetic field B.

Case 1: x > b

Begin by calculating the magnetic field at point ( x, y) where x > b, so you’re in the region where there is no intracellular current threading the Amperian loop (the green circle in the figure above, having radius r). To determine the extracellular voltage, realize that current crosses the membrane at only two locations: x = b (a positive point source when viewed from the extracellular space) and x = − b (a negative point source). The voltage produced by a point source is inversely proportional to the distance, so

(If you don’t follow how I derived this expression, see Section 7.1 in IPMB.)

To find the x-component of the current density, differentiate with respect to x, multiple by σ, and add a minus sign.

The most difficult part of the calculation is integrating the current density over the area enclosed by the loop to find the return current. This is a two-dimensional integral, with an area element of 2π y dy and limits of the integration from 0 to r (see the figure on the right).

You can look up the needed integral in an integral table, evaluate it at the limits, and fill in any missing steps. The result is

The second term in the brackets is equal to minus one and the fourth term is equal to plus one, which cancel. There is no intracellular current for x > b, so the current enclosed by the loop is just the return current. The magnetic field is

(I switched the order of the two surviving terms and brought the minus sign inside the bracket.) This is exactly the solution you get using the law of Biot and Savart; if you don’t believe me, calculate it yourself.

Case 2: −b < x < b

The calculation for the extracellular potential, current density, and return current in the region − b < x < b is exactly as before

Now comes the interesting part. The second term in the brackets is not equal to minus one as it was earlier. Because x < b the numerator is negative, but the denominator is squared inside the square root so it is positive; the term becomes plus one. Because x > − b the fourth term is also equal to plus one, as before (both the numerator and denominator are positive). These two terms no longer cancel, so the return current becomes

This is different than we found for x > b. Don’t panic; remember that the total current enclosed by the loop is the return current plus the intracellular current. In this case, the intracellular current exactly cancels the +2 term inside the brackets in the expression for (remember, there is a minus one half in front of the brackets), so the enclosed current is just what we had for the x > b case, and the magnetic field is again

The equation for the magnetic field is the same for any value of x (you can check the x < − b case yourself; you’ll get the same equation). The “magic” comes from the term ( xb)/√( xb) 2switching from negative to positive, which is exactly what it had to do to cancel the intracellular current. The enclosed current is continuous even though the intracellular and return currents are not. The magnetic field calculated using Ampere’s law is a smooth function for all x, and is equivalent to the result obtained using the law of Biot and Savart (as it must be). Nice!

One limitation of this calculation is that the action potential has intracellular current only in one direction; a dipole. For an action potential propagating down an axon, the intracellular current first goes in one direction and then in another as the membrane depolarizes and then repolarizes; a quadrupole.

I’ll leave the calculation for this more complicated current distribution as an exercise for you. I suggest you do the calculation using both the Biot-Savart law and Ampere’s law. Enjoy!

Originally published at



Brad Roth

Professor of Physics at Oakland University and coauthor of the textbook Intermediate Physics for Medicine and Biology.