We make a triangulation of a reflexive polytope which is fine, regular, and star. However, we get a RuntimeError when we get the associated CalabiYau and ask for its intersection numbers, and then if we compute intersection numbers with the fan and use a Kähler form which gives positive curve volumes, one of the divisor volumes is negative.
from cytools import Polytope
import numpy as np
pts = [[0, 0, 0, 0],
[1, -1, 0, 0],
[-1, -1, 1, 1],
[-1, 2, -1, -1],
[-1, -1, 0, 2],
[-1, -1, 0, 1],
[-1, 3, 0, -1],
[0, -1, 0, 1],
[-1, 1, 0, 0],
[-1, 0, 0, 1]]
simps = [[0, 1, 2, 3, 5],
[0, 1, 2, 3, 6],
[0, 1, 2, 5, 7],
[0, 1, 2, 6, 7],
[0, 1, 3, 5, 7],
[0, 1, 3, 6, 7],
[0, 2, 3, 4, 5],
[0, 2, 3, 4, 6],
[0, 2, 4, 5, 7],
[0, 2, 4, 6, 7],
[0, 3, 4, 5, 7],
[0, 3, 4, 6, 7]]
poly = Polytope(points=pts, labels=[x for x in range(len(pts))])
assert poly.h11(lattice="N") == 3
assert poly.is_reflexive()
assert poly.is_favorable(lattice="N")
triang = poly.triangulate(simplices=simps)
assert triang.is_fine()
assert triang.is_star()
assert triang.is_regular()
cy = triang.get_cy()
try:
cy.intersection_numbers()
except RuntimeError:
print("Runtime Error Occurred")
kcone = cy.toric_kahler_cone()
tip = kcone.tip_of_stretched_cone(1)
glsm = cy.glsm_charge_matrix()
heights = np.array([0, 2, 0, 0, -1, 0, 0, 0])
dude = poly.triangulate(heights=heights)
print(dude.simplices())
print(dude.points())
assert np.linalg.norm(glsm @ heights - tip) < 1e-7
tv = cy.ambient_variety()
mcone = tv.mori_cone()
print(mcone.rays() @ heights)
print()
print(mcone.rays())
assert min(cy.compute_curve_volumes(tip)) > 0
assert min(cy.compute_divisor_volumes(tip)) > 0 #AssertionError
We make a triangulation of a reflexive polytope which is fine, regular, and star. However, we get a
RuntimeErrorwhen we get the associated CalabiYau and ask for its intersection numbers, and then if we compute intersection numbers with thefanand use a Kähler form which gives positive curve volumes, one of the divisor volumes is negative.