gauge_hopping
full name: tenpy.models.hofstadter.gauge_hopping
parent module:
tenpy.models.hofstadter
type: function
- 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
andhop_y = -Jy
.Jy (float) – ‘Bare’ hopping amplitudes (without phase). Without any flux we have
hop_x = -Jx
andhop_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