/causets

Causal set quantum cosmology

Primary LanguageCuda

Causal Set Generator

Overview

This repository contains the CausalSet software package. This software is intended to be used to generate and study causal sets from both the quantum gravity and random geometric graph perspectives. Source code is in the src and inc directories, with the main method located at the top of src/Causet.cu. All data structures are defined in inc/Causet.h and inc/Spacetime.h. Causal set initialization and construction methods are in src/NetworkCreator.cu and src/NetworkCreator_GPU.cu. Lower-level algorithms and mathematical functions are respectively found in src/Subroutines.cu and inc/Operations.h. Certain specific mathematical functions have earned a place in their own files, such as inc/Coordinates.h for element coordinate sampling and inc/Geodesics.h for (continuum) geodesic distance calculations. The file src/Validate.cu contains alternate implementations of certain functions along with useful printing methods for debugging. The etc directory contains some python scripts which are useful for analyzing the output files generated by the CausalSet binary.

Compilation and Installation

Preparation

  1. Ensure your gcc/g++ version is at least 4.8.1.
  2. Ensure you have Boost version 1.55.0 or newer.
  3. Ensure you have GSL version 1.13 or newer.
  4. If your CPU supports AVX2 instructions, ensure your assembler version is 2.24 or newer.
  5. If you want to use a GPU, ensure it is from NVIDIA and has a compute capability of at least 3.0. Then, update CUDA_ARCH in the file .causet.
  6. If you are using MPI, it must be Platform MPI
  7. Install the FastMath library, which can be found on Bitbucket.
  8. Export the environment variable PLATFORM=$HOST. If you are running on a cluster, set PLATFORM to equal the name of the queue.

Installation

cp .causet $HOME
sh ./bootstrap.sh
./configure (--enable-cuda --enable-mpi) --prefix=install_dir
make
make install

Cleanup

This will remove all files created during installation:
make distclean

Usage

To see a full set of supported flags, execute
./bin/CausalSet_$PLATFORM --help

To create a causal set sprinkled into de Sitter:
./bin/CausalSet_$PLATFORM --type rgg --stdim 2 --manifold De_Sitter --region Slab --curvature Positive --symmetry None --nodes 2048 --age 0.5 --link --action smeared --print --print-edges --verbose

To study antichains in a previously generated causal set:
graphs=($(awk '{print $1}' $CAUSET_HOME/etc/data_keys.cset.key))
./bin/CausalSet_$PLATFORM --graph ${graphs[0]} --type rgg --stdim 2 --manifold De_Sitter --region Slab --curvature Positive --symmetry None --nodes 2048 --age 0.5 --link --nopos --antichain --print --verbose

Supported Causal Sets

  1. Random Partial Orders
  2. Kleitman-Rothschild Partial Orders
  3. Random Geometric Graphs (Geometric Sprinklings), determined by a. Spacetime Dimension (2,3,4,5) b. Manifold (Minkowski, de Sitter, etc.) c. Bounding Region (Slab, Diamond, etc.) d. Spatial Curvature (Flat, Positive, Negative) e. Symmetries (Temporal: t=[-t0,t0]; None: t=[0,t0])

A complete list of RGG spacetimes may be viewed at the end of the file VERSION. This file may be updated by using the bash script etc/spacetimes.

Measuring Properties

The C code lets you measure the following:

  1. Graph clustering coefficients (local prescription)
  2. Number and size of connected components
  3. Success ratio and/or stretch using greedy routing
  4. Smeared and local Benincasa-Dowker action
  5. Chain lengths and causet height
  6. Maximal antichain widths
  7. Hub density
  8. Geodesic distances (in the continuum)
  9. Timelike and spacelike partitions
  10. Myrheim-Meyer dimension
  11. Entanglement entropy (COMING SOON)
  12. Generate a Markov chain using Metropolis sampling
  13. Timelike boundary geometry (under revision)

In addition, the Python code can measure

  1. The action, provided a list of interval abundances
  2. The mean clustering and clustering distribution
  3. The distribution of connected components
  4. The mean degree and degree distribution
  5. The mean number of geodesically disconnected pairs of elements
  6. The mean time of the earliest element, used to study sampling accuracy
  7. The mean number of elements
  8. The mean stretch and success ratio

Maintenance

Contact wjcunningham7@gmail.com to report bugs or get help.

© Will Cunningham 2013-2020