Finding Brillouin zones: A visual guide.

2010 Jul 08

Square lattice [Show as slideshow] square_lattice A square lattice. perpendicular_bisector1 Connect origin to random point and take the perpendicular bisector. This is a bragg plane (line). perpendicular_bisector2 Repeat for most points nearby. many_bragg_planes This is what it looks like after a while. planes_to_zones Connect the origin to a random region. Each time you cross a line (bragg plane), you are in a new (+1) brillouin zone. 4_brillouin_zones These are the first four brillouin zones for the square lattice. zoom_4_brillouin_zones First four brillouin zones, zoomed. Hexagonal lattice [Show as slideshow] hexagonal_lattice A hexagonal lattice. bragg_planes_hexagonal Bragg planes of the hexagonal lattice. 4_brillouin_zones_hexagonal First four brillouin zones. 4_brillouin_zones_hexagonal_zoomed First four brillouin zones, zoomed. Code for diagrams

Diagrams made in asymptote: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

size(8cm,0); unitsize(1cm,1cm); import geometry;

pair O=(0,0); pair a, mid;

line l,lp;

dot(O,blue);

int N = 5;

fill((-N,-N)–(-N,N)–(N,N)–(N,-N)–cycle,white);

// Lattice and bragg planes. for (int i=-N; i<=N; ++i) { for (int j=-N; j<=N; ++j) { a = (i,j); if (a == O) continue; dot(a); l = line(O,a); mid=(O+a)/2.; lp = perpendicular(mid,l); draw(lp,lightblue+0.3); } }

// 1st brillouin zone for square lattice. filldraw((0.5,0.5)–(-0.5,0.5)–(-0.5,-0.5)–(0.5,-0.5)–cycle, lightgrey);

// 2nd brillouin zone for square lattice. filldraw((0.5,0.5)–(1,0)–(0.5,-0.5)–cycle,lightgreen,black+0.2); filldraw((0.5,-0.5)–(0,-1)–(-0.5,-0.5)–cycle,lightgreen,black+0.2); filldraw((-0.5,-0.5)–(-1,0)–(-0.5,0.5)–cycle,lightgreen,black+0.2); filldraw((-0.5,0.5)–(0,1)–(0.5,0.5)–cycle,lightgreen,black+0.2);

dot(O,blue);

// Example plane. a = (1,5); draw(O–a,Arrow); l = line(O,a);

mid=(O+a)/2.; dot(mid,red); lp = perpendicular(mid,l);

draw(lp,blue);