Ian Jauslin
summaryrefslogtreecommitdiff
path: root/figs
diff options
context:
space:
mode:
authorIan Jauslin <ian@jauslin.org>2022-06-14 16:32:34 +0200
committerIan Jauslin <ian@jauslin.org>2022-06-14 16:32:34 +0200
commitd254a3e3f495e9cd3110ae48020786466d850d57 (patch)
treec88e465b5bc2aff974daaa3617adf615a0b68880 /figs
Initial commitv1.0
Diffstat (limited to 'figs')
-rw-r--r--figs/bands.fig/Makefile25
-rw-r--r--figs/bands.fig/bands.gnuplot33
-rw-r--r--figs/bilayer.fig/Makefile23
-rw-r--r--figs/bilayer.fig/bilayer.tikz.tex40
l---------figs/bilayer.fig/graphene.sty1
-rw-r--r--figs/brillouin.fig/Makefile23
-rw-r--r--figs/brillouin.fig/brillouin.tikz.tex17
-rw-r--r--figs/brillouin.fig/scales.tikz.tex47
-rw-r--r--figs/cell-coarse.fig/Makefile23
-rw-r--r--figs/cell-coarse.fig/cell-coarse.tikz.tex28
l---------figs/cell-coarse.fig/graphene.sty1
-rw-r--r--figs/cell.fig/Makefile23
-rw-r--r--figs/cell.fig/cell.tikz.tex30
l---------figs/cell.fig/graphene.sty1
-rw-r--r--figs/graphene.fig/Makefile23
l---------figs/graphene.fig/graphene.sty1
-rw-r--r--figs/graphene.fig/graphene.tikz.tex12
-rw-r--r--figs/hierarchical_graphene.fig/Makefile32
-rwxr-xr-xfigs/hierarchical_graphene.fig/gendat30
-rw-r--r--figs/hierarchical_graphene.fig/graphene.mk148
-rw-r--r--figs/hierarchical_graphene.fig/graphene_vector_field.gnuplot25
-rw-r--r--figs/hierarchical_sd.fig/Makefile32
-rwxr-xr-xfigs/hierarchical_sd.fig/gendat30
-rw-r--r--figs/hierarchical_sd.fig/sd.mk81
-rw-r--r--figs/hierarchical_sd.fig/sd_vector_field.gnuplot25
-rw-r--r--figs/lib/graphene.sty48
26 files changed, 802 insertions, 0 deletions
diff --git a/figs/bands.fig/Makefile b/figs/bands.fig/Makefile
new file mode 100644
index 0000000..cb5ada5
--- /dev/null
+++ b/figs/bands.fig/Makefile
@@ -0,0 +1,25 @@
+PROJECTNAME=$(basename $(wildcard *.gnuplot))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS):
+ gnuplot $(patsubst %.pdf, %.gnuplot, $@) > $(patsubst %.pdf, %.tikz.tex, $@)
+ pdflatex -jobname $(basename $@) -file-line-error $(patsubst %.pdf, %.tikz.tex, $@)
+
+install: $(PDFS)
+ cp $^ $(INSTALLDIR)/
+
+clean-aux:
+ rm -f $(addsuffix .tikz.tex, $(PROJECTNAME))
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+
+clean-dat:
+ rm -f $(DATS)
+
+clean-tex:
+ rm -f $(PDFS)
+
+clean: clean-aux clean-tex
diff --git a/figs/bands.fig/bands.gnuplot b/figs/bands.fig/bands.gnuplot
new file mode 100644
index 0000000..8922c00
--- /dev/null
+++ b/figs/bands.fig/bands.gnuplot
@@ -0,0 +1,33 @@
+# default output canvas size: 12.5cm x 8.75cm
+set term lua tikz size 8,6 standalone
+
+unset key
+
+unset xtics
+unset ytics
+unset ztics
+unset border
+
+unset colorbox
+
+set pointsize 1
+
+#set xrange [0:4*pi/3]
+#set yrange [-2*pi/sqrt(3):2*pi/sqrt(3)]
+
+set pm3d depthorder
+
+# make this odd and divisible by 7 to get the Fermi points
+set isosamples 49
+
+# rescale x and y components to render the Fermi points better
+# units of 2*pi/3
+set xrange [0:2]
+# units of 2*pi/(3*sqrt(3))
+set yrange [-3:3]
+
+set view 80,35
+
+splot sqrt(1+4*cos(pi*x)*cos(pi/3*y)+4*cos(pi/3*y)**2) w pm3d, -sqrt(1+4*cos(pi*x)*cos(pi/3*y)+4*cos(pi/3*y)**2) w pm3d
+
+#pause mouse close
diff --git a/figs/bilayer.fig/Makefile b/figs/bilayer.fig/Makefile
new file mode 100644
index 0000000..147037c
--- /dev/null
+++ b/figs/bilayer.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS):
+ pdflatex -jobname $(basename $@) $(patsubst %.pdf, %.tikz.tex, $@)
+
+
+install: $(PROJECTNAME)
+ cp $^.pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+ rm -f $(addsuffix .out, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS) $(SYNCTEXS)
+
+clean: clean-aux clean-tex
diff --git a/figs/bilayer.fig/bilayer.tikz.tex b/figs/bilayer.fig/bilayer.tikz.tex
new file mode 100644
index 0000000..a35b039
--- /dev/null
+++ b/figs/bilayer.fig/bilayer.tikz.tex
@@ -0,0 +1,40 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{graphene}
+
+% reflected graphene grid at #1 of width #2 and height #3
+\def\graphenereflected#1#2#3{
+ \foreach \i in {0,...,#2}{
+ \foreach \j in {0,...,#3}{
+ \cellreflected{#1++(\i*3,-2*\j*\sqrtThOT)}
+ \cellreflected{#1++(\i*3+1.5,\sqrtThOT-2*\j*\sqrtThOT)}
+ }
+ }
+}
+\def\cellreflected#1{
+ \draw[dotted]#1--++(0:-1);
+ \draw[dotted]#1--++(120:-1);
+ \draw[dotted]#1--++(240:-1);
+ \asite{#1}
+ \draw[dotted]#1++(-1,0)--++(0:1);
+ \draw[dotted]#1++(-1,0)--++(120:1);
+ \draw[dotted]#1++(-1,0)--++(240:1);
+ \bsite{#1++(-1,0)}
+}
+\def\square#1#2{\draw#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);}
+
+
+\begin{document}
+\begin{tikzpicture}
+ % first layer
+ \graphene{(0,0)}{3}{3}
+
+ % redefine sites for second layer
+ \def\bsite#1{\draw#1circle(.1);}
+ \def\asite#1{\square{#1}{.17}}
+
+ % second layer
+ \graphenereflected{(0,0)}{3}{3}
+\end{tikzpicture}
+\end{document}
diff --git a/figs/bilayer.fig/graphene.sty b/figs/bilayer.fig/graphene.sty
new file mode 120000
index 0000000..477bbc1
--- /dev/null
+++ b/figs/bilayer.fig/graphene.sty
@@ -0,0 +1 @@
+../lib/graphene.sty \ No newline at end of file
diff --git a/figs/brillouin.fig/Makefile b/figs/brillouin.fig/Makefile
new file mode 100644
index 0000000..147037c
--- /dev/null
+++ b/figs/brillouin.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS):
+ pdflatex -jobname $(basename $@) $(patsubst %.pdf, %.tikz.tex, $@)
+
+
+install: $(PROJECTNAME)
+ cp $^.pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+ rm -f $(addsuffix .out, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS) $(SYNCTEXS)
+
+clean: clean-aux clean-tex
diff --git a/figs/brillouin.fig/brillouin.tikz.tex b/figs/brillouin.fig/brillouin.tikz.tex
new file mode 100644
index 0000000..6b392af
--- /dev/null
+++ b/figs/brillouin.fig/brillouin.tikz.tex
@@ -0,0 +1,17 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+
+% sqrt(3)
+\def\sqrtTh{1.732}
+% pi
+\def\pival{3.14159}
+
+\begin{document}
+\begin{tikzpicture}
+ \draw(0,0)--(2*\pival/3,2*\pival/\sqrtTh)--(4*\pival/3,0)--(2*\pival/3,-2*\pival/\sqrtTh)--cycle;
+
+ \fill(2*\pival/3,2*\pival/3/\sqrtTh)circle(0.05);
+ \fill(2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.05);
+\end{tikzpicture}
+\end{document}
diff --git a/figs/brillouin.fig/scales.tikz.tex b/figs/brillouin.fig/scales.tikz.tex
new file mode 100644
index 0000000..ebafd14
--- /dev/null
+++ b/figs/brillouin.fig/scales.tikz.tex
@@ -0,0 +1,47 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{xcolor}
+
+\definecolor{gray0}{HTML}{EEEEEE}
+\definecolor{gray1}{HTML}{CCCCCC}
+\definecolor{gray2}{HTML}{AAAAAA}
+\definecolor{gray3}{HTML}{888888}
+\definecolor{gray4}{HTML}{666666}
+\definecolor{gray5}{HTML}{444444}
+\definecolor{gray6}{HTML}{222222}
+\definecolor{gray7}{HTML}{000000}
+
+% sqrt(3)
+\def\sqrtTh{1.732}
+% pi
+\def\pival{3.14159}
+
+\begin{document}
+\begin{tikzpicture}
+ \draw(0,0)--(2*\pival/3,2*\pival/\sqrtTh)--(4*\pival/3,0)--(2*\pival/3,-2*\pival/\sqrtTh)--cycle;
+
+ \fill[color=gray0](0,0)--(2*\pival/3,2*\pival/\sqrtTh)--(4*\pival/3,0)--(2*\pival/3,-2*\pival/\sqrtTh)--cycle;
+
+ \fill[color=gray1](2*\pival/3, 2*\pival/3/\sqrtTh)circle(1);
+ \fill[color=gray1](2*\pival/3,-2*\pival/3/\sqrtTh)circle(1);
+
+ \fill[color=gray2](2*\pival/3, 2*\pival/3/\sqrtTh)circle(0.5);
+ \fill[color=gray2](2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.5);
+
+ \fill[color=gray3](2*\pival/3, 2*\pival/3/\sqrtTh)circle(0.25);
+ \fill[color=gray3](2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.25);
+
+ \fill[color=gray4](2*\pival/3, 2*\pival/3/\sqrtTh)circle(0.125);
+ \fill[color=gray4](2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.125);
+
+ \fill[color=gray5](2*\pival/3, 2*\pival/3/\sqrtTh)circle(0.0626);
+ \fill[color=gray5](2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.0625);
+
+ \fill[color=gray6](2*\pival/3, 2*\pival/3/\sqrtTh)circle(0.03125);
+ \fill[color=gray6](2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.03125);
+
+ \fill[color=gray7](2*\pival/3, 2*\pival/3/\sqrtTh)circle(0.015625);
+ \fill[color=gray7](2*\pival/3,-2*\pival/3/\sqrtTh)circle(0.015625);
+\end{tikzpicture}
+\end{document}
diff --git a/figs/cell-coarse.fig/Makefile b/figs/cell-coarse.fig/Makefile
new file mode 100644
index 0000000..147037c
--- /dev/null
+++ b/figs/cell-coarse.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS):
+ pdflatex -jobname $(basename $@) $(patsubst %.pdf, %.tikz.tex, $@)
+
+
+install: $(PROJECTNAME)
+ cp $^.pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+ rm -f $(addsuffix .out, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS) $(SYNCTEXS)
+
+clean: clean-aux clean-tex
diff --git a/figs/cell-coarse.fig/cell-coarse.tikz.tex b/figs/cell-coarse.fig/cell-coarse.tikz.tex
new file mode 100644
index 0000000..f296cb5
--- /dev/null
+++ b/figs/cell-coarse.fig/cell-coarse.tikz.tex
@@ -0,0 +1,28 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{graphene}
+
+% rescale cells by
+\def\rr{4}
+
+\begin{document}
+\begin{tikzpicture}
+ %\graphene{(0,0)}{12}{12}
+ \graphene{(-3,3*\sqrtTh)}{17}{16}
+
+ \foreach \i in {0,...,3}{
+ \draw[line width=1pt, color=blue](-1*\rr,-\i*\sqrtTh*\rr)--++(1.5*2*\i*\rr+3*\rr,\sqrtThOT*2*\i*\rr+\sqrtTh*\rr);
+ }
+ \foreach \i in {0,...,3}{
+ \draw[line width=1pt, color=blue](0.5*\rr+3*\i*\rr,-3.5*\sqrtTh*\rr)--++(-1.5*2*\i*\rr+12*\rr,-\sqrtThOT*2*\i*\rr+4*\sqrtTh*\rr);
+ }
+
+ \foreach \i in {0,...,3}{
+ \draw[line width=1pt, color=blue](-1*\rr,-\i*\sqrtTh*\rr)--++(-1.5*2*\i*\rr+10.5*\rr,+\sqrtThOT*2*\i*\rr-3.5*\sqrtTh*\rr);
+ }
+ \foreach \i in {0,...,3}{
+ \draw[line width=1pt, color=blue](-1*\rr+3*\i*\rr,\sqrtTh*\rr)--++(-1.5*2*\i*\rr+13.5*\rr,\sqrtThOT*2*\i*\rr-4.5*\sqrtTh*\rr);
+ }
+\end{tikzpicture}
+\end{document}
diff --git a/figs/cell-coarse.fig/graphene.sty b/figs/cell-coarse.fig/graphene.sty
new file mode 120000
index 0000000..477bbc1
--- /dev/null
+++ b/figs/cell-coarse.fig/graphene.sty
@@ -0,0 +1 @@
+../lib/graphene.sty \ No newline at end of file
diff --git a/figs/cell.fig/Makefile b/figs/cell.fig/Makefile
new file mode 100644
index 0000000..147037c
--- /dev/null
+++ b/figs/cell.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS):
+ pdflatex -jobname $(basename $@) $(patsubst %.pdf, %.tikz.tex, $@)
+
+
+install: $(PROJECTNAME)
+ cp $^.pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+ rm -f $(addsuffix .out, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS) $(SYNCTEXS)
+
+clean: clean-aux clean-tex
diff --git a/figs/cell.fig/cell.tikz.tex b/figs/cell.fig/cell.tikz.tex
new file mode 100644
index 0000000..ec66a7c
--- /dev/null
+++ b/figs/cell.fig/cell.tikz.tex
@@ -0,0 +1,30 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{graphene}
+
+\begin{document}
+\begin{tikzpicture}
+ \graphene{(0,0)}{3}{3}
+
+ \foreach \i in {0,...,3}{
+ \draw[color=blue](-1,-\i*\sqrtTh)--++(1.5*2*\i+3,\sqrtThOT*2*\i+\sqrtTh);
+ }
+ \foreach \i in {0,...,3}{
+ \draw[color=blue](0.5+3*\i,-3.5*\sqrtTh)--++(-1.5*2*\i+12,-\sqrtThOT*2*\i+4*\sqrtTh);
+ }
+
+ \foreach \i in {0,...,3}{
+ \draw[color=blue](-1,-\i*\sqrtTh)--++(-1.5*2*\i+10.5,+\sqrtThOT*2*\i-3.5*\sqrtTh);
+ }
+ \foreach \i in {0,...,3}{
+ \draw[color=blue](-1+3*\i,\sqrtTh)--++(-1.5*2*\i+13.5,\sqrtThOT*2*\i-4.5*\sqrtTh);
+ }
+
+ \draw[color=red] (6,-\sqrtTh)++(0.5,.6)node[rotate=30]{$l_1$};
+ \draw[color=red](6,-\sqrtTh)++(0.5,-.6)node[rotate=-30]{$l_2$};
+ \pgfsetarrowsend{latex};
+ \draw[color=red,line width=1.5pt](6,-\sqrtTh)--++\Lo;
+ \draw[color=red,line width=1.5pt](6,-\sqrtTh)--++\Lt;
+\end{tikzpicture}
+\end{document}
diff --git a/figs/cell.fig/graphene.sty b/figs/cell.fig/graphene.sty
new file mode 120000
index 0000000..477bbc1
--- /dev/null
+++ b/figs/cell.fig/graphene.sty
@@ -0,0 +1 @@
+../lib/graphene.sty \ No newline at end of file
diff --git a/figs/graphene.fig/Makefile b/figs/graphene.fig/Makefile
new file mode 100644
index 0000000..147037c
--- /dev/null
+++ b/figs/graphene.fig/Makefile
@@ -0,0 +1,23 @@
+PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS):
+ pdflatex -jobname $(basename $@) $(patsubst %.pdf, %.tikz.tex, $@)
+
+
+install: $(PROJECTNAME)
+ cp $^.pdf $(INSTALLDIR)/
+
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+ rm -f $(addsuffix .out, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS) $(SYNCTEXS)
+
+clean: clean-aux clean-tex
diff --git a/figs/graphene.fig/graphene.sty b/figs/graphene.fig/graphene.sty
new file mode 120000
index 0000000..477bbc1
--- /dev/null
+++ b/figs/graphene.fig/graphene.sty
@@ -0,0 +1 @@
+../lib/graphene.sty \ No newline at end of file
diff --git a/figs/graphene.fig/graphene.tikz.tex b/figs/graphene.fig/graphene.tikz.tex
new file mode 100644
index 0000000..c78e3e9
--- /dev/null
+++ b/figs/graphene.fig/graphene.tikz.tex
@@ -0,0 +1,12 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{graphene}
+
+\def\bsite#1{\fill#1circle(.1);}
+
+\begin{document}
+\begin{tikzpicture}
+ \graphene{(0,0)}{3}{3}
+\end{tikzpicture}
+\end{document}
diff --git a/figs/hierarchical_graphene.fig/Makefile b/figs/hierarchical_graphene.fig/Makefile
new file mode 100644
index 0000000..e5e1f5d
--- /dev/null
+++ b/figs/hierarchical_graphene.fig/Makefile
@@ -0,0 +1,32 @@
+PROJECTNAME=graphene_vector_field
+
+DATS=graphene_vector_field.dat
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+TEXS=$(addsuffix .tikz.tex, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS): $(DATS)
+ gnuplot $(patsubst %.pdf, %.gnuplot, $@) > $(patsubst %.pdf, %.tikz.tex, $@)
+ pdflatex -jobname $(basename $@) -file-line-error $(patsubst %.pdf, %.tikz.tex, $@)
+
+graphene_vector_field.dat:
+ meankondo -C graphene.mk > graphene-numkondo.mk
+ ./gendat > $@
+
+install: $(PDFS)
+ cp $^ $(INSTALLDIR)/
+
+clean-aux:
+ rm -f $(addsuffix .tikz.tex, $(PROJECTNAME))
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+
+clean-dat:
+ rm -f $(DATS)
+ rm -f graphene-numkondo.mk
+
+clean-tex:
+ rm -f $(PDFS)
+
+clean: clean-aux clean-tex
diff --git a/figs/hierarchical_graphene.fig/gendat b/figs/hierarchical_graphene.fig/gendat
new file mode 100755
index 0000000..d905203
--- /dev/null
+++ b/figs/hierarchical_graphene.fig/gendat
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# location of numkondo config
+config=$(dirname $0)/graphene-numkondo.mk
+
+# range and number of points in each direction
+minx=-2
+maxx=2
+nx=20
+
+miny=-1
+maxy=1
+ny=20
+
+# compute each point
+for i in $(seq $nx); do
+ # alpha_0
+ alpha0=$(python -c "print($minx+($maxx-($minx))/($nx-1)*($i-1))")
+ for j in $(seq $ny); do
+ # alpha_1
+ alpha1=$(python -c "print($miny+($maxy-($miny))/($ny-1)*($j-1))")
+
+ # print alphas
+ echo -n "$alpha0 $alpha1 "
+
+ # compute step and select the relevant lines
+ dat=$(numkondo -N 1 -F -I "0:$alpha0,1:$alpha1" "$config" | sed -r '/^[^01]/d;s/^[0-9]*://;s/,//' | tr '\n' ' ')
+ echo "$dat"
+ done
+done
diff --git a/figs/hierarchical_graphene.fig/graphene.mk b/figs/hierarchical_graphene.fig/graphene.mk
new file mode 100644
index 0000000..7bd1cca
--- /dev/null
+++ b/figs/hierarchical_graphene.fig/graphene.mk
@@ -0,0 +1,148 @@
+## This computes the logarithm of the flow equation
+
+#!fields
+# extrenal fields: xy0 where x=alpha, y=sigma
+x:110,120,210,220
+# internal fields: xy1 where x=alpha, y=sigma
+i:111,121,211,221
+# all are Fermions
+f:110,120,210,220,111,121,211,221
+
+&
+#!groups
+# different spins are independent
+(111,211) (121,221)
+
+&
+#!preprocessor_variables
+
+# psi's with internal fields
+psiAU=(1/2)[f110]+[f111],
+psiAD=(1/2)[f120]+[f121],
+psiBU=(1/2)[f210]+[f211],
+psiBD=(1/2)[f220]+[f221],
+
+psiAU-=(1/2)[f-110]+[f-111],
+psiAD-=(1/2)[f-120]+[f-121],
+psiBU-=(1/2)[f-210]+[f-211],
+psiBD-=(1/2)[f-220]+[f-221],
+
+# operators with internal fields
+O0=
+<<$psiAU>*<$psiBU->>+
+<<$psiBU>*<$psiAU->>+
+<<$psiAD>*<$psiBD->>+
+<<$psiBD>*<$psiAD->>,
+
+O1=
+<<$psiAU>*<$psiAU->*<$psiAD>*<$psiAD->>+
+<<$psiBU>*<$psiBU->*<$psiBD>*<$psiBD->>,
+
+O2=
+<<$psiAU>*<$psiAD->*<$psiBD>*<$psiBU->>+
+<<$psiBU>*<$psiBD->*<$psiAD>*<$psiAU->>+
+<<$psiAD>*<$psiAU->*<$psiBU>*<$psiBD->>+
+<<$psiBD>*<$psiBU->*<$psiAU>*<$psiAD->>,
+
+O3=
+<<$psiAU>*<$psiAU->*<$psiBU>*<$psiBU->>+
+<<$psiAD>*<$psiAD->*<$psiBD>*<$psiBD->>,
+
+O4=
+<<$psiAU>*<$psiBU->*<$psiAD>*<$psiBD->>+
+<<$psiBU>*<$psiAU->*<$psiBD>*<$psiAD->>,
+
+O5=
+<<$psiAU>*<$psiAU->*<$psiAD>*<$psiBU->*<$psiBU>*<$psiBD->>+
+<<$psiAD>*<$psiAD->*<$psiAU>*<$psiBD->*<$psiBD>*<$psiBU->>+
+<<$psiBU>*<$psiBU->*<$psiBD>*<$psiAU->*<$psiAU>*<$psiAD->>+
+<<$psiBD>*<$psiBD->*<$psiBU>*<$psiAD->*<$psiAD>*<$psiAU->>,
+
+O6=<<$psiAU>*<$psiAU->*<$psiAD>*<$psiAD->*<$psiBU>*<$psiBU->*<$psiBD>*<$psiBD->>,
+
+
+# psi's without internal fields
+phiAU=[f110],
+phiAD=[f120],
+phiBU=[f210],
+phiBD=[f220],
+
+phiAU-=[f-110],
+phiAD-=[f-120],
+phiBU-=[f-210],
+phiBD-=[f-220],
+
+# operators without internal fields
+E0=
+<<$phiAU>*<$phiBU->>+
+<<$phiBU>*<$phiAU->>+
+<<$phiAD>*<$phiBD->>+
+<<$phiBD>*<$phiAD->>,
+
+E1=
+<<$phiAU>*<$phiAU->*<$phiAD>*<$phiAD->>+
+<<$phiBU>*<$phiBU->*<$phiBD>*<$phiBD->>,
+
+E2=
+<<$phiAU>*<$phiAD->*<$phiBD>*<$phiBU->>+
+<<$phiBU>*<$phiBD->*<$phiAD>*<$phiAU->>+
+<<$phiAD>*<$phiAU->*<$phiBU>*<$phiBD->>+
+<<$phiBD>*<$phiBU->*<$phiAU>*<$phiAD->>,
+
+E3=
+<<$phiAU>*<$phiAU->*<$phiBU>*<$phiBU->>+
+<<$phiAD>*<$phiAD->*<$phiBD>*<$phiBD->>,
+
+E4=
+<<$phiAU>*<$phiBU->*<$phiAD>*<$phiBD->>+
+<<$phiBU>*<$phiAU->*<$phiBD>*<$phiAD->>,
+
+E5=
+<<$phiAU>*<$phiAU->*<$phiAD>*<$phiBU->*<$phiBU>*<$phiBD->>+
+<<$phiAD>*<$phiAD->*<$phiAU>*<$phiBD->*<$phiBD>*<$phiBU->>+
+<<$phiBU>*<$phiBU->*<$phiBD>*<$phiAU->*<$phiAU>*<$phiAD->>+
+<<$phiBD>*<$phiBD->*<$phiBU>*<$phiAD->*<$phiAD>*<$phiAU->>,
+
+E6=<<$phiAU>*<$phiAU->*<$phiAD>*<$phiAD->*<$phiBU>*<$phiBU->*<$phiBD>*<$phiBD->>
+
+&
+#!propagator
+111;211: 1 ,121;221: 1 ,
+211;111: 1 ,221;121: 1
+
+&
+#!input_polynomial
+<%exp<
+ <<[l0]>*<$O0>>+
+ <<[l1]>*<$O1>>+
+ <<[l2]>*<$O2>>+
+ <<[l3]>*<$O3>>+
+ <<[l4]>*<$O4>>+
+ <<[l5]>*<$O5>>+
+ <<[l6]>*<$O6>>
+>>
+
+&
+#!postprocess_flow_equation
+<<8>*<%log_1<$FLOW>>>
+
+&
+#!id_table
+0: <$E0>,
+1: <$E1>,
+2: <$E2>,
+3: <$E3>,
+4: <$E4>,
+5: <$E5>,
+6: <$E6>
+
+&
+#!labels
+
+0:"O0" ,
+1:"O1" ,
+2:"O2" ,
+3:"O3" ,
+4:"O4" ,
+5:"O5" ,
+6:"O6"
diff --git a/figs/hierarchical_graphene.fig/graphene_vector_field.gnuplot b/figs/hierarchical_graphene.fig/graphene_vector_field.gnuplot
new file mode 100644
index 0000000..9eef976
--- /dev/null
+++ b/figs/hierarchical_graphene.fig/graphene_vector_field.gnuplot
@@ -0,0 +1,25 @@
+set ylabel "$\\alpha_1$" norotate
+set xlabel "$\\alpha_0$"
+
+# default output canvas size: 12.5cm x 8.75cm
+set term lua tikz size 8,6 standalone
+
+unset key
+
+set pointsize 1
+
+# color functions
+
+rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
+color(x) = rgb(x*255, 0 , (1-x)*255)
+
+# get min/max
+set yrange [-1000:1000]
+stats "graphene_vector_field.dat" u (log10(sqrt(($3-$1)**2+($4-$2)**2)))
+
+set xrange [-2:2]
+set yrange [-1:1]
+
+rescale=15
+
+plot "graphene_vector_field.dat" u 1:2:(($3-$1)/sqrt(($3-$1)**2+($4-$2)**2)/rescale):(($4-$2)/sqrt(($3-$1)**2+($4-$2)**2)/rescale):(color((log10(sqrt(($3-$1)**2+($4-$2)**2))-STATS_min)/(STATS_max-STATS_min))) with vec filled head linecolor rgb variable
diff --git a/figs/hierarchical_sd.fig/Makefile b/figs/hierarchical_sd.fig/Makefile
new file mode 100644
index 0000000..175f61b
--- /dev/null
+++ b/figs/hierarchical_sd.fig/Makefile
@@ -0,0 +1,32 @@
+PROJECTNAME=sd_vector_field
+
+DATS=sd_vector_field.dat
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+TEXS=$(addsuffix .tikz.tex, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS): $(DATS)
+ gnuplot $(patsubst %.pdf, %.gnuplot, $@) > $(patsubst %.pdf, %.tikz.tex, $@)
+ pdflatex -jobname $(basename $@) -file-line-error $(patsubst %.pdf, %.tikz.tex, $@)
+
+sd_vector_field.dat:
+ meankondo -C sd.mk > sd-numkondo.mk
+ ./gendat > $@
+
+install: $(PDFS)
+ cp $^ $(INSTALLDIR)/
+
+clean-aux:
+ rm -f $(addsuffix .tikz.tex, $(PROJECTNAME))
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+
+clean-dat:
+ rm -f $(DATS)
+ rm -f sd-numkondo.mk
+
+clean-tex:
+ rm -f $(PDFS)
+
+clean: clean-aux clean-tex
diff --git a/figs/hierarchical_sd.fig/gendat b/figs/hierarchical_sd.fig/gendat
new file mode 100755
index 0000000..08bbdd9
--- /dev/null
+++ b/figs/hierarchical_sd.fig/gendat
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# location of numkondo config
+config=$(dirname $0)/sd-numkondo.mk
+
+# range and number of points in each direction
+minx=-1
+maxx=0.5
+nx=20
+
+miny=-0.4
+maxy=0.4
+ny=20
+
+# compute each point
+for i in $(seq $nx); do
+ # alpha_0
+ alpha0=$(python -c "print($minx+($maxx-($minx))/($nx-1)*($i-1))")
+ for j in $(seq $ny); do
+ # alpha_1
+ alpha1=$(python -c "print($miny+($maxy-($miny))/($ny-1)*($j-1))")
+
+ # print alphas
+ echo -n "$alpha0 $alpha1 "
+
+ # compute step and select the relevant lines
+ dat=$(numkondo -N 1 -F -I "0:$alpha0,1:$alpha1" "$config" | sed -r '/^[^01]/d;s/^[0-9]*://;s/,//' | tr '\n' ' ')
+ echo "$dat"
+ done
+done
diff --git a/figs/hierarchical_sd.fig/sd.mk b/figs/hierarchical_sd.fig/sd.mk
new file mode 100644
index 0000000..f0bd584
--- /dev/null
+++ b/figs/hierarchical_sd.fig/sd.mk
@@ -0,0 +1,81 @@
+#!fields
+x:100,110
+i:101,102,111,112
+h:400,410,420
+f:100,110,101,102,111,112
+a:400,410,420
+
+&
+#!preprocessor_variables
+psiAu1=[f100]+[f101],
+psiAu2=[f100]+[f102],
+psiAd1=[f110]+[f111],
+psiAd2=[f110]+[f112],
+
+psiAu1-=[f-100]+[f-101],
+psiAu2-=[f-100]+[f-102],
+psiAd1-=[f-110]+[f-111],
+psiAd2-=[f-110]+[f-112],
+
+A11=<<$psiAu1>*<$psiAd1->>+<<$psiAd1>*<$psiAu1->>,
+A12=<<$psiAu2>*<$psiAd2->>+<<$psiAd2>*<$psiAu2->>,
+
+A21=<<(-1)s{-1}>*<$psiAu1>*<$psiAd1->>+<<s{-1}>*<$psiAd1>*<$psiAu1->>,
+A22=<<(-1)s{-1}>*<$psiAu2>*<$psiAd2->>+<<s{-1}>*<$psiAd2>*<$psiAu2->>,
+
+A31=<<$psiAu1>*<$psiAu1->>+<<-1>*<$psiAd1>*<$psiAd1->>,
+A32=<<$psiAu2>*<$psiAu2->>+<<-1>*<$psiAd2>*<$psiAd2->>,
+
+AB1=<<$A11>*<[f400]>>+<<$A21>*<[f410]>>+<<$A31>*<[f420]>>,
+AA1=<<$A11>*<$A11>>+<<$A21>*<$A21>>+<<$A31>*<$A31>>,
+
+AB2=<<$A12>*<[f400]>>+<<$A22>*<[f410]>>+<<$A32>*<[f420]>>,
+AA2=<<$A12>*<$A12>>+<<$A22>*<$A22>>+<<$A32>*<$A32>>,
+
+
+A1=[f100][f-110] + [f110][f-100],
+A2=((-1)s{-1})[f100][f-110] + (s{-1})[f110][f-100],
+A3=[f100][f-100] + (-1)[f110][f-110],
+
+AB=<<$A1>*<[f400]>>+<<$A2>*<[f410]>>+<<$A3>*<[f420]>>,
+AA=<<$A1>*<$A1>>+<<$A2>*<$A2>>+<<$A3>*<$A3>>
+
+&
+#!identities
+[f400][f400]=(1),
+[f400][f410]=(s{-1})[f420],
+[f420][f410]=((-1)s{-1})[f400],
+[f410][f410]=(1),
+[f410][f420]=(s{-1})[f400],
+[f400][f420]=((-1)s{-1})[f410],
+[f420][f420]=(1),
+[f420][f400]=(s{-1})[f410],
+[f410][f400]=((-1)s{-1})[f420]
+
+&
+#!propagator
+101;102: 1 ,111;112: 1 ,
+102;101: -1 ,112;111: -1
+&
+#!input_polynomial
+<
+ <1>
+ + <<(1/2)[l0]>*<$AB1>>
+ + <<(1/2)[l1]>*<$AA1>>
+>*<
+ <1>
+ + <<(1/2)[l0]>*<$AB2>>
+ + <<(1/2)[l1]>*<$AA2>>
+>
+
+&
+
+#!id_table
+0: <$AB>,
+1: <2>*<$AA>
+
+&
+
+#!labels
+0:"at" ,
+1:"aa" ,
diff --git a/figs/hierarchical_sd.fig/sd_vector_field.gnuplot b/figs/hierarchical_sd.fig/sd_vector_field.gnuplot
new file mode 100644
index 0000000..9952d15
--- /dev/null
+++ b/figs/hierarchical_sd.fig/sd_vector_field.gnuplot
@@ -0,0 +1,25 @@
+set ylabel "$\\ell_1$" norotate
+set xlabel "$\\ell_0$"
+
+# default output canvas size: 12.5cm x 8.75cm
+set term lua tikz size 8,6 standalone
+
+unset key
+
+set pointsize 1
+
+# color functions
+
+rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
+color(x) = rgb(x*255, 0 , (1-x)*255)
+
+# get min/max
+set yrange [-1000:1000]
+stats "sd_vector_field.dat" u (log10(sqrt(($3-$1)**2+($4-$2)**2)))
+
+set xrange [-1:0.5]
+set yrange [-0.4:0.4]
+
+rescale=40
+
+plot "sd_vector_field.dat" u 1:2:(($3-$1)/sqrt(($3-$1)**2+($4-$2)**2)/rescale):(($4-$2)/sqrt(($3-$1)**2+($4-$2)**2)/rescale):(color((log10(sqrt(($3-$1)**2+($4-$2)**2))-STATS_min)/(STATS_max-STATS_min))) with vec filled head linecolor rgb variable
diff --git a/figs/lib/graphene.sty b/figs/lib/graphene.sty
new file mode 100644
index 0000000..4f044ae
--- /dev/null
+++ b/figs/lib/graphene.sty
@@ -0,0 +1,48 @@
+% sqrt(3)/2
+\def\sqrtThOT{0.866}
+% sqrt(3)
+\def\sqrtTh{1.732}
+% pi
+\def\pival{3.14159}
+
+% base vectorsj
+\def\Lo{(1.5,\sqrtThOT)}
+\def\Lt{(1.5,-\sqrtThOT)}
+\def\mLo{(-1.5,-\sqrtThOT)}
+\def\mLt{(-1.5,\sqrtThOT)}
+
+% filled square at #1 of side-length #2
+\def\fullsquare#1#2{\fill#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);}
+% in color
+\def\fullsquarecolor#1#2#3{\fill[color=#3]#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);}
+
+% type-a site at #1
+\def\asite#1{\fill#1circle(.1);}
+% in color
+\def\asitec#1#2{\fill[color=#2]#1circle(.1);}
+% type-b site at #1
+\def\bsite#1{\fullsquare{#1}{.1}}
+% in color
+\def\bsitec#1#2{\fullsquarecolor{#1}{.1}{#2}}
+
+% base cell with a site at #1
+\def\cell#1{
+ \draw#1--++(0:1);
+ \draw#1--++(120:1);
+ \draw#1--++(240:1);
+ \asite{#1}
+ \draw#1++(1,0)--++(0:-1);
+ \draw#1++(1,0)--++(120:-1);
+ \draw#1++(1,0)--++(240:-1);
+ \bsite{#1++(1,0)}
+}
+
+% grpahene grid at #1 of width #2 and height #3
+\def\graphene#1#2#3{
+ \foreach \i in {0,...,#2}{
+ \foreach \j in {0,...,#3}{
+ \cell{#1++(\i*3,-2*\j*\sqrtThOT)}
+ \cell{#1++(\i*3+1.5,\sqrtThOT-2*\j*\sqrtThOT)}
+ }
+ }
+}