monolayer(nearest_neighbors=1, onsite=(0, 0), **kwargs)

Monolayer graphene lattice up to nearest_neighbors hoppings

nearest_neighbors : int

Number of nearest neighbors to consider.

onsite : Tuple[float, float]

Onsite energy for sublattices A and B.


Specify the hopping parameters t, t_nn and t_nnn. If not given, the default values from graphene.constants will be used.

Graphene, nearest neighbor
Graphene, second-nearest neighbor (i.e. next-nearest)
Graphene, third-nearest neighbor (i.e. next-next-nearest)
monolayer_4atom(onsite=(0, 0))

Nearest-neighbor with 4 atoms per unit cell: square lattice instead of oblique

onsite : Tuple[float, float]

Onsite energy for sublattices A and B.

Graphene, 4-atom unit cell
bilayer(gamma3=False, gamma4=False, onsite=(0, 0, 0, 0))

Bilayer lattice in the AB-stacked form (Bernal-stacked)

  • \(\gamma_0\) is the single-layer hopping within the top layer (A1/B1) and bottom layer (A2/B2)
  • \(\gamma_1\) is the inter-layer hopping between B1 and A2 (where atom B1 lies directly over A2)
  • Hoppings \(\gamma_3\) and \(\gamma_4\) are optional (see parameters)
gamma3, gamma4 : bool

Enable \(\gamma_3\) and/or \(\gamma_4\) hoppings. By default, only \(\gamma_0\) and \(\gamma_1\) are active.

onsite : Tuple[float, float, float, float]

Onsite energy for A1, B1, A2, B2

Bilayer graphene unit cell


a = 0.24595

[nm] unit cell length

a_cc = 0.142

[nm] carbon-carbon distance

beta = 3.37

strain hopping modulation

t = -2.8

[eV] nearest neighbor hopping

t_nn = 0.1

[eV] next-nearest neighbor hopping

vf = 906091185689731.9

[nm/s] Fermi velocity


hexagon_ac(side_width, lattice_offset=(-0.122975, 0))

A graphene-specific shape which guaranties armchair edges on all sides

side_width : float

Hexagon side width. It may be adjusted slightly to ensure armchair edges.

lattice_offset : array_like

Offset the lattice so a carbon hexagon is at the center of the shape. The default value is specific for monolayer() and bilayer() lattices from this material repository.



Break sublattice symmetry, make massive Dirac electrons, open a band gap

Only for monolayer graphene.

delta : float

Onsite energy +delta is added to sublattice ‘A’ and -delta to ‘B’.

coulomb_potential(beta, cutoff_radius=0.0, offset=(0, 0, 0))

A Coulomb potential created by an impurity in graphene

beta : float

Charge of the impurity [unitless].

cutoff_radius : float

Cut off the potential below this radius [nm].

offset: array_like

Position of the charge.


Constant magnetic field in the z-direction, perpendicular to the graphene plane

magnitude : float

In units of Tesla.


Triaxial strain corresponding to a homogeneous pseudo-magnetic field

magnetic_field : float

Intensity of the pseudo-magnetic field to induce.

gaussian_bump(height, sigma, center=(0, 0))

Gaussian bump deformation

height : float

Height of the bump [nm].

sigma : float

Gaussian sigma parameter: controls the width of the bump [nm].

center : array_like

Position of the center of the bump.