0

Based on previous answers (1, 2, 3) integers $i, j$ produce a hexagonal lattice using

$$x = i + j/2$$ $$y = j \sqrt{3} / 2.$$

From a point $k, l$ I can make a superlattice from integers $I, J$ using

$$i_{sup} = I k + J (-l)$$ $$j_{sup} = I l + J (k+l)$$

and

$$x_{sup} = i_{sup} + j_{sup}/2$$ $$y_{sup} = j_{sup} \sqrt{3} / 2.$$

If I have a point $m, n$ on the lattice, is there a simple test I can apply to find out if it is on the superlattice as well?

Example for $k, l = 3, 1$

hexagonal superlattice Python script

uhoh
  • 1,864

1 Answers1

1

This one's all linear algebra all the time: your two lattices can be considered as transformations of a square lattice, taking integer $(i,j)$ through a linear transformation.

The two lattices coincide at a particular point if the $(i,j)$ for a particular lattice point, passed through the transform of that lattice and then the inverse transform of the other lattice, give integer results.

So in this particular case:

the blue lattice is the transformation of the unit square lattice through

$$A = \begin{pmatrix} 1 & \frac{1}{2} \\ 0 & \frac{\sqrt{3}}{2} \\ \end{pmatrix} $$

and the red lattice is the transformation of the unit square lattice through

$$B = \begin{pmatrix} \frac{7}{2} & -1 \\ \frac{\sqrt{3}}{2} & 2\sqrt{3} \\ \end{pmatrix} $$

To get the test matrix, we find $$B^{-1}A = \frac{\begin{pmatrix} 4 & 3 \\ -1 & 3 \\ \end{pmatrix}}{15}$$

Now, to discover if a particular point from the blue lattice is also on the red lattice, we simply apply this new matrix to the $(i,j)$ coordinates, and see if the result is in the integers: $(3,1)$ gives $(1,0)$ so is on the red lattice; $(4, -7)$ gives $(\frac{1}{3}, -\frac{5}{3})$ which is not integer so it is not on the red lattice.

Dan Uznanski
  • 11,025