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.
str = getKreuzerSkarke(23,17, Limit=>2) |
Now we parse this string, into a list of pairs of Strings.
L = parseKS str; |
netList L |
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.
eg = last L |
A = matrixFromString eg_1 |
The corresponding reflexive polytope has 5 vertices, the columns of this matrix.
needsPackage "Polyhedra" |
P = convexHull A |
isReflexive P |
P2 = polar P |
(numColumns vertices P, numColumns vertices P2) |
(# latticePoints P, # latticePoints P2) |