# gauge_hopping¶

Compute hopping amplitudes for the Hofstadter models based on a gauge choice.

In the Hofstadter model, the magnetic field enters as an Aharonov-Bohm phase. This phase is dependent on a choice of gauge, which simultaneously defines a ‘magnetic unit cell’ (MUC).

The magnetic unit cell is the smallest set of lattice plaquettes that encloses an integer number of flux quanta. It can be user-defined by setting mx and my, but for common gauge choices is computed based on the flux density.

The gauge choices are:
• ‘landau_x’: Landau gauge along the x-axis. The magnetic unit cell will have shape :math(mathtt{mx}, 1). For flux densities $$p/q$$, mx will default to q. Example: at a flux density $$1/3$$, the magnetic unit cell will have shape $$(3,1)$$, so it encloses exactly 1 flux quantum.

• ‘landau_y’: Landau gauge along the y-axis. The magnetic unit cell will have shape :math(1, mathtt{my}). For flux densities :mathp/q, my will default to q. Example: at a flux density $$3/7$$, the magnetic unit cell will have shape $$(1,7)$$, so it encloses axactly 3 flux quanta.

• ‘symmetric’: symmetric gauge. The magnetic unit cell will have shape $$(\mathtt{mx}, \mathtt{my})$$, with $$mx = my$$. For flux densities $$p/q$$, mx and my will default to $$q$$ Example: at a flux density 4/9, the magnetic unit cell will have shape (9,9).

Parameters
• gauge ('landau_x' | 'landau_y' | 'symmetric') – Choice of the gauge, see table above.

• mx (int | None) – Dimensions of the magnetic unit cell in terms of lattice sites. None defaults to the minimal choice compatible with gauge and phi_pq.

• my (int | None) – Dimensions of the magnetic unit cell in terms of lattice sites. None defaults to the minimal choice compatible with gauge and phi_pq.

• Jx (float) – ‘Bare’ hopping amplitudes (without phase). Without any flux we have hop_x = -Jx and hop_y = -Jy.

• Jy (float) – ‘Bare’ hopping amplitudes (without phase). Without any flux we have hop_x = -Jx and hop_y = -Jy.

• phi_pq (tuple (int, int)) – Magnetic flux as a fraction p/q, defined as (p, q)

Returns

hop_x, hop_y – Hopping amplitudes to be used as prefactors for $$c^\dagger_{x,y} c_{x+1,y}$$ (hop_x) and $$c^\dagger_{x,y} c_{x,y+1}$$ (hop_x), respectively, with the necessary phases for the gauge.

Return type

float | array