next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
ReflexivePolytopesDB :: ReflexivePolytopesDB

ReflexivePolytopesDB -- simple access to Kreuzer-Skarke database of reflexive polytopes of dimensions 3 and 4

Description

In each given dimension d, it is known that the number of distinct (up to invertible integral change of basis) reflexive polytopes of dimension d is finite in number. For example, in dimension 1 there is 1, in dimension 2, there are 16 and in dimension 3, there are 4319 distinct refdlexive polytopes.

In a major work, Max Kreuzer and Harold Skarke found algorithms for computing the set of such polytopes. They used these algorithms to show that there are 473,800,776 distinct 4-dimensional reflexive polytopes. The number is sufficiently large that they created a website http://hep.itp.tuwien.ac.at/~kreuzer/CY/ and an interface to access these examples. See their website for references to the algorithms used.

This package, ReflexivePolytopesDB, provides access to this database of reflexive polytopes of dimension 3 and dimension 4.

This package also contains a small part of this database for offline use, in case one cannot access the database.

Here we describe a simple use of the package. The actual investigation of the corresponding polytope or toric variety, or Calabi-Yau hypersurface, is done in Macaulay2 with the aid of other packages, such as Polyhedra.

Let’s take one example polytope from the database, one whose corresponding Calabi-Yau 3-fold has Hodge numbers h1,1(X) = 23 and h1,2(X) = 17. We limit the number we obtain to 2.

i1 : str = getKreuzerSkarke(23,17, Limit=>2)
http://quark.itp.tuwien.ac.at/cgi-bin/cy/cydata.cgi?h11=23&h12=17&L=2

o1 = <head><title>SEARCH RESULTS</title></head>
     <body><pre><b>Search command:</b>
     class.x -di x -He EH23:17MVNFL2

     <b>Result:</b>
     4 5  M:18 5 N:22 5 H:23,17 [12]
         1    0    1    1   -4
         0    1    0    0   -1
         0    0    3    0   -3
         0    0    0    3   -3
     4 6  M:22 6 N:24 7 H:23,17 [12]
         1    0   -3    1    1   -1
         0    1   -2    0    0    2
         0    0    0    2    0   -2
         0    0    0    0    2   -2
     Exceeded limit of 2
     </pre></body>

Now we parse this string, into a list of pairs of Strings.

i2 : L = parseKS str;
i3 : netList L

     +-----------------------------------------------------------------+
o3 = |(4 5  M:18 5 N:22 5 H:23,17 [12],     1    0    1    1   -4)     |
     |                                      0    1    0    0   -1      |
     |                                      0    0    3    0   -3      |
     |                                      0    0    0    3   -3      |
     +-----------------------------------------------------------------+
     |(4 6  M:22 6 N:24 7 H:23,17 [12],     1    0   -3    1    1   -1)|
     |                                      0    1   -2    0    0    2 |
     |                                      0    0    0    2    0   -2 |
     |                                      0    0    0    0    2   -2 |
     +-----------------------------------------------------------------+

The result consists of lists of two strings. For each element in the list, the first is a header string, see Kreuzer-Skarke headers. The second is a string that corresponds to a matrix.

Let’s consider the last example in this last. We get that matrix via the utility function matrixFromString.

i4 : eg = last L

o4 = (4 6  M:22 6 N:24 7 H:23,17 [12],     1    0   -3    1    1   -1)
                                           0    1   -2    0    0    2
                                           0    0    0    2    0   -2
                                           0    0    0    0    2   -2

o4 : Sequence
i5 : A = matrixFromString eg_1

o5 = | 1 0 -3 1 1 -1 |
     | 0 1 -2 0 0 2  |
     | 0 0 0  2 0 -2 |
     | 0 0 0  0 2 -2 |

              4        6
o5 : Matrix ZZ  <--- ZZ

The corresponding reflexive polytope has 5 vertices, the columns of this matrix.

i6 : needsPackage "Polyhedra"

o6 = Polyhedra

o6 : Package
i7 : P = convexHull A

o7 = P

o7 : Polyhedron
i8 : isReflexive P

o8 = true
i9 : P2 = polar P

o9 = P2

o9 : Polyhedron
i10 : (numColumns vertices P, numColumns vertices P2)

o10 = (6, 7)

o10 : Sequence
i11 : (# latticePoints P, # latticePoints P2)

o11 = (22, 24)

o11 : Sequence

Author

Version

This documentation describes version 0.9 of ReflexivePolytopesDB.

Source code

The source code from which this documentation is derived is in the file ReflexivePolytopesDB.m2. The auxiliary files accompanying it are in the directory ReflexivePolytopesDB/.

Exports

  • Functions and commands
    • generateOffline -- generate tables of reflexive 4d poytopes from Kreuzer-Skarke list
    • getKreuzerSkarke -- access Kreuzer-Skarke dim 4 reflexive polytopes database
    • getKreuzerSkarkeDim3 -- download Kreuzer-Skarke dim 3 reflexive polytopes database of 4319 examples
    • matrixFromString -- convert a string to a matrix of integers
    • parseKS -- parse values from Kreuzer-Skarke database
  • Symbols
    • Access (missing documentation)
    • DualLatticePoints (missing documentation)
    • Expected (missing documentation)
    • Facets (missing documentation)
    • H12 (missing documentation)
    • LatticePoints (missing documentation)
    • Vertices (missing documentation)