gauge_hopping

tenpy.models.hofstadter.gauge_hopping(model_params)[source]

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 :math`p/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 exactly 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