Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jauslin_Princeton_2017.tex327
-rw-r--r--Makefile48
-rw-r--r--README27
-rw-r--r--figs/bands.fig/Makefile23
-rw-r--r--figs/bands.fig/bands.gnuplot42
-rw-r--r--figs/bands.fig/bands.py55
-rw-r--r--figs/bands_first.fig/Makefile23
-rw-r--r--figs/bands_first.fig/bands_first.gnuplot42
-rw-r--r--figs/bands_first.fig/bands_first.py56
-rw-r--r--figs/bands_second.fig/Makefile23
-rw-r--r--figs/bands_second.fig/bands_second.gnuplot42
-rw-r--r--figs/bands_second.fig/bands_second.py56
-rw-r--r--figs/bands_third.fig/Makefile23
-rw-r--r--figs/bands_third.fig/bands_third.gnuplot41
-rw-r--r--figs/bands_third.fig/bands_third.py86
l---------figs/bilayer.fig/Makefile1
-rw-r--r--figs/bilayer.fig/bilayer.tex17
l---------figs/bilayer.fig/libs/graphene.sty1
l---------figs/bilayer_cell.fig/Makefile1
-rw-r--r--figs/bilayer_cell.fig/bilayer_cell.tex40
l---------figs/bilayer_cell.fig/libs/graphene.sty1
-rw-r--r--figs/flow.fig/Makefile21
-rw-r--r--figs/flow.fig/flow.gnuplot53
l---------figs/hoppings.fig/Makefile1
-rw-r--r--figs/hoppings.fig/hoppings.tex32
-rw-r--r--figs/hoppings.fig/hoppings_0.tex25
-rw-r--r--figs/hoppings.fig/hoppings_1.tex25
-rw-r--r--figs/hoppings.fig/hoppings_3.tex32
l---------figs/hoppings.fig/libs/graphene.sty1
-rw-r--r--figs/libs/Makefile28
-rw-r--r--figs/libs/graphene.sty86
l---------figs/monolayer.fig/Makefile1
l---------figs/monolayer.fig/libs/graphene.sty1
-rw-r--r--figs/monolayer.fig/monolayer.tex16
-rw-r--r--libs/ian-presentation.cls185
35 files changed, 1482 insertions, 0 deletions
diff --git a/Jauslin_Princeton_2017.tex b/Jauslin_Princeton_2017.tex
new file mode 100644
index 0000000..2218b6d
--- /dev/null
+++ b/Jauslin_Princeton_2017.tex
@@ -0,0 +1,327 @@
+\documentclass{ian-presentation}
+
+\usepackage[hidelinks]{hyperref}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{array}
+\usepackage{dsfont}
+
+\begin{document}
+\pagestyle{empty}
+\hbox{}\vfil
+\bf\Large
+\hfil Ground state construction\par
+\smallskip
+\hfil of Bilayer Graphene\par
+\vfil
+\large
+\hfil Ian Jauslin
+\normalsize
+\vfil
+\hfil\rm joint with {\bf Alessandro Giuliani}\par
+\vfil
+arXiv:{\tt \href{http://arxiv.org/abs/1507.06024}{1507.06024}}\hfill{\tt \href{http://ian.jauslin.org}{http://ian.jauslin.org}}
+\eject
+
+\setcounter{page}1
+\pagestyle{plain}
+
+\title{Monolayer graphene}
+\begin{itemize}
+ \item 2D crystal of carbon atoms on a honeycomb lattice.
+\end{itemize}
+\vfill
+\hfil\includegraphics[height=140pt]{monolayer.pdf}\par
+\eject
+
+\title{Bilayer graphene}
+\begin{itemize}
+ \item 2 graphene layers in {\it AB} stacking.
+\end{itemize}
+\vfill
+\hfil\includegraphics[height=140pt]{bilayer.pdf}\par
+\eject
+
+\title{Hamiltonian}
+\begin{itemize}
+ \item Model for the electrons.
+ \item Hamiltonian:
+ $$
+ \mathcal H=\mathcal H_0+U\mathcal V
+ $$
+ \item $\mathcal H_0$: kinetic term: hoppings (tight-binding approximation).
+ \item $U\mathcal V$: interaction: weak, short-range (screened Coulomb).
+\end{itemize}
+\eject
+
+\title{Lattice structure}
+\begin{itemize}
+ \item Rhombic lattice $\Lambda\equiv\mathbb Z^2$, 4 atoms per site.
+\end{itemize}
+\vfill
+\hfil\includegraphics[height=140pt]{bilayer_cell.pdf}\par
+\eject
+
+\title{Hoppings}
+\vfill
+\hfil\includegraphics[height=140pt]{bilayer.pdf}
+\vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Hoppings}
+\vfill
+\hfil\includegraphics[height=140pt]{hoppings_0.pdf}
+\vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Hoppings}
+\vfill
+\hfil\includegraphics[height=140pt]{hoppings_1.pdf}
+\vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Hoppings}
+\vfill
+\hfil\includegraphics[height=140pt]{hoppings_3.pdf} \vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Hoppings}
+\vfill
+\hfil\includegraphics[height=140pt]{hoppings.pdf}
+\vfill
+\eject
+
+\title{Non-interacting Hamiltonian}
+$$
+ \begin{array}{r@{\ }>{\displaystyle}l}
+ \mathcal H_0:=&
+ -\gamma_0\sum_{\displaystyle\mathop{\scriptstyle x\in\Lambda}_{j=1,2,3}}\left(
+ {\color{red}a_x^\dagger b_{x+\delta_j}}
+ +
+ {\color{red}b_{x+\delta_j}^\dagger a_x}
+ +
+ {\color{red}\tilde b_x^\dagger \tilde a_{x-\delta_j}}
+ +
+ {\color{red}\tilde a_{x-\delta_j}^\dagger\tilde b_x}
+ \right)
+ \\[1cm]
+ &-\gamma_1\sum_{ x\in\Lambda}\left(
+ {\color{green}a_x^\dagger \tilde b_x}
+ +
+ {\color{green}\tilde b_x^\dagger a_x}
+ \right)
+ \\[0.75cm]
+ &-\gamma_3\sum_{\displaystyle\mathop{\scriptstyle x\in\Lambda}_{j=1,2,3}}\left(
+ {\color{blue}\tilde a_{x-\delta_1}^\dagger b_{x-\delta_1-\delta_j}}
+ +
+ {\color{blue}b_{x-\delta_1-\delta_j}^\dagger\tilde a_{x-\delta_1}}
+ \right)
+ \end{array}
+$$
+\vfill
+\eject
+
+\title{Non-interacting Hamiltonian}
+\vfill
+\begin{itemize}
+ \item Hopping strengths:
+ $$
+ \gamma_0=1,\quad
+ \gamma_1=\epsilon,\quad
+ \gamma_3=0.33\times\epsilon
+ $$
+ \item Experimental value $\epsilon\approx0.1$, here, $\epsilon\ll1$.
+\end{itemize}
+\vfill
+\eject
+
+\title{Interaction}
+$$
+ \mathcal V=\sum_{x,y}v(|x-y|)\left(n_x-\frac12\right)\left(n_y-\frac12\right)
+$$
+\begin{itemize}
+ \item $\displaystyle\sum_{x,y}$: sum over pairs of atoms
+ \item $n_x\equiv\alpha_x^\dagger\alpha_x$
+ \item $v(|x-y|)\leqslant e^{-c|x-y|}$, $c>0$
+ \item $-\frac12$: {\it half-filling}.
+\end{itemize}
+\eject
+
+\title{Theorem}
+$\exists U_0,\epsilon_0>0$, independent, such that, for $\epsilon<\epsilon_0$, $|U|<U_0$,
+\begin{itemize}
+ \item the free energy
+ $$
+ f:=-\frac1{|\Lambda|\beta}\log\mathrm{Tr}(e^{-\beta \mathcal H})
+ $$
+ is analytic in $U$, uniformly in $\beta$ and $|\Lambda|$,
+ \item the two-point Schwinger function: for $\alpha,\alpha'\in\{a,b,\tilde a,\tilde b\}$,
+ $$
+ s(x-y):=\frac{\mathrm{Tr}(e^{-\beta \mathcal H}\alpha'_x\alpha_y^\dagger)}{\mathrm{Tr}(e^{-\beta \mathcal H})}
+ $$
+ is analytic in $U$, uniformly in $\beta$ and $|\Lambda|$.
+\end{itemize}
+\vfill
+\eject
+
+\title{Free model}
+\vskip-10pt $$
+ \mathcal H_0=\sum_{k\in\hat\Lambda}
+ \left(\begin{array}c
+ \hat a_k^\dagger\\
+ \hat{\tilde b}_k^\dagger\\
+ \hat{\tilde a}_k^\dagger\\
+ \hat b_k^\dagger
+ \end{array}\right)^T
+ \hat H_0(k)
+ \left(\begin{array}c
+ \hat a_k\\
+ \hat{\tilde b}_k\\
+ \hat{\tilde a}_k\\
+ \hat b_k
+ \end{array}\right)
+$$
+\vfill
+$$
+ \kern-10pt
+ \hat H_0(k):=
+ -\left(\begin{array}{*{4}{c}}
+ 0&\gamma_1&0&\gamma_0\Omega^*(k)\\
+ \gamma_1&0&\gamma_0\Omega(k)&0\\
+ 0&\gamma_0\Omega^*(k)&0&\gamma_3\Omega(k)e^{3ik_x}\\
+ \gamma_0\Omega(k)&0&\gamma_3\Omega(k)e^{-3ik_x}
+ \end{array}\right)
+$$
+\vfill
+$$
+ \Omega(k):=1+2e^{-\frac32ik_x}\cos({\textstyle\frac{\sqrt3}2}k_y)
+$$
+\eject
+
+\title{Free model}
+\begin{itemize}
+ \item Eigenvalues of $\hat H_0(k)$:
+\end{itemize}
+\vfill
+\hfil\includegraphics[width=\textwidth]{bands.pdf}\par
+\vfill
+\eject
+
+\title{Perturbation theory}
+\begin{itemize}
+ \item Trotter formula:
+ $$
+ \kern-10pt
+ \frac{\mathrm{Tr}(e^{-\beta(\mathcal H_0+U\mathcal V)})}{\mathrm{Tr}(e^{-\beta\mathcal H_0})}=
+ \left<\mathbb T \exp\left(-U\int_0^\beta\kern-5pt dt\ \mathcal V(t)\right)\right>_0
+ $$
+ \item ``Imaginary time'':
+ $$
+ \mathcal V(t):=e^{t\mathcal H_0}\mathcal Ve^{-t\mathcal H_0}
+ $$
+ \vskip-2pt
+ \item ``Non-interacting Gibbs measure'':
+ $$
+ \left<A\right>_0:=\frac{\mathrm{Tr}(e^{-\beta\mathcal H_0}A)}{\mathrm{Tr}(e^{-\beta\mathcal H_0})}
+ $$
+\end{itemize}
+\vfill
+\eject
+
+\title{Perturbation theory}
+\begin{itemize}
+ \item Matsubara frequency: for $\alpha\in\{a,b,\tilde a,\tilde b\}$,
+ $$
+ \hat\alpha_{k_0,k}:=\int dt\ e^{ik_0t}e^{t\mathcal H_0}\hat\alpha_ke^{-t\mathcal H_0}.
+ $$
+
+ \item Non-interacting Gibbs measure: ``Gaussian'', and singular: for $\alpha,\alpha'\in\{a,b,\tilde a,\tilde b\}$,
+ $$
+ \hat s^{(0)}_{\alpha',\alpha}(k_0,k):=\left<\hat\alpha'_{k_0,k}\hat\alpha_{k_0,k}^\dagger\right>_0=(-ik_0\mathds 1+\hat H_0(k))^{-1}_{\alpha',\alpha}
+ $$
+\end{itemize}
+\vfill
+\eject
+
+\title{Scaling}
+\begin{itemize}
+ \item Eigenvalues of $\hat H_0(k)$:
+\end{itemize}
+\vfill
+\hfil\includegraphics[width=\textwidth]{bands.pdf}\par
+\vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Scaling}
+\begin{itemize}
+ \item First regime: $|k|\gg\epsilon$:
+\end{itemize}
+\vfill
+\hfil\includegraphics[width=240pt]{bands_first.pdf}\par
+$$
+ \hat s^{(0)}(k_0,k)\sim(|k_0|+|k|)^{-1}
+$$
+\vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Scaling}
+\begin{itemize}
+ \item Second regime: $\epsilon^2\ll|k|\ll\epsilon$:
+\end{itemize}
+\vfill
+\hfil\includegraphics[width=240pt]{bands_second.pdf}\par
+$$
+ \hat s^{(0)}(k_0,k)\sim\left(|k_0|+\frac{|k|^2}\epsilon\right)^{-1}
+$$
+\vfill
+\eject
+
+\addtocounter{page}{-1}
+\title{Scaling}
+\begin{itemize}
+ \item Third regime: $|k|\ll\epsilon^2$:
+\end{itemize}
+\vfill
+\hfil\includegraphics[height=100pt]{bands_third.pdf}\par
+$$
+ \hat s^{(0)}(k_0,k)\sim(|k_0|+\epsilon|k|)^{-1}
+$$
+\vfill
+\eject
+
+\title{Renormalization group}
+\begin{itemize}
+ \item Scale decomposition: scale $h\leqslant 0$:
+ $$
+ \hat s^{(0)}(k_0,k)\sim 2^{-h}
+ $$
+
+ \item Scale by scale integration:
+ $$
+ \left<A\right>_0=\left<\cdots\left<\left<A\right>_{0,0}\right>_{0,-1}\cdots\right>_{0,h}\cdots
+ $$
+
+ \item Effective potential: $\mathcal V_h(t)$:
+ $$
+ \kern-10pt
+ \left<\mathbb T\exp\left(-U\int dt\ \mathcal V_h(t)\right)\right>_{0,h}
+ ``="\ \mathbb T\exp\left(-U\int dt\ \mathcal V_{h-1}(t)\right)
+ $$
+\end{itemize}
+\vfill
+\eject
+
+
+\title{Renormalization group flow}
+\vfill
+\includegraphics[width=250pt]{flow.pdf}
+
+\end{document}
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ef40a6f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,48 @@
+PROJECTNAME=$(basename $(wildcard *.tex))
+LIBS=$(notdir $(wildcard libs/*))
+FIGS=$(notdir $(wildcard figs/*.fig))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+SYNCTEXS=$(addsuffix .synctex.gz, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS): $(LIBS) $(FIGS)
+ pdflatex -file-line-error $(patsubst %.pdf, %.tex, $@)
+ pdflatex -synctex=1 $(patsubst %.pdf, %.tex, $@)
+
+$(SYNCTEXS): $(LIBS) $(FIGS)
+ pdflatex -synctex=1 $(patsubst %.synctex.gz, %.tex, $@)
+
+install: $(PDFS)
+ cp $^ $(INSTALLDIR)/
+
+install-synctex: $(SYNCTEXS)
+ cp $^ $(INSTALLDIR)/
+
+
+$(LIBS):
+ ln -fs libs/$@ ./
+
+
+$(FIGS):
+ make -C figs/$@
+ ln -fs figs/$@/*.pdf ./
+
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+ rm -f $(addsuffix .out, $(PROJECTNAME))
+
+clean-libs:
+ rm -f $(LIBS)
+
+clean-figs:
+ $(foreach fig,$(addprefix figs/, $(FIGS)), make -C $(fig) clean; )
+ rm -f $(notdir $(wildcard figs/*.fig/*.pdf))
+
+clean-tex:
+ rm -f $(PDFS) $(SYNCTEXS)
+
+clean: clean-aux clean-tex clean-libs clean-figs
diff --git a/README b/README
new file mode 100644
index 0000000..011526c
--- /dev/null
+++ b/README
@@ -0,0 +1,27 @@
+* Typeset
+
+To typeset, run
+ make
+
+
+* Dependencies
+
+ GNU make
+ Makefiles are used throughout the source tree
+
+ gnuplot
+ to plot various graphs
+
+ python
+ to generate the datapoints needed for some plots
+
+ TeXlive packages:
+ latex
+ hyperref
+ graphicx
+ color
+ amsfonts
+ amssymb
+ array
+ dsfont
+ tikz
diff --git a/figs/bands.fig/Makefile b/figs/bands.fig/Makefile
new file mode 100644
index 0000000..5a6a103
--- /dev/null
+++ b/figs/bands.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=bands
+
+all: $(PROJECTNAME).pdf
+
+$(PROJECTNAME).pdf:
+ python $(PROJECTNAME).py > $(PROJECTNAME).dat
+ gnuplot $(PROJECTNAME).gnuplot
+ pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex
+
+install: $(PROJECTNAME).pdf
+ cp $(PROJECTNAME).pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(PROJECTNAME).aux
+ rm -f $(PROJECTNAME).log
+ rm -f $(PROJECTNAME).dat
+ rm -f $(PROJECTNAME)_plot.tex
+
+clean-pdf:
+ rm -f $(PROJECTNAME).pdf
+
+clean: clean-aux clean-pdf
diff --git a/figs/bands.fig/bands.gnuplot b/figs/bands.fig/bands.gnuplot
new file mode 100644
index 0000000..f1f84ff
--- /dev/null
+++ b/figs/bands.fig/bands.gnuplot
@@ -0,0 +1,42 @@
+#!/usr/bin/env gnuplot
+
+datafile="bands.dat"
+# output
+outfile="bands_plot.tex"
+set output outfile
+
+# terminal
+set term lua tikz size 10,6 standalone tightboundingbox
+
+# format axes
+set key off
+unset colorbox
+unset border
+unset xtics
+unset ytics
+unset ztics
+
+# colors
+## 4169E1 (pastel blue)
+## FF143C (bright red)
+## 32CD32 (bright green)
+## DAA520 (ochre)
+
+# angle camera
+set view 80,30
+
+# style for mesh lines
+set style line 1 linetype rgbcolor "#000000"
+
+# splot mode
+set pm3d hidden3d depthorder
+
+# set colors
+set palette defined (0 "#DAA520",0.33 "#FF143C", 0.66 "#32CD32",1 "#4169E1")
+
+# plot
+splot datafile using 1:2:3:4 with pm3d linestyle 1 , \
+ datafile using 5:6:7:8 with pm3d linestyle 1 , \
+ datafile using 9:10:11:12 with pm3d linestyle 1 , \
+ datafile using 13:14:15:16 with pm3d linestyle 1
+
diff --git a/figs/bands.fig/bands.py b/figs/bands.fig/bands.py
new file mode 100644
index 0000000..57d03b8
--- /dev/null
+++ b/figs/bands.fig/bands.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+## compute the bands for bilayer graphene (no g4 or delta)
+
+from math import *
+import cmath
+import numpy
+
+g1=0.1
+g3=0.33*g1
+
+def Omega(x,y):
+ return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y))
+
+# Hamiltonian
+def H(x,y):
+ return(numpy.array(\
+ [[0,g1,0,Omega(x,y).conjugate()],\
+ [g1,0,Omega(x,y),0],\
+ [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\
+ [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\
+ ))
+
+# eigenvalues
+def eigsH(x,y):
+ return(numpy.linalg.eigvals(H(x,y)))
+
+
+# resolution
+nrpoints=55
+# xrange
+xmin,xmax=0,4*pi/3
+# yrange
+ymin,ymax=-2*pi/sqrt(3),2*pi/sqrt(3)
+
+# sample points
+x=numpy.linspace(xmin,xmax,nrpoints)
+y=numpy.linspace(ymin,ymax,nrpoints)
+x,y=numpy.meshgrid(x,y)
+
+# data points
+z=numpy.zeros((4,nrpoints,nrpoints))
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j])))
+ for k in range(0,4):
+ z[k,i,j]=(eigs[k])
+
+# output
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ for k in range(0,4):
+ print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='')
+ print()
+ print()
diff --git a/figs/bands_first.fig/Makefile b/figs/bands_first.fig/Makefile
new file mode 100644
index 0000000..6fbd0d6
--- /dev/null
+++ b/figs/bands_first.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=bands_first
+
+all: $(PROJECTNAME).pdf
+
+$(PROJECTNAME).pdf:
+ python $(PROJECTNAME).py > $(PROJECTNAME).dat
+ gnuplot $(PROJECTNAME).gnuplot
+ pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex
+
+install: $(PROJECTNAME).pdf
+ cp $(PROJECTNAME).pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(PROJECTNAME).aux
+ rm -f $(PROJECTNAME).log
+ rm -f $(PROJECTNAME).dat
+ rm -f $(PROJECTNAME)_plot.tex
+
+clean-pdf:
+ rm -f $(PROJECTNAME).pdf
+
+clean: clean-aux clean-pdf
diff --git a/figs/bands_first.fig/bands_first.gnuplot b/figs/bands_first.fig/bands_first.gnuplot
new file mode 100644
index 0000000..31fdeb5
--- /dev/null
+++ b/figs/bands_first.fig/bands_first.gnuplot
@@ -0,0 +1,42 @@
+#!/usr/bin/env gnuplot
+
+datafile="bands_first.dat"
+# output
+outfile="bands_first_plot.tex"
+set output outfile
+
+# terminal
+set term lua tikz size 10,6 standalone tightboundingbox
+
+# format axes
+set key off
+unset colorbox
+unset border
+unset xtics
+unset ytics
+unset ztics
+
+# colors
+## 4169E1 (pastel blue)
+## FF143C (bright red)
+## 32CD32 (bright green)
+## DAA520 (ochre)
+
+# angle camera
+set view 90,50
+
+# style for mesh lines
+set style line 1 linetype rgbcolor "#000000"
+
+# splot mode
+set pm3d hidden3d depthorder
+
+# set colors
+set palette defined (0 "#DAA520",0.33 "#FF143C", 0.66 "#32CD32",1 "#4169E1")
+
+# plot
+splot datafile using 1:2:3:4 with pm3d linestyle 1 , \
+ datafile using 5:6:7:8 with pm3d linestyle 1 , \
+ datafile using 9:10:11:12 with pm3d linestyle 1 , \
+ datafile using 13:14:15:16 with pm3d linestyle 1
+
diff --git a/figs/bands_first.fig/bands_first.py b/figs/bands_first.fig/bands_first.py
new file mode 100644
index 0000000..980d3b3
--- /dev/null
+++ b/figs/bands_first.fig/bands_first.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+
+## compute the bands for bilayer graphene (no g4 or delta)
+## first regime
+
+from math import *
+import cmath
+import numpy
+
+g1=0.1
+g3=0.33*g1
+
+def Omega(x,y):
+ return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y))
+
+# Hamiltonian
+def H(x,y):
+ return(numpy.array(\
+ [[0,g1,0,Omega(x,y).conjugate()],\
+ [g1,0,Omega(x,y),0],\
+ [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\
+ [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\
+ ))
+
+# eigenvalues
+def eigsH(x,y):
+ return(numpy.linalg.eigvals(H(x,y)))
+
+
+# resolution
+nrpoints=31
+# xrange
+xmin,xmax=2*pi/3-1.5,2*pi/3+1.5
+# yrange
+ymin,ymax=2*pi/3/sqrt(3)-1.5,2*pi/3/sqrt(3)+1.5
+
+# sample points
+x=numpy.linspace(xmin,xmax,nrpoints)
+y=numpy.linspace(ymin,ymax,nrpoints)
+x,y=numpy.meshgrid(x,y)
+
+# data points
+z=numpy.zeros((4,nrpoints,nrpoints))
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j])))
+ for k in range(0,4):
+ z[k,i,j]=(eigs[k])
+
+# output
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ for k in range(0,4):
+ print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='')
+ print()
+ print()
diff --git a/figs/bands_second.fig/Makefile b/figs/bands_second.fig/Makefile
new file mode 100644
index 0000000..b026463
--- /dev/null
+++ b/figs/bands_second.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=bands_second
+
+all: $(PROJECTNAME).pdf
+
+$(PROJECTNAME).pdf:
+ python $(PROJECTNAME).py > $(PROJECTNAME).dat
+ gnuplot $(PROJECTNAME).gnuplot
+ pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex
+
+install: $(PROJECTNAME).pdf
+ cp $(PROJECTNAME).pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(PROJECTNAME).aux
+ rm -f $(PROJECTNAME).log
+ rm -f $(PROJECTNAME).dat
+ rm -f $(PROJECTNAME)_plot.tex
+
+clean-pdf:
+ rm -f $(PROJECTNAME).pdf
+
+clean: clean-aux clean-pdf
diff --git a/figs/bands_second.fig/bands_second.gnuplot b/figs/bands_second.fig/bands_second.gnuplot
new file mode 100644
index 0000000..51f8949
--- /dev/null
+++ b/figs/bands_second.fig/bands_second.gnuplot
@@ -0,0 +1,42 @@
+#!/usr/bin/env gnuplot
+
+datafile="bands_second.dat"
+# output
+outfile="bands_second_plot.tex"
+set output outfile
+
+# terminal
+set term lua tikz size 10,6 standalone tightboundingbox
+
+# format axes
+set key off
+unset colorbox
+unset border
+unset xtics
+unset ytics
+unset ztics
+
+# colors
+## 4169E1 (pastel blue)
+## FF143C (bright red)
+## 32CD32 (bright green)
+## DAA520 (ochre)
+
+# angle camera
+set view 90,50
+
+# style for mesh lines
+set style line 1 linetype rgbcolor "#000000"
+
+# splot mode
+set pm3d hidden3d depthorder
+
+# set colors
+set palette defined (0 "#DAA520",0.33 "#FF143C", 0.66 "#32CD32",1 "#4169E1")
+
+# plot
+splot datafile using 1:2:3:4 with pm3d linestyle 1 , \
+ datafile using 5:6:7:8 with pm3d linestyle 1 , \
+ datafile using 9:10:11:12 with pm3d linestyle 1 , \
+ datafile using 13:14:15:16 with pm3d linestyle 1
+
diff --git a/figs/bands_second.fig/bands_second.py b/figs/bands_second.fig/bands_second.py
new file mode 100644
index 0000000..782b300
--- /dev/null
+++ b/figs/bands_second.fig/bands_second.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+
+## compute the bands for bilayer graphene (no g4 or delta)
+## second regime
+
+from math import *
+import cmath
+import numpy
+
+g1=0.1
+g3=0.33*g1
+
+def Omega(x,y):
+ return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y))
+
+# Hamiltonian
+def H(x,y):
+ return(numpy.array(\
+ [[0,g1,0,Omega(x,y).conjugate()],\
+ [g1,0,Omega(x,y),0],\
+ [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\
+ [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\
+ ))
+
+# eigenvalues
+def eigsH(x,y):
+ return(numpy.linalg.eigvals(H(x,y)))
+
+
+# resolution
+nrpoints=31
+# xrange
+xmin,xmax=2*pi/3-0.1,2*pi/3+0.1
+# yrange
+ymin,ymax=2*pi/3/sqrt(3)-0.1,2*pi/3/sqrt(3)+0.1
+
+# sample points
+x=numpy.linspace(xmin,xmax,nrpoints)
+y=numpy.linspace(ymin,ymax,nrpoints)
+x,y=numpy.meshgrid(x,y)
+
+# data points
+z=numpy.zeros((4,nrpoints,nrpoints))
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j])))
+ for k in range(0,4):
+ z[k,i,j]=(eigs[k])
+
+# output
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ for k in range(0,4):
+ print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='')
+ print()
+ print()
diff --git a/figs/bands_third.fig/Makefile b/figs/bands_third.fig/Makefile
new file mode 100644
index 0000000..fc025fa
--- /dev/null
+++ b/figs/bands_third.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=bands_third
+
+all: $(PROJECTNAME).pdf
+
+$(PROJECTNAME).pdf:
+ python $(PROJECTNAME).py > $(PROJECTNAME).dat
+ gnuplot $(PROJECTNAME).gnuplot
+ pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex
+
+install: $(PROJECTNAME).pdf
+ cp $(PROJECTNAME).pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(PROJECTNAME).aux
+ rm -f $(PROJECTNAME).log
+ rm -f $(PROJECTNAME).dat
+ rm -f $(PROJECTNAME)_plot.tex
+
+clean-pdf:
+ rm -f $(PROJECTNAME).pdf
+
+clean: clean-aux clean-pdf
diff --git a/figs/bands_third.fig/bands_third.gnuplot b/figs/bands_third.fig/bands_third.gnuplot
new file mode 100644
index 0000000..2845518
--- /dev/null
+++ b/figs/bands_third.fig/bands_third.gnuplot
@@ -0,0 +1,41 @@
+#!/usr/bin/env gnuplot
+
+datafile="bands_third.dat"
+# output
+outfile="bands_third_plot.tex"
+set output outfile
+
+# terminal
+set term lua tikz size 10,6 standalone tightboundingbox
+
+# format axes
+set key off
+unset colorbox
+unset border
+unset xtics
+unset ytics
+unset ztics
+
+# colors
+## FF143C (bright red)
+## 32CD32 (bright green)
+
+# angle camera
+set view 80,50
+
+# style for mesh lines
+set style line 1 linetype rgbcolor "#000000"
+
+# splot mode
+set pm3d hidden3d depthorder
+
+# set colors
+set palette defined (0 "#FF143C", 1 "#32CD32")
+
+# set data range
+set zrange [-0.0001:0.0001]
+
+# plot
+splot datafile using 1:2:3:4 with pm3d linestyle 1 , \
+ datafile using 5:6:7:8 with pm3d linestyle 1
+
diff --git a/figs/bands_third.fig/bands_third.py b/figs/bands_third.fig/bands_third.py
new file mode 100644
index 0000000..f4d2290
--- /dev/null
+++ b/figs/bands_third.fig/bands_third.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+
+## compute the bands for bilayer graphene (no g4 or delta)
+## third regime
+
+from math import *
+import cmath
+import numpy
+from scipy import optimize
+
+g1=0.1
+g3=0.33*g1
+
+def Omega(x,y):
+ return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y))
+
+# Hamiltonian
+def H(x,y):
+ return(numpy.array(\
+ [[0,g1,0,Omega(x,y).conjugate()],\
+ [g1,0,Omega(x,y),0],\
+ [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\
+ [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\
+ ))
+
+# eigenvalues
+def eigsH(x,y):
+ return(numpy.linalg.eigvals(H(x,y)))
+
+# resolution
+nrpoints=101
+# xrange
+xmin,xmax=2*pi/3-0.004,2*pi/3+0.004
+# yrange
+ymin,ymax=2*pi/3/sqrt(3)-0.004,2*pi/3/sqrt(3)+0.004
+
+# sample points
+x=numpy.linspace(xmin,xmax,nrpoints)
+y=numpy.linspace(ymin,ymax,nrpoints)
+x,y=numpy.meshgrid(x,y)
+
+
+## We want a data point at each Fermi point, which must first be computed
+
+# A function that vanishes only at the Fermi points
+def fermpt(v):
+ eigs=numpy.sort(numpy.real(eigsH(v[0],v[1])))
+ return([eigs[1]-eigs[2],0])
+# compute Fermi points
+## approximate starting value
+pf_app=numpy.zeros((4,2))
+pf_app[0]=[2*pi/3,2*pi/3/sqrt(3)]
+pf_app[1]=[2*pi/3,2/sqrt(3)*acos(1/2-g1*g3/2)]
+pf_app[2]=[acos(g1*g3/2-1/2),acos(g1*g3/2-1/2)/sqrt(3)]
+pf_app[3]=[4*pi/3-acos(g1*g3/2-1/2),acos(g1*g3/2-1/2)/sqrt(3)]
+pf=pf_app
+for i in range(0,4):
+ pf[i]=optimize.root(fermpt,pf_app[i],tol=1.e-10).x
+
+# Reset the data point closest to each Fermi point to the fermi point
+for k in range(0,4):
+ mini,minj=0,0
+ minval=100
+ for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ if(sqrt((x[i,j]-pf[k,0])**2+(y[i,j]-pf[k,1])**2)<minval):
+ mini,minj=i,j
+ minval=sqrt((x[i,j]-pf[k,0])**2+(y[i,j]-pf[k,1])**2)
+ [x[mini,minj],y[mini,minj]]=pf[k]
+
+
+# data points
+z=numpy.zeros((4,nrpoints,nrpoints))
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j])))
+ for k in range(0,4):
+ z[k,i,j]=(eigs[k])
+
+# output
+for i in range(0,nrpoints):
+ for j in range(0,nrpoints):
+ for k in [1,2]:
+ print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='')
+ print()
+ print()
diff --git a/figs/bilayer.fig/Makefile b/figs/bilayer.fig/Makefile
new file mode 120000
index 0000000..704310e
--- /dev/null
+++ b/figs/bilayer.fig/Makefile
@@ -0,0 +1 @@
+../libs/Makefile \ No newline at end of file
diff --git a/figs/bilayer.fig/bilayer.tex b/figs/bilayer.fig/bilayer.tex
new file mode 100644
index 0000000..0c5faa6
--- /dev/null
+++ b/figs/bilayer.fig/bilayer.tex
@@ -0,0 +1,17 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usepackage{graphene}
+\begin{document}
+\begin{tikzpicture}
+
+% draw grids
+\graphene{(0,0)}{}
+\graphene{(-1,0)}{dashed}
+
+\sitelattice{at}{(-1,0)}{}
+\sitelattice{bt}{(-1,0)}{}
+\sitelattice{a}{(0,0)}{}
+\sitelattice{b}{(0,0)}{}
+
+\end{tikzpicture}
+\end{document}
diff --git a/figs/bilayer.fig/libs/graphene.sty b/figs/bilayer.fig/libs/graphene.sty
new file mode 120000
index 0000000..a377638
--- /dev/null
+++ b/figs/bilayer.fig/libs/graphene.sty
@@ -0,0 +1 @@
+../../libs/graphene.sty \ No newline at end of file
diff --git a/figs/bilayer_cell.fig/Makefile b/figs/bilayer_cell.fig/Makefile
new file mode 120000
index 0000000..704310e
--- /dev/null
+++ b/figs/bilayer_cell.fig/Makefile
@@ -0,0 +1 @@
+../libs/Makefile \ No newline at end of file
diff --git a/figs/bilayer_cell.fig/bilayer_cell.tex b/figs/bilayer_cell.fig/bilayer_cell.tex
new file mode 100644
index 0000000..582d2fb
--- /dev/null
+++ b/figs/bilayer_cell.fig/bilayer_cell.tex
@@ -0,0 +1,40 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usepackage{graphene}
+\begin{document}
+\begin{tikzpicture}
+
+% draw grids
+\graphene{(0,0)}{}
+\graphene{(-1,0)}{dashed}
+\sitelattice{at}{(-1,0)}{}
+\sitelattice{bt}{(-1,0)}{}
+\sitelattice{a}{(0,0)}{}
+\sitelattice{b}{(0,0)}{}
+
+
+% cell
+\draw[color=blue](120:1)++(-1.5,0)--++(1.5,\sqrttt)--++(1.5,-\sqrttt)--++(-1.5,-\sqrttt)--cycle;
+
+% other cells
+\draw[color=blue,style=dashed](120:1)++(-1.5,0)--++\mlt;
+\draw[color=blue,style=dashed](120:1)++(0,-\sqrttt)--++\lt--++\lt;
+\draw[color=blue,style=dashed](120:1)++(1.5,0)--++\lt;
+\draw[color=blue,style=dashed](120:1)++(0,\sqrttt)--++\mlt--++\mlt;
+\draw[color=blue,style=dashed](120:1)++(0,\sqrttt)--++\lo--++\lo;
+\draw[color=blue,style=dashed](120:1)++(0,-\sqrttt)--++\mlo--++\mlo;
+\draw[color=blue,style=dashed](120:1)++(1.5,0)--++\lo;
+\draw[color=blue,style=dashed](120:1)++(-1.5,0)--++\mlo;
+\draw[color=blue,style=dashed](120:1)++(0,\sqrttt)++\mlo++\mlt--++\lo--++\lo;
+\draw[color=blue,style=dashed](120:1)++(0,-\sqrttt)++\mlo++\lt--++\lo--++\lo;
+\draw[color=blue,style=dashed](120:1)++(0,-\sqrttt)++\mlo++\mlt--++\lt--++\lt;
+\draw[color=blue,style=dashed](120:1)++(0,\sqrttt)++\lo++\mlt--++\lt--++\lt;
+
+\draw[color=red](120:1)++(30:1)++(0,.2)node[rotate=30]{\scriptsize$l_1$};
+\draw[color=red](120:1)++(-30:0.8)++(0,.2)node[rotate=-30]{\scriptsize$l_2$};
+\draw[color=red,line width=1.5pt,->](120:1)--++\lo;
+\draw[color=red,line width=1.5pt,->](120:1)--++\lt;
+
+
+\end{tikzpicture}
+\end{document}
diff --git a/figs/bilayer_cell.fig/libs/graphene.sty b/figs/bilayer_cell.fig/libs/graphene.sty
new file mode 120000
index 0000000..a377638
--- /dev/null
+++ b/figs/bilayer_cell.fig/libs/graphene.sty
@@ -0,0 +1 @@
+../../libs/graphene.sty \ No newline at end of file
diff --git a/figs/flow.fig/Makefile b/figs/flow.fig/Makefile
new file mode 100644
index 0000000..82ff8bd
--- /dev/null
+++ b/figs/flow.fig/Makefile
@@ -0,0 +1,21 @@
+PROJECTNAME=flow
+
+all: $(PROJECTNAME).pdf
+
+$(PROJECTNAME).pdf:
+ gnuplot $(PROJECTNAME).gnuplot
+ pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex
+
+install: $(PROJECTNAME).pdf
+ cp $(PROJECTNAME).pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(PROJECTNAME).aux
+ rm -f $(PROJECTNAME).log
+ rm -f $(PROJECTNAME)_plot.tex
+
+clean-pdf:
+ rm -f $(PROJECTNAME).pdf
+
+clean: clean-aux clean-pdf
diff --git a/figs/flow.fig/flow.gnuplot b/figs/flow.fig/flow.gnuplot
new file mode 100644
index 0000000..3d8d247
--- /dev/null
+++ b/figs/flow.fig/flow.gnuplot
@@ -0,0 +1,53 @@
+#!/usr/bin/env gnuplot
+
+# output file
+outfile="flow_plot.tex"
+set output outfile
+
+# tics
+set x2tics ("$\\log_2\\epsilon$" 5, "$3\\log_2\\epsilon$" 15) nomirror out
+set ytics ("$1$" 1, "$\\epsilon$" 2**(-5), "$2\\epsilon|\\log_2\\epsilon|$" 2**(-5)*(15-5+1)) nomirror out
+unset xtics
+
+set xrange [0:20]
+set yrange [-0.5:1]
+
+# remove key
+unset key
+
+# titles
+set x2label "$h$" offset 18,-3
+set ylabel norotate "$|V_h|$" offset 10.5,-9
+
+# set terminal (add color definitions for title)
+set term lua tikz size 8.33,5.833 standalone font "\\footnotesize"
+
+# 3=1+2 draw bottom and left sides of the box
+set border 6
+
+# set linestyles
+set style line 2 linetype rgbcolor "#DC143C" linewidth 2
+set style line 3 linetype rgbcolor "#32CD32" linewidth 2
+
+# extra text
+set label "irrelevant" at 2.5,-0.1 center textcolor "#32CD32"
+set label "$\\sim 2^{h}$" at 2.5,-0.25 center textcolor "#32CD32"
+set label "marginal" at 10,-0.1 center textcolor "#DC143C"
+set label "$\\sim\\epsilon|h-\\log_2\\epsilon|$" at 10,-0.25 center textcolor "#DC143C"
+set label "irrelevant" at 17.5,-0.1 center textcolor "#32CD32"
+set label "$\\sim\\epsilon|2\\log_2\\epsilon|2^{h-3\\log_2\\epsilon}$" at 15,-0.25 left textcolor "#32CD32"
+
+set samples 97
+
+set arrow from 0,1 to 20,1
+set arrow from 0,1 to 0,-0.5
+
+set arrow from 5,1 to 5,-0.5 nohead dashtype 2
+set arrow from 15,1 to 15,-0.5 nohead dashtype 2
+
+# plots
+plot \
+ ((x<=5) ? 2**(-x) : 1/0) linestyle 3,\
+ ((x>=5 && x<=15) ? 2**(-5)*(x-5+1) : 1/0) linestyle 2,\
+ ((x>=15) ? 2**(-5)*(15-5+1)*2**(-(x-15)) : 1/0) linestyle 3
+
diff --git a/figs/hoppings.fig/Makefile b/figs/hoppings.fig/Makefile
new file mode 120000
index 0000000..704310e
--- /dev/null
+++ b/figs/hoppings.fig/Makefile
@@ -0,0 +1 @@
+../libs/Makefile \ No newline at end of file
diff --git a/figs/hoppings.fig/hoppings.tex b/figs/hoppings.fig/hoppings.tex
new file mode 100644
index 0000000..c8fa332
--- /dev/null
+++ b/figs/hoppings.fig/hoppings.tex
@@ -0,0 +1,32 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usepackage{graphene}
+\begin{document}
+\begin{tikzpicture}
+
+% draw grids
+\graphene{(0,0)}{color=red}
+\graphene{(-1,0)}{dashed,color=red}
+
+% bounding box
+\path\mlo++\mlo++(-0.1,-0.1)coordinate(A);
+\path\lt++(-60:1)++(0.1,-0.1)coordinate(B);
+\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C);
+\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D);
+
+% interlayer hopping
+\begin{scope}
+ \clip(A)--(B)--(C)--(D)--cycle;
+ \graphene{(120:1)}{densely dotted,color=blue}
+ \graphene{(-120:1)}{densely dotted,color=blue}
+\end{scope}
+
+\sitelattice{at}{(-1,0)}{}
+\sitelattice{bt}{(-1,0)}{color=green}
+\sitelattice{a}{(0,0)}{color=green}
+\sitelattice{b}{(0,0)}{}
+
+
+
+\end{tikzpicture}
+\end{document}
diff --git a/figs/hoppings.fig/hoppings_0.tex b/figs/hoppings.fig/hoppings_0.tex
new file mode 100644
index 0000000..0c8e042
--- /dev/null
+++ b/figs/hoppings.fig/hoppings_0.tex
@@ -0,0 +1,25 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usepackage{graphene}
+\begin{document}
+\begin{tikzpicture}
+
+% draw grids
+\graphene{(0,0)}{color=red}
+\graphene{(-1,0)}{dashed,color=red}
+
+% bounding box
+\path\mlo++\mlo++(-0.1,-0.1)coordinate(A);
+\path\lt++(-60:1)++(0.1,-0.1)coordinate(B);
+\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C);
+\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D);
+
+\sitelattice{at}{(-1,0)}{}
+\sitelattice{bt}{(-1,0)}{}
+\sitelattice{a}{(0,0)}{}
+\sitelattice{b}{(0,0)}{}
+
+
+
+\end{tikzpicture}
+\end{document}
diff --git a/figs/hoppings.fig/hoppings_1.tex b/figs/hoppings.fig/hoppings_1.tex
new file mode 100644
index 0000000..ddaff19
--- /dev/null
+++ b/figs/hoppings.fig/hoppings_1.tex
@@ -0,0 +1,25 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usepackage{graphene}
+\begin{document}
+\begin{tikzpicture}
+
+% draw grids
+\graphene{(0,0)}{}
+\graphene{(-1,0)}{dashed}
+
+% bounding box
+\path\mlo++\mlo++(-0.1,-0.1)coordinate(A);
+\path\lt++(-60:1)++(0.1,-0.1)coordinate(B);
+\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C);
+\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D);
+
+\sitelattice{at}{(-1,0)}{}
+\sitelattice{bt}{(-1,0)}{color=green}
+\sitelattice{a}{(0,0)}{color=green}
+\sitelattice{b}{(0,0)}{}
+
+
+
+\end{tikzpicture}
+\end{document}
diff --git a/figs/hoppings.fig/hoppings_3.tex b/figs/hoppings.fig/hoppings_3.tex
new file mode 100644
index 0000000..8f9b64f
--- /dev/null
+++ b/figs/hoppings.fig/hoppings_3.tex
@@ -0,0 +1,32 @@
+\documentclass{standalone}
+\usepackage{tikz}
+\usepackage{graphene}
+\begin{document}
+\begin{tikzpicture}
+
+% draw grids
+\graphene{(0,0)}{}
+\graphene{(-1,0)}{dashed}
+
+% bounding box
+\path\mlo++\mlo++(-0.1,-0.1)coordinate(A);
+\path\lt++(-60:1)++(0.1,-0.1)coordinate(B);
+\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C);
+\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D);
+
+% interlayer hopping
+\begin{scope}
+ \clip(A)--(B)--(C)--(D)--cycle;
+ \graphene{(120:1)}{densely dotted,color=blue}
+ \graphene{(-120:1)}{densely dotted,color=blue}
+\end{scope}
+
+\sitelattice{at}{(-1,0)}{}
+\sitelattice{bt}{(-1,0)}{}
+\sitelattice{a}{(0,0)}{}
+\sitelattice{b}{(0,0)}{}
+
+
+
+\end{tikzpicture}
+\end{document}
diff --git a/figs/hoppings.fig/libs/graphene.sty b/figs/hoppings.fig/libs/graphene.sty
new file mode 120000
index 0000000..a377638
--- /dev/null
+++ b/figs/hoppings.fig/libs/graphene.sty
@@ -0,0 +1 @@
+../../libs/graphene.sty \ No newline at end of file
diff --git a/figs/libs/Makefile b/figs/libs/Makefile
new file mode 100644
index 0000000..5704428
--- /dev/null
+++ b/figs/libs/Makefile
@@ -0,0 +1,28 @@
+PROJECTNAME=$(basename $(wildcard *.tex))
+LIBS=$(notdir $(wildcard libs/*))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS): $(LIBS)
+ echo $(LIBS)
+ pdflatex -file-line-error $(patsubst %.pdf, %.tex, $@)
+
+install: $(PDFS)
+ cp $^ $(INSTALLDIR)/
+
+$(LIBS):
+ ln -fs libs/$@ ./
+
+clean-libs:
+ rm -f $(LIBS)
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS)
+
+clean: clean-libs clean-aux clean-tex
diff --git a/figs/libs/graphene.sty b/figs/libs/graphene.sty
new file mode 100644
index 0000000..40ffd03
--- /dev/null
+++ b/figs/libs/graphene.sty
@@ -0,0 +1,86 @@
+%%
+%% Macros to draw graphene lattices
+%%
+
+% numerical values
+% sqrt(3)/2
+\def\sqrttt{0.866}
+% sqrt(3)
+\def\sqrtt {1.732}
+
+%l1
+\def\lo{(1.5,\sqrttt)}
+%l2
+\def\lt{(1.5,-\sqrttt)}
+%-l1
+\def\mlo{(-1.5,-\sqrttt)}
+%-l2
+\def\mlt{(-1.5,\sqrttt)}
+
+% shapes
+\def\square#1#2#3{\draw[#3]#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);}
+\def\fullsquare#1#2#3{\fill[#3]#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);}
+
+% atoms
+\def\a#1#2{\fill[#2]#1circle(.1);}
+\def\b#1#2{\fullsquare{#1}{.1}{#2}}
+\def\at#1#2{\fill[color=white]#1circle(.1);\draw[#2]#1circle(.1);}
+\def\bt#1#2{\fullsquare{#1}{.17}{color=white}\square{#1}{.17}{#2}}
+
+
+% draw a hexagon
+\def\hexagon#1#2{
+ % draw the lines one at a time (so that dashes overlap if the line is dashed)
+ \draw[#2]#1++(1,0)--++(120:1);
+ \draw[#2]#1++(-120:1)--++(120:1);
+ \draw[#2]#1++(60:1)--++(-1,0);
+ \draw[#2]#1++(-60:1)--++(-1,0);
+ \draw[#2]#1++(120:1)--++(-120:1);
+ \draw[#2]#1++(1,0)--++(-120:1);
+}
+
+% draw the atoms around a hexagon
+\def\as#1#2{
+ \a{#1++(1,0)}{#2}
+ \a{#1++(120:1)}{#2}
+ \a{#1++(-120:1)}{#2}
+}
+\def\ats#1#2{
+ \at{#1++(1,0)}{#2}
+ \at{#1++(120:1)}{#2}
+ \at{#1++(-120:1)}{#2}
+}
+\def\bs#1#2{
+ \b{#1++(-1,0)}{#2}
+ \b{#1++(60:1)}{#2}
+ \b{#1++(-60:1)}{#2}
+}
+\def\bts#1#2{
+ \bt{#1++(-1,0)}{#2}
+ \bt{#1++(60:1)}{#2}
+ \bt{#1++(-60:1)}{#2}
+}
+
+% base lattice
+\def\graphene#1#2{
+ \hexagon{#1}{#2}
+ \hexagon{#1++\lo}{#2}
+ \hexagon{#1++\lt}{#2}
+ \hexagon{#1++\mlo}{#2}
+ \hexagon{#1++\mlt}{#2}
+ \hexagon{#1++\lo++\mlt}{#2}
+ \hexagon{#1++\lo++\mlt++\lo}{#2}
+ \hexagon{#1++\lo++\mlt++\mlt}{#2}
+}
+
+% base lattice of sites
+\def\sitelattice#1#2#3{
+ \csname #1s\endcsname{#2}{#3}
+ \csname #1s\endcsname{#2++\lo}{#3}
+ \csname #1s\endcsname{#2++\lt}{#3}
+ \csname #1s\endcsname{#2++\mlo}{#3}
+ \csname #1s\endcsname{#2++\mlt}{#3}
+ \csname #1s\endcsname{#2++\lo++\mlt}{#3}
+ \csname #1s\endcsname{#2++\lo++\mlt++\lo}{#3}
+ \csname #1s\endcsname{#2++\lo++\mlt++\mlt}{#3}
+}
diff --git a/figs/monolayer.fig/Makefile b/figs/monolayer.fig/Makefile
new file mode 120000
index 0000000..704310e
--- /dev/null
+++ b/figs/monolayer.fig/Makefile
@@ -0,0 +1 @@
+../libs/Makefile \ No newline at end of file
diff --git a/figs/monolayer.fig/libs/graphene.sty b/figs/monolayer.fig/libs/graphene.sty
new file mode 120000
index 0000000..a377638
--- /dev/null
+++ b/figs/monolayer.fig/libs/graphene.sty
@@ -0,0 +1 @@
+../../libs/graphene.sty \ No newline at end of file
diff --git a/figs/monolayer.fig/monolayer.tex b/figs/monolayer.fig/monolayer.tex
new file mode 100644
index 0000000..59bfadc
--- /dev/null
+++ b/figs/monolayer.fig/monolayer.tex
@@ -0,0 +1,16 @@
+\documentclass{standalone}
+\usepackage{tikz}
+
+% macros to draw graphene lattices
+\usepackage{graphene}
+
+\begin{document}
+\begin{tikzpicture}
+
+\graphene{(0,0)}{}
+
+\sitelattice{a}{(0,0)}{}
+\sitelattice{b}{(0,0)}{}
+
+\end{tikzpicture}
+\end{document}
diff --git a/libs/ian-presentation.cls b/libs/ian-presentation.cls
new file mode 100644
index 0000000..e35cda9
--- /dev/null
+++ b/libs/ian-presentation.cls
@@ -0,0 +1,185 @@
+%%
+%% Ian's presentation class
+%%
+
+%% TeX format
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+
+%% class name
+\ProvidesClass{ian-presentation}[2017/03/29]
+
+\def\ian@defaultoptions{
+ \pagestyle{plain}
+}
+
+%% paper dimensions
+\setlength\paperheight{240pt}
+\setlength\paperwidth{320pt}
+
+%% fonts
+\input{size11.clo}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+
+%% text dimensions
+\textheight=208pt
+\textwidth=272pt
+\hoffset=-1in
+\voffset=-1in
+\oddsidemargin=24pt
+\evensidemargin=24pt
+\topmargin=8pt
+\headheight=0pt
+\headsep=0pt
+\marginparsep=0pt
+\marginparwidth=0pt
+\footskip=16pt
+
+
+%% remove default skips
+\parindent=0pt
+\parskip=0pt
+\baselineskip=0pt
+
+%% something is wrong with \thepage, redefine it
+\gdef\thepage{\the\c@page}
+
+%% correct vertical alignment at the end of a document
+\AtEndDocument{
+ % save total slide count
+ \immediate\write\@auxout{\noexpand\gdef\noexpand\slidecount{\thepage}}
+ \vfill
+ \eject
+}
+
+
+%% footer
+\def\ps@plain{
+ \def\@oddhead{}
+ \def\@evenhead{\@oddhead}
+ \def\@oddfoot{\tiny\hfill\thepage/\safe\slidecount\hfill}
+ \def\@evenfoot{\@oddfoot}
+}
+\def\ps@empty{
+ \def\@oddhead{}
+ \def\@evenhead{\@oddhead}
+ \def\@oddfoot{}
+ \def\@evenfoot{\@oddfoot}
+}
+
+
+%% title of slide
+\def\title#1{
+ \hfil{\bf\large #1}\par
+ \hfil\vrule width0.75\textwidth height0.3pt\par
+ \vskip5pt
+}
+
+
+%% hyperlinks
+% hyperlinkcounter
+\newcounter{lncount}
+% hyperref anchor
+\def\hrefanchor{%
+\stepcounter{lncount}%
+\hypertarget{ln.\thelncount}{}%
+}
+
+%% define a command and write it to aux file
+\def\outdef#1#2{%
+ % define command%
+ \expandafter\xdef\csname #1\endcsname{#2}%
+ % hyperlink number%
+ \expandafter\xdef\csname #1@hl\endcsname{\thelncount}%
+ % write command to aux%
+ \immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1\endcsname{\csname #1\endcsname}}%
+ \immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1@hl\endcsname{\thelncount}}%
+}
+
+%% can call commands even when they are not defined
+\def\safe#1{%
+ \ifdefined#1%
+ #1%
+ \else%
+ {\color{red}\bf?}%
+ \fi%
+}
+
+
+%% itemize
+\newlength\itemizeskip
+% left margin for items
+\setlength\itemizeskip{20pt}
+\newlength\itemizeseparator
+% space between the item symbol and the text
+\setlength\itemizeseparator{5pt}
+% penalty preceding an itemize
+\def\itemizepenalty{0}
+% counter counting the itemize level
+\newcounter{itemizecount}
+
+% item symbol
+\def\itemizept#1{
+ \ifnum#1=1
+ \textbullet
+ \else
+ $\scriptstyle\blacktriangleright$
+ \fi
+}
+
+\newlength\current@itemizeskip
+\setlength\current@itemizeskip{0pt}
+\def\itemize{
+ \par\penalty\itemizepenalty\medskip\penalty\itemizepenalty
+ \addtocounter{itemizecount}{1}
+ \addtolength\current@itemizeskip{\itemizeskip}
+ \leftskip\current@itemizeskip
+}
+\def\enditemize{
+ \addtocounter{itemizecount}{-1}
+ \addtolength\current@itemizeskip{-\itemizeskip}
+ \par\leftskip\current@itemizeskip
+ \medskip
+}
+\newlength\itempt@total
+\def\item{
+ \settowidth\itempt@total{\itemizept\theitemizecount}
+ \addtolength\itempt@total{\itemizeseparator}
+ \par
+ \medskip
+ \hskip-\itempt@total\itemizept\theitemizecount\hskip\itemizeseparator
+}
+
+%% enumerate
+\newcounter{enumerate@count}
+\def\enumerate{
+ \setcounter{enumerate@count}0
+ \let\olditem\item
+ \let\olditemizept\itemizept
+ \def\item{
+ % counter
+ \stepcounter{enumerate@count}
+ % set header
+ \def\itemizept{\theenumerate@count.}
+ % hyperref anchor
+ \hrefanchor
+ % define tag (for \label)
+ \xdef\tag{\theenumerate@count}
+ \olditem
+ }
+ \itemize
+}
+\def\endenumerate{
+ \enditemize
+ \let\item\olditem
+ \let\itemizept\olditemizept
+}
+
+
+%% end
+\ian@defaultoptions
+
+\endinput