Field computed by superposition of the closed-form ring field (Biot–Savart with complete elliptic integrals) over all rings of the coil, each carrying the coil current I. Inside a wire the field of a uniformly filled round conductor is used. B = μ0H (air, μr = 1). Rings: ⊙ current out of the plane at r < 0, ⊗ into the plane at r > 0 (positive I, right-hand rule about +z).
| Quantity | Formula | Section |
|---|---|---|
| Coil inductance | L=\sum_i\sum_j L_{ij} | (2) |
| Mutual inductance of two rings | M=\mu_0\sqrt{R_1R_2}\left[\left(\tfrac2k-k\right)K-\tfrac2kE\right] | (4) |
| Modulus | k^2=\dfrac{4R_1R_2}{(R_1+R_2)^2+b^2} | (4) |
| Internal inductance of a ring | L_\text{in}=\mu_0R/4 | (5) |
| External inductance of a ring | L_\text{out}=M(R,\,R-a,\,0) | (5) |
| Ring positions | R_j=R_0+jp_r,\;\; z_k=kp_z,\;\; l=n_L\,p_z | (6) |
| Flux linkage, energy | \vec\Psi=\mathbf L\vec I,\;\; W=\tfrac12\vec I^{\mathsf T}\mathbf L\vec I | (7) |
| Biot–Savart law | \vec H(\vec r)=\frac{I}{4\pi}\oint_C\frac{d\vec{l}^{\,\prime}\times(\vec r-\vec{r}^{\,\prime})}{|\vec r-\vec{r}^{\,\prime}|^3} | (10.1) |
| Flux density | \vec B=\mu_0\vec H | (10.8) |
| Field of the coil (superposition) | H_\rho=\frac{I}{2\pi\rho}\sum_{i}\frac{\zeta_i}{\sqrt{Q_i}}\Bigl[\frac{R_i^2+\rho^2+\zeta_i^2}{D_i}E_i-K_i\Bigr],\;\; H_z=\frac{I}{2\pi}\sum_{i}\frac{1}{\sqrt{Q_i}}\Bigl[K_i+\frac{R_i^2-\rho^2-\zeta_i^2}{D_i}E_i\Bigr] | (10.9) |
| DC resistance | R_\Omega=\rho\,\dfrac{\sum_i 2\pi R_i}{\pi d^2/4},\;\;\rho_\text{Cu}=1.72\cdot10^{-8}\,\Omega\text{m},\;\;\rho_\text{AlMg3}=4.65\cdot10^{-8}\,\Omega\text{m} | – |
A real winding is a helix. For inductance purposes it is replaced by N closed, coaxial circular rings. Ring i has the radius R_i (to the wire centre) and sits at the axial position z_i. All rings carry the same current I because they are connected in series.
The error of this approximation comes from the pitch angle of the helix, which is \tan\alpha = p/(2\pi R). For typical coils with p \ll R this is well below one percent of the inductance.
For a system of N current loops with currents I_k the stored magnetic energy is
The diagonal entries L_{ii} are the self inductances of the individual rings, the off-diagonal entries L_{ij}=M_{ij} are the mutual inductances. Reciprocity gives a symmetric matrix, L_{ij}=L_{ji}.
In a series coil every ring carries the same current, I_i=I. The energy of the coil as a single inductor is W=\tfrac12 L I^2. Comparing both expressions:
So the coil inductance is the sum of all matrix entries. What remains is to compute L_{ii} and M_{ij}.
In the Coulomb gauge (\nabla\cdot\vec A = 0) the vector potential obeys the Poisson equation
Its free-space solution, using the Green's function 1/(4\pi|\vec r-\vec r^{\prime}|), is for a thin loop C_1 carrying I_1:
The flux through a second loop C_2 follows from \vec B=\nabla\times\vec A and Stokes' theorem:
With M_{21}=\Phi_{21}/I_1 this gives the Neumann formula, which is symmetric in both loops:
Parametrise both rings by their azimuth angles \varphi_1,\varphi_2:
The line elements and the distance depend only on the difference \varphi=\varphi_2-\varphi_1:
One integration is trivial and yields 2\pi. Using the symmetry of the integrand about \varphi=\pi:
Substitute \varphi=\pi-2\theta, so d\varphi=-2\,d\theta and \cos\varphi = 2\sin^2\theta-1. The root becomes
with the modulus
Since \sqrt D = 2\sqrt{R_1R_2}/k, the prefactor is 2\mu_0R_1R_2/\sqrt D = \mu_0 k\sqrt{R_1R_2}, and
Write the numerator as 2\sin^2\theta - 1 = \frac{2}{k^2}\bigl[1-(1-k^2\sin^2\theta)\bigr]-1. With the complete elliptic integrals of the first and second kind
the integral evaluates to \left(\frac{2}{k^2}-1\right)K-\frac{2}{k^2}E, which gives Maxwell's formula:
This is exact for two filamentary rings. For round wires of finite radius it is still very accurate as long as the wires do not overlap, because the field of a round conductor outside it equals that of a filament at its centre.
The Neumann integral diverges for a filament with itself (r_{12}\to 0), so the finite wire radius a=d/2 must enter. Split the self inductance into the part from the field inside the wire and the part from the field outside:
For a straight round wire with uniform current density, Ampère's law gives inside the conductor (\rho\le a)
The energy per unit length stored inside the wire is
It is independent of the wire radius. For a bend radius much larger than a the ring behaves locally like a straight wire, so along the circumference 2\pi R:
The external part is the flux outside the conductor per unit current. Replace the current by a filament on the wire axis (radius R). The flux that this filament produces through the hole of the ring, up to the inner surface of the wire, is the flux through a second filament of radius R-a in the same plane. That is exactly a mutual inductance with b=0:
Together:
For a\ll R the modulus approaches 1. With k'^2 = 1-k^2 \approx a^2/(4R^2) and the asymptotics K\approx\ln(4/k'), E\approx1:
This is the classic Kirchhoff/Rosa result for a round-wire loop. The tool uses the exact elliptic form, so no approximation enters here.
The coil is built from layers stacked along the axis. Each layer is a plane perpendicular to the axis and holds the same number of turns, the turns per layer m, side by side from the inner radius outward. Two independent distances describe the grid of wire centres:
Layer 1 lies at z=0, every further layer is placed above it. Turn j of layer k (both counted from 0) lies at
R_0 is the inner ring radius from the axis to the centre of the innermost wire rings. The winding extends from z=-d/2 to z=(n_L-1)\,p_z+d/2 and radially from R_0-d/2 to R_0+(m-1)\,p_r+d/2. The surface of the coil former lies at R_0-d/2, which must be positive. The wires fit without overlap only if p_z\ge d and p_r\ge d; the calculator warns otherwise. Insulation thickness belongs into d if it should be accounted for in the spacing.
Only distances between rings enter the inductance, so the choice z_0=0 for the first layer is a convention for the drawing and does not change any result.
With N rings the inductance matrix is the N\times N matrix of all self and mutual inductances,
It links the vector of ring currents \vec I to the vector of flux linkages \vec\Psi: entry L_{ij} is the flux through ring i caused by a unit current in ring j. The magnetic energy is the quadratic form W=\tfrac12\,\vec I^{\mathsf T}\mathbf L\,\vec I.
With the numbering By layer the rings of layer 1 come first, then those of layer 2 and so on. The matrix splits into n_L\times n_L blocks of size m\times m:
A diagonal block \mathbf L_{kk} describes one layer alone: self inductances on its diagonal, mutual inductances between rings in the same plane (b=0) elsewhere. An off-diagonal block \mathbf L_{kl} holds the couplings between layer k and layer l at the axial distance |k-l|\,p_z. Because all layers are identical and equally spaced, a block depends only on |k-l|:
The matrix is therefore block-Toeplitz, and the blocks themselves are symmetric. This is the pattern visible in Fig. 5 of the Thomson ring page and in the table of the calculator.
With the numbering By radius rows and columns are reordered so that all rings of the same radius follow each other. This is a simultaneous permutation \mathbf L' = \mathbf P\,\mathbf L\,\mathbf P^{\mathsf T} of rows and columns: every entry keeps its value, and the sum of all entries is unchanged.
In the series connection all rings carry the same current, \vec I = I\,(1,1,\ldots,1)^{\mathsf T}. The flux linkage of ring j is then the column sum times I, and the total flux linkage of the coil is the sum of all column sums:
The bottom row of the table shows these column sums. Rings in the middle of the winding have the largest sums because they are surrounded by the most neighbours. The results panel splits the total into the diagonal part (self) and the off-diagonal part (mutual); for compact multi-layer coils the mutual part usually dominates.
K and E are computed with the arithmetic-geometric mean (AGM). Starting from a_0=1,\;b_0=\sqrt{1-k^2},\;c_0=k:
The iteration converges quadratically: five to six steps reach machine precision even for k close to 1, which occurs for the self inductance and for neighbouring turns.
The matrix has N^2 entries, but because it is symmetric only N(N+1)/2 of them are evaluated. A coil with 1000 turns needs about half a million elliptic-integral evaluations, which a browser handles in well under a second.
The example is taken from Fig. 5 in the article Thomson Ring Experiment (chapter 3.2, inductance matrix of a multi-layer coil). Three planar layers of four rings each (R = 5, 15, 25, 35 mm, layer spacing 10 mm, wire radius 1 mm) give a total of 2770 nH with the internal term and 2695 nH without it. The difference is exactly 3\cdot\frac{\mu_0}{4}(5+15+25+35)\,\text{mm} = 75.4 nH. Single entries: L_{11}=10.61 nH (9.03 nH without internal term), M(5,15,0)=3.44 nH, M(5,5,10)=0.71 nH. To reproduce it, enter the layer distance p_z=10 mm, 3 layers, 4 turns per layer, d=2 mm, p_r=10 mm (or coupled), R_0=5 mm with By layer; the matrix then has the same block layout as Fig. 5. These are the start values of the program.
The results panel shows Wheeler's empirical multilayer formula in SI form,
with mean radius r_m and winding depth c. It is accurate to about 1 % for compact coils whose three terms in the denominator are of similar size, and less accurate for very short or very long coils. Deviations of a few percent are therefore expected and are not an error of the ring model.
The Magnetic Field tab computes the field strength vector \vec H of the same ring model that is used for the inductance. Each ring carries the coil current I, positive in the right-hand sense about +z. Because the arrangement is rotationally symmetric, it is enough to evaluate the field in the half plane y=0; the field there has only a radial and an axial component.
A stationary current I in a thin conductor C produces at the point \vec r the magnetic field strength
Each element d\vec{l}^{\,\prime} at the source point \vec{r}^{\,\prime} contributes a vector perpendicular to the line element and to the distance vector \vec R=\vec r-\vec{r}^{\,\prime}, decaying as 1/R^2. The flux density follows from \vec B=\mu_0\vec H (see below). The geometry of all vectors is shown in the sketch Field point geometry on the Magnetic Field tab.
For a ring of radius a at height z^{\prime} the source point is \vec{r}^{\,\prime}=(a\cos\varphi,\,a\sin\varphi,\,z^{\prime}) and the line element d\vec{l}^{\,\prime}=(-a\sin\varphi,\,a\cos\varphi,\,0)\,d\varphi. For the field point \vec r=(\rho,0,z) and \zeta=z-z^{\prime} the distance is R^2=a^2+\rho^2+\zeta^2-2a\rho\cos\varphi and the cross product becomes
The y-component integrates to zero because \sin\varphi is odd about \varphi=\pi. Two integrals remain:
The same substitution as for the mutual inductance, \varphi=\pi-2\theta, gives R^2=Q\,(1-k^2\sin^2\theta) with
Because R^3 now appears in the denominator, two auxiliary integrals with \Delta=\sqrt{1-k^2\sin^2\theta} are needed. Differentiating \sin\theta\cos\theta/\Delta and splitting \sin^2\theta=(1-\Delta^2)/k^2 reduces them to K and E:
Inserting I_1 and I_2 and expressing k by Q and D gives the closed form of the ring field:
For a point at negative x the radial component changes its sign, H_x(-\rho,z)=-H_\rho(\rho,z), while H_z is even. The colour maps show both half planes.
The Biot–Savart integral above is written for \vec H, the magnetic field strength in A/m. It depends only on the currents and the geometry. The quantity that acts on charges and conductors, enters Faraday's law and is measured by a Hall probe is the magnetic flux density \vec B in tesla (1 T = 1 V·s/m²). Both are linked by the constitutive relation of the medium:
\vec M is the magnetisation of the material. In air, and to an excellent approximation in copper (\mu_r-1\approx-10^{-5}) and aluminium (\mu_r-1\approx+2\cdot10^{-5}), the magnetisation is negligible and \mu_r=1. The calculator therefore uses
As a rule of thumb, 1 kA/m corresponds to 1.257 mT and 1 T to 795.8 kA/m. With a ferromagnetic core (iron, ferrite) \mu_r becomes large and field dependent, and the simple factor no longer holds; such cores are outside the scope of this model. The display can be switched between B (default) and H; colour maps, probe values and plots change only by the constant factor \mu_0.
The Biot–Savart integral is linear in the current, and all rings share the same axis. The field of the coil is therefore the plain sum of the ring fields, with a\to R_i and z^{\prime}\to z_i from the winding geometry (section 6):
On the axis this reduces to the textbook result H_z(0,z)=\frac{I}{2}\sum_i R_i^2/\bigl(R_i^2+(z-z_i)^2\bigr)^{3/2}, which is what the axial plot shows. The flux density follows as \vec B=\mu_0\vec H in air.
For a filament the field diverges at the wire (D\to0, K\to\infty). A real wire of radius w=d/2 carries the current spread over its cross-section. For points with a distance d_i<w from the centre of ring i, that ring's contribution is taken as the field of a uniformly filled round conductor: the value at the wire surface in the same direction, scaled linearly with d_i/w. The field is then continuous at the surface and zero on the wire axis, as Ampère's law requires.
For a single ring with a=1 m, z^{\prime}=0, I=1 A the program reproduces the values obtained by direct numerical integration of the Biot–Savart integral, for example B_x=0.597367\cdot10^{-7} T and B_z=6.250318\cdot10^{-7} T at (x,z)=(0.3,\,0.2) m, and B_x=38.494812\cdot10^{-7} T, B_z=11.809170\cdot10^{-7} T directly beside the wire at (0.99,\,0.05) m. K and E come from the same AGM routine as in section 8.
Background: Thomson Ring Experiment, chapter 3 – Modelling of the Coil, M. Bigelmayr. E. B. Rosa, F. W. Grover, Formulas and Tables for the Calculation of Mutual and Self-Inductance, Bulletin of the Bureau of Standards 8 (1912). H. A. Wheeler, Simple Inductance Formulas for Radio Coils, Proc. IRE 16 (1928).
1. Permitted use. Coilsoft V1 is made available free of charge for non-commercial purposes only — private use, teaching, study and non-commercial research. Any commercial use, in particular sale, rental, integration into a commercial product or service, or use in the course of a paid engineering, design, inspection or consulting activity, requires the prior written consent of the author.
2. No warranty. The software is provided “as is”, without warranty of any kind, whether express or implied, including but not limited to any implied warranty of merchantability, fitness for a particular purpose, accuracy, completeness or non-infringement. The author does not warrant that the software is free of defects or that it will run without interruption or error.
3. The results are model values, not measurements. Every figure this program displays is the outcome of a simplified physical model. Among other things it replaces the helical winding by closed circular rings, assumes a uniform DC current density in round wires and an air core, and neglects the helix pitch, skin and proximity effects, insulation, winding tolerances, lead wires, parasitic capacitance, nearby conductive or magnetic parts and temperature effects. The calculated values are therefore not guaranteed to be correct and may deviate substantially from the inductance of a real coil.
4. Not a design verification. This software is not a substitute for measurement, for applicable standards, for manufacturer data or for the judgement of a competent person. It must not be used as the sole or principal basis for the design or operation of electrical equipment, in particular of high-voltage, high-current or pulsed-power devices such as capacitor discharge circuits, coil guns or Thomson ring set-ups, whose operation can cause electric shock, burns, fire, flying parts and other serious hazards.
5. Limitation of liability. To the fullest extent permitted by applicable law, the author, Maximilian Bigelmayr, accepts no liability whatsoever for any damage or loss of any kind — including direct, indirect, incidental, special, punitive or consequential damage, personal injury, damage to health, death, property damage or financial loss — arising from or in connection with the use of this software, reliance on its results, or the construction and operation of coils, circuits or devices of any kind derived from them, and any accident connected with them. Use of the software and any activity derived from it is entirely at the user's own risk. This exclusion does not apply to liability for intent or gross negligence, for injury to life, body or health, or to any other liability that cannot be excluded or limited under mandatory law.
6. Acceptance. By opening, running or otherwise using this software you confirm that you have read these terms, that you understand them and that you accept them in full. If you do not accept them, you must not use the software.
Coilsoft V1 · by Maximilian Bigelmayr, October 2026 · www.bigel-labs.de