danbetea / RandomTilings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Random Tilings with the GPU

Here is an C++/OpenCL library for generating random tilings efficiently with Markov Chain Monte Carlo on the GPU. See the companion paper [1] for further details. At the moment, the library supports domino tilings, lozenge tilings, bibone tilings (dimers on the triangular lattice), rectangle-triangle tilings, and the six vertex model. The program also includes utility functions for constructing domains, maximal/minimal tilings, height functions, Maya diagrams/lattice paths/other representations, and for drawing pictures with Scalable Vector Graphics.

Building and Running

Prerequisites

In order to build and run the program, you will need the following:

Compiling the examples

A sample makefile is included in the root directory, and a set minimal example tiling programs are in the folder /Examples to get you started. To build an example, e.g. MinimalDomino example, run from the root directory:

make MinimalDominoEx

Running the compiled program will write its output to the folder Examples/ExampleOuts/MinimalDomino/.

Usage

For details on how to specify domains/tilings and run the simulation, please see the comments in the header file for each model, along with the example programs in src/examples.

Comments/Questions?

We would be happy to hear any comments or questions! Please email David (dkeating@berkeley.edu) or Ananth (asridhar@berkeley.edu).

License

This project is licensed under the MIT License - see the LICENSE file for details

More Information

[1] D. Keating, A. Sridhar. "Random Tilings with the GPU." https://arxiv.org/pdf/1804.07250.pdf

About

License:MIT License


Languages

Language:C++ 71.5%Language:C 27.1%Language:Makefile 1.4%