I was thinking again about infinite resistor networks and curious to extend the analysis from a square to a hexagonal resistor network. See this previous post for a discussion of the nerd-sniping problem. In particular I was interested in the ‘obvious’ resistances that crop up. For example, in the following square network of 1 Ω resistors the nearest neighbour resistance is 1/2 Ω, while (all?) other resistances are non-trivial, they contain π!
The square resistor network
We can understand the RWX = 1/2 Ω resistance in the following way. Place a 1 A current source at node W and, by symmetry, 1/4 A must leave through each of the 4 connected resistors. If we place a 1 A current sink at node X, the same holds for currents arriving at X. For the resistor between the source and sink, the currents add so that 1/2 A pass through it. By Ohm’s Law (V = IR), the potential difference between the source and sink is 1/2 V. Since 1 A is sourced in total, the resistance, again via Ohm’s law, is 1/2 Ω.
Notice that the direct resistor takes exactly half the total current. We can check the resistance between neighbouring nodes in the middle of a such a network with a simulation. As shown below, it tends to 1/2 Ω, with increasing network size, as expected. N is the number of nodes along the x (and y) axis.
Interestingly, knowing the diagonal resistance (i.e. RWY = 2/π Ω) does allow one to determine further resistances. So you can, if you know this, figure out the nerd-sniping resistance, RWZ = 4/π – 1/2 Ω.
Why do the resistances get non-obvious? The equal current splitting trick from a given node only works if all the nodes that the current goes to are at the same potential. Imagine a 1 A current source again at W. The four surrounding nodes, including X, by symmetry all must be at the same potential, so they take an equal share of the current. Once the 1/4 A reaches X it is not however shared equally three ways. All the nodes that the current goes to are not in the same relative position to W and therefore at the same potential.
The hexagonal resistor network
Let’s now consider the hexagonal resistor network with 1 Ω resistors. I had some fun with that because I didn’t think carefully enough about it at the start. Specifically, I didn’t realise that there were two obvious resistances to be had!
The nearest neighbour resistance RST = 2/3 Ω. If you put a 1 A current source at node S, it splits symmetrically three ways giving 1/3 A per connected resistor. So, put the current sink at a neighbouring node, S, and you get 2/3 A in total going through the connecting resistor. By Ohm’s law, 2/3 V drives a 1 A current source and the resistance is 2/3 Ω. I did the simulation to check and indeed this is the asymptotic resistance as the size of the grid increases.
To my surprise, there is a second obvious resistance, that I learnt about from the simulation. It turns out that the next nearest neighbour resistance RSU = 1 Ω. Why so? Once the current from node S has reached the node T, it again splits into two equal fractions: half to U and half to V, by symmetry. Hence, 1/6 A reaches U. And, if we put a current sink here, we sum that with 1/3 A, giving 1/2 A current travelling between U and V. This means there is a 1 V potential difference between them and the total current the source supplies is 1 A. Hence, the resistance of 1 Ω.
Conclusions
This was a fun problem to think about because of the value added by the simulation. At first I was just checking the nearest neighbour resistances, initially found by symmetry. But then from the simulation of hexagonal network, it was clear that the next nearest neighbour resistance had a nice value. And, on revisiting the symmetry arguments, this could also be explained.
The simulations were performed in Python, forcing current continuity at each node. Thus we generate a matrix equation, which is efficiently solved with the spsolve method from scipy.sparse.linalg. My code for the hexagonal network can be found on GitHub.