This site is version 0.0.1. Most of the code on this site is drafted by an agent and needs review. I apologize for the AI-speak, we are working on rewriting it!
viv-lang.org

← Posts

demoAIPhysics

Graphene's Dirac cones

An electron hopping between neighboring carbon atoms of a honeycomb has two energy bands, and they touch at the corners of the Brillouin zone. Near a corner the energy rises in a straight line in every direction, a cone, with slope . A centered finite difference at the corner gives to eight digits in every direction.

Look inside this program

  • Atlas

    The program’s map: every function and which calls which.

  • There’s no recorded run of this program yet.

Units: energies in (the hopping energy, fitted to experiment; the model does not need its value), lengths in (the carbon-carbon distance), and , so the Fermi velocity is predicted to be exactly. The reference, in posts/refs/graphenes-dirac-cones.py, builds the 2 by 2 Hamiltonian as a complex matrix and diagonalizes it with numpy.linalg.eigvalsh, where the post uses the closed form ; it finds the slope at K by a least-squares line through 20 points in each of 12 directions. The geometry follows Castro Neto et al., Rev. Mod. Phys. 81, 109 (2009).

The model

Graphene is a single sheet of carbon atoms in a honeycomb. The honeycomb is not itself a lattice with one atom per cell: its atoms come in two kinds, A and B, and every A atom has three B neighbors, at the vectors , and in units of .

Tight binding keeps one orbital per atom and lets an electron hop only to a nearest neighbor, with energy . A wave with crystal momentum has an amplitude on the A atoms and one on the B atoms, so the Hamiltonian at each is 2 by 2:

Its eigenvalues are : two bands, mirror images of each other. With one electron per carbon, the lower band is full and the upper one empty, so everything interesting happens where they come closest.

Printed

e_gamma: 3
e_m: 1
e_k: 4.44089e-16
e_km: 0.732051
ph_k: [120, 0, -120]

Tests 3 of 3 pass

  • the upper band is 3t at Gamma, t at M and zero at K (passes)
  • halfway from K to M it is sqrt(3) - 1, as numpy finds (passes)
  • at K the three phases are 120, 0 and -120 degrees: three arrows 120 degrees apart (passes)

At the center of the zone, , all three phases are 1 and the bands are at . At the middle of an edge, M, they are at . At the corner K the three phases are , and , three unit arrows at 120° to each other, which add to zero: the bands touch.

The bands along a path

The standard picture follows the straight lines K M through the zone. Before running: near K, will the bands approach zero like a parabola, as the edge of a band usually does, or some other way?

Graphene's two bands, nearest-neighbor tight binding
upper bandlower band
−202ΓKMΓcrystal momentum along the pathenergy E / t

At K the two bands meet in a V: the energy rises linearly with the distance from K, not quadratically. The same happens in every direction, so in the plane of the two bands form a pair of cones touching at their tips, called Dirac cones because a massless relativistic particle obeying the Dirac equation has the same linear relation between energy and momentum.

The map below shows the upper band over the plane. The Brillouin zone is the hexagon of momenta closer to , the center of the map, than to any other point of the reciprocal lattice, drawn dashed, and the band reaches zero at its six corners, the dark spots around the center. The four dark spots near the map's left and right edges are corners of the neighboring hexagons.

Printed

corner_worst: 1.5896e-15
The upper band over the k plane
kya
kxa
61 × 61 grid

Tests 1 of 1 pass

  • the band is zero at all six corners of the zone drawn on the map (passes)

The slope of the cone

Near K, write . Expanding each phase to first order in gives , so with , the Fermi velocity: the speed of the electrons at the energy where the full band meets the empty one.

The program measures the slope with a centered difference across K, , along twelve directions . The next term of the expansion is proportional to , which changes sign between and , so the centered difference cancels it and leaves an error of order .

Printed

slopes: [1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5]
worst: 1.87422e-09

Tests 1 of 1 pass

  • the slope at K is 3/2 (v_F = 3ta / 2 hbar) in all twelve directions, to 1e-7 (passes)

Every direction gives , the worst off by (worst): the cone is round to first order, and its slope is .

It is not round to second order. Going one way from K, toward M, the band rises a little slower than the straight line, and going toward a little faster. The next cell measures that correction, , one step out in each direction; the expansion to second order says it is .

Printed

warp_m: -0.375187
warp_g: 0.374812

Tests 1 of 1 pass

  • the second-order term is -3/8 toward M and +3/8 toward Gamma, as numpy measures at q = 1e-3 (passes)

The correction is toward M and toward (warp_m, warp_g), up to a term of order . Cut a cone of this band at a fixed energy and the circle is a slightly rounded triangle; this trigonal warping grows with the distance from K, and it is why the centered difference, which cancels it, agrees with so much more closely than the one-sided fit in the reference does.

Checked when the site was built: 6 of 6 tests passed, in under 0.1 s. Download 2026-09-25-graphenes-dirac-cones.viv