models.hofstadter.Hofstadter

  • full name: models.hofstadter.Hofstadter

  • parent module: models.hofstadter

  • type: class

Inheritance Diagram

Inheritance diagram of models.hofstadter.Hofstadter

class Hofstadter(p, q, a0=1, t=None, lat='bravais', alpha=1, theta=(1, 3), period=1)[source]

Bases: object

The Hofstadter model class.

The Hamiltonian for the Hofstadter model is given as

\[H = - \sum_\kappa \sum_{\braket{ij}_\kappa} t_\kappa e^{i \theta_{ij}} c_i^\dagger c_j + \mathrm{H.c.},\]

where \(\braket{\dots}_\kappa\) denotes \(\kappa\)-th nearest neighbors on some regular Euclidean lattice in the xy-plane, \(t_\kappa\) are the corresponding hopping amplitudes, \(\theta_{ij}\) are the Peierls phases, and \(c^{(\dagger)}\) are the particle (creation)annihilation operators.

Methods

__init__(p, q[, a0, t, lat, alpha, theta, ...])

Constructor for the Hofstadter class.

hamiltonian(k_val)

The Hamiltonian of the Hofstadter model.

plot_lattice()

Plot the lattice.

unit_cell()

The unit cell of the Hofstadter model.

Attributes

p

The numerator of the coprime flux density fraction.

q

The denominator of the coprime flux density fraction.

a0

The lattice constant (default=1).

t

The list of hopping amplitudes in order of ascending NN (default=[1]).

lat

The name of the lattice (default="bravais").

alpha

The anisotropy of the Bravais lattice vectors (default=1).

theta0

The numerator of the fractional angle between Bravais lattice vectors in units of pi (default=1).

theta1

The denominator of the fractional angle between Bravais lattice vectors in units of pi (default=3).

theta

The angle between Bravais lattice vectors (default=pi/3).

period

The factor by which to divide A_UC in the flux density (default=1).

__init__(p, q, a0=1, t=None, lat='bravais', alpha=1, theta=(1, 3), period=1)[source]

Constructor for the Hofstadter class.

Parameters:
  • p (int) – The numerator of the coprime flux density fraction.

  • q (int) – The denominator of the coprime flux density fraction.

  • a0 (float) – The lattice constant (default=1).

  • t (list) – The list of hopping amplitudes in order of ascending NN (default=[1]).

  • lat (str) – The name of the lattice (default=”bravais”).

  • alpha (float) – The anisotropy of the Bravais lattice vectors (default=1).

  • theta (tuple) – The angle between Bravais lattice vectors in units of pi (default=(1, 3)).

  • period (int) – The factor by which to divide A_UC in the flux density (default=1).

a0

The lattice constant (default=1).

Type:

float

alpha

The anisotropy of the Bravais lattice vectors (default=1).

Type:

float

hamiltonian(k_val)[source]

The Hamiltonian of the Hofstadter model.

Parameters:

k_val (ndarray) – The momentum vector.

Returns:

Hamiltonian – The Hofstadter Hamiltonian matrix of dimension (num_bands, num_bands).

Return type:

ndarray

lat

The name of the lattice (default=”bravais”).

Type:

str

p

The numerator of the coprime flux density fraction.

Type:

int

period

The factor by which to divide A_UC in the flux density (default=1).

Type:

int

plot_lattice()[source]

Plot the lattice.

q

The denominator of the coprime flux density fraction.

Type:

int

t

The list of hopping amplitudes in order of ascending NN (default=[1]).

Type:

list

theta

The angle between Bravais lattice vectors (default=pi/3).

Type:

float

theta0

The numerator of the fractional angle between Bravais lattice vectors in units of pi (default=1).

Type:

int

theta1

The denominator of the fractional angle between Bravais lattice vectors in units of pi (default=3).

Type:

int

unit_cell()[source]

The unit cell of the Hofstadter model.

Returns:

  • num_bands_val (int) – The number of bands in the spectrum.

  • avec_val (ndarray) – The lattice vectors.

  • abasisvec_val (ndarray) – The basis vectors.

  • bMUCvec_val (ndarray) – The reciprocal MUC vectors.

  • sym_points_val (ndarray) – The high-symmetry/reference points.