A series of lectures given on 21-22 June 2017 at Making Quantum Gravity Computable, Perimeter Institute, Canada.
Slides | Video recording | |
---|---|---|
Part I: Random geometry in 2D | mcdt-part1.pdf | pirsa.org/17060075, pirsa.org/17060076. |
Part II: Higher dimensions | mcdt-part2.pdf | pirsa.org/17060082, pirsa.org/17060083. |
Tutorial sessions | Description of the models | pirsa.org/17060079, pirsa.org/17060086. |
The goal of the tutorial sessions is to gain some experience in: handling random two-dimensional geometries, performing measurements, and extracting critical exponents from data analysis.
To this end I provide a computer program randgeom
that produces random planar maps on demand subject to several parameters.
randgeom
The simplest way to get the program running is to download one of the precompiled executables. Simply right-click the link next to your operating system and select Save as... You may need to set execution permissions (chmod u=rxw randgeom
on Linux/OSX).
OS | Executable | MD5 checksum |
---|---|---|
Linux | randgeom | eb2200d159f5b57be28862c1ece1b56d |
OSX | randgeom | 53149d6b8b96afe23d121d129039d48e |
Windows (32bit) | randgeom.exe | 71ed82188a7f8a78d6b802e2d49a7441 |
Alternatively you may compile the c++ source yourself (tested with GNU c++ compiler only). Download source.tar.gz or source.zip and extract all files. Then run the following command (or similar) in the directory to which the files were extracted.
g++ main.cpp -I. -O2 -o randgeom
randgeom
randgeom
takes three parameters:
-t
followed by A, B, C, or D: the requested model type. -s
followed by positive integer S: the requested size S of the planar map measured by number of faces. -n
followed by positive integer N: the number N of independent configurations to be returned. The following returns a single random planar map sampled from model A with 4 faces.
$ ./randgeom -tA -s4 -n1 {{{7,15,2},{16,4,1},{8,6,4},{2,14,3},{6,8,6},{3,5,5},{9,1,8},{5,3,7},{15,7,10},{11,13,9},{12,10,12}, {13,11,11},{10,12,14},{4,16,13},{1,9,16},{14,2,15}}}The output is formatted as a Mathematica-style nested list of length N, one entry per configuration. Each configuration corresponds to a list of triples of integers describing a planar map through permutations: the
i
'th triple corresponds to {n(i),n-1(i),a(i)}
, where n
and a
are the ``next'' and ``adjacent'' permutations (see lecture slides).
The output above corresponds to the following quadrangulation displayed both as a gluing prescription and as a planar map.
In case you prefer to read the output from a different program than Mathematica, you may prefer to receive the data as a space-separated list. To this end one may use the option --spaceseparated
:
$ ./randgeom -tA -s2 -n2 --spaceseparated 2 8 3 7 2 8 4 1 5 1 4 2 6 3 7 3 6 4 8 5 1 5 8 6 2 7 8 5 8 2 6 4 1 4 6 4 2 3 3 7 1 6 3 2 5 8 5 8 1 7 7The output is structured as follows: the first line contains the number N of configurations. Then for each configuration a line with the number H of half-edges, followed by H lines with triples of integers corresponding to
n(i)
, n-1(i)
and a(i)
respectively.
randgeom
with MathematicaI have prepared an example notebook to read the output of randgeom
to perform various manipulations. It also contains pointers on how to measure the three types of observables we discussed in the lecture.
example-analysis.nb
example-analysis.txt (in case your (older) Mathematica has trouble reading the notebook)
randgeom
from a c++ program
For those who wish to use c++ to perform measurements, I have prepared a minimal working example to execute randgeom
and read output data (tested on Linux only): example-import.cpp.