F-theory and orientifolds¶
F-theory uplifts of Calabi-Yau orientifolds.
This subpackage constructs O3/O7 orientifolds of Calabi-Yau hypersurfaces in toric
varieties (CY_orientifold) and their
F-theory uplifts, described as toric complete intersections
(F_Theory_Uplift). It also provides
functions to generate orientifolds and uplifts from the Kreuzer-Skarke database
(fetch_orientifolds,
fetch_F_Theory_uplifts) and to
read a precomputed dataset of nef-partition uplifts
(fetch_nef_partition_uplifts).
Modules:
-
FT_CY–Orientifolds of Calabi-Yau hypersurfaces and their F-theory uplifts.
-
Uplift_functions–Helper functions for Calabi-Yau orientifolds and their F-theory uplifts.
Classes:
-
CY_orientifold–O3/O7 orientifold of a Calabi-Yau hypersurface in a toric variety.
-
F_Theory_Uplift–F-theory uplift of an O3/O7 Calabi-Yau orientifold.
Functions:
-
fetch_F_Theory_uplifts–Yield F-theory uplifts of orientifolds of polytopes from the databases.
-
fetch_nef_partition_uplifts–Load precomputed F-theory uplifts that define nef partitions.
-
fetch_orientifolds–Yield orientifolds of Calabi-Yau hypersurfaces from the polytope databases.
CY_orientifold
¶
CY_orientifold(fan_polytope_or_points=None, xi=None, resolve_A1_singularities=True, construct_nef_decomposition=True)
O3/O7 orientifold of a Calabi-Yau hypersurface in a toric variety.
The orientifold involution \(\sigma\) is the toric \(\mathbb{Z}_2\) action given by the
torus element \(\xi/2\), where \(\xi\) is an integer vector in the lattice \(N\) of the
ambient fan. The quotient of the ambient variety by this action is a toric orbifold,
whose rays are the images of the original rays in the refined lattice
\(N + \mathbb{Z}\,\xi/2\), rescaled to be primitive. The orientifold is described by
this orbifold together with the O3/O7 line bundle \(L\) on it, whose generic section
cuts out the quotient \(B = X/\sigma\) of the Calabi-Yau hypersurface \(X\), i.e. the
base of the F-theory uplift (see
F_Theory_Uplift).
Toric rays are referred to by one-indexed labels, following the CYTools convention. Note that the orbifold rays need not be in the same order as the rays of the Calabi-Yau ambient fan.
Parameters:
-
fan_polytope_or_points(Polytope | VectorConfiguration | Fan | ArrayLike, default:None) –The toric data of the ambient variety of the Calabi-Yau hypersurface. If a
Polytopeis given, its nonzero lattice points (including the points interior to facets) are used as the rays. AVectorConfiguration, an array, or a list of lists specifies the rays directly. If aFanis given, its rays and cones define the ambient fan; otherwise, the fan is obtained by triangulating the rays (seeCY_ambient_toric_fan). -
xi(ArrayLike | None, default:None) –The integer vector \(\xi\) defining the \(\mathbb{Z}_2\) action. It can only be omitted if the input is a trilayer polytope, in which case it is set to minus the distinguished vertex whose GLSM charges are half of the anticanonical class.
-
resolve_A1_singularities(bool, default:True) –Whether to resolve the A1 singularities of the orbifold along codimension-two fixed loci by adding blowup rays. This only has an effect when the input is a
Fanand the orbifold fan was not replaced by the nef-decomposition refinement. -
construct_nef_decomposition(bool, default:True) –Whether to attempt, for regular orientifolds, to replace the orbifold fan by a refinement of the normal fan of the Newton polytopes of \(L\) and \(6(-K - L)\), where \(-K\) is the anticanonical divisor of the orbifold, so that these divisors become Cartier and nef. See
yields_nef_decomposition.
Raises:
-
ValueError–If
xiis not specified and the input is not a trilayer polytope. -
TypeError–If
fan_polytope_or_pointshas an unsupported type.
Examples:
We construct the orientifold of the degree-8 hypersurface in
\(\mathbb{P}_{11114}\). Its polytope is trilayer, so xi can be inferred.
>>> from cytools import Polytope
>>> from cytools.f_theory import CY_orientifold
>>> p = Polytope([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1],[-1,-1,-1,-4]])
>>> o = CY_orientifold(p)
>>> o.xi()
array([ 0, 0, 0, -1])
>>> o.is_regular()
True
>>> o.line_bundle()
array([0, 8, 0, 0, 0, 1])
>>> sorted(o.o_planes())
[(2,), (6,)]
Methods:
-
CY_ambient_toric_fan–Return the toric fan of the Calabi-Yau ambient variety, before orbifolding.
-
NHC–Return the toric divisors that support non-Higgsable clusters.
-
Newton_Polytope–Return the Newton polytope of the O3/O7 line bundle \(L\).
-
ambient_dim–Return the dimension of the lattice containing the orbifold rays.
-
dim–Return the dimension of the Calabi-Yau ambient variety.
-
intersection_numbers_orbifold–Return the intersection numbers of the orbifold ambient variety.
-
is_regular–Return whether the orientifold is regular.
-
line_bundle–Return the O3/O7 line bundle \(L\) on the orbifold ambient variety.
-
normal_fan–Return the normal fan used for the nef-decomposition construction.
-
o_planes–Return the ambient cones whose toric strata are fixed by \(\sigma\).
-
orbifold_toric_fan–Return the toric fan of the orbifold ambient variety.
-
polytope–Return the polytope used to construct the orientifold.
-
vectors_CY_ambient–Return the rays of the Calabi-Yau ambient fan, before orbifolding.
-
vectors_orbifold–Return the rays of the orbifold ambient fan.
-
xi–Return the vector \(\xi\) defining the \(\mathbb{Z}_2\) action.
-
yields_nef_decomposition–Return whether the orientifold data yields a Cartier and nef decomposition.
CY_ambient_toric_fan
¶
Return the toric fan of the Calabi-Yau ambient variety, before orbifolding.
If a Fan was given at construction, it is returned. Otherwise, the fan is
obtained on the first call by triangulating the vector configuration of the
ambient rays with the default settings of
VectorConfiguration.triangulate,
and cached.
Returns:
-
Fan–The fan of the Calabi-Yau ambient variety.
NHC
¶
Return the toric divisors that support non-Higgsable clusters.
These are the orbifold toric divisors along which the generic section of the divisor with coefficients \(2(1 - L_i)\), i.e. \(2(-K - L)\), vanishes to order exactly one. If the nef-decomposition refinement was applied at construction, they are instead determined there, as the divisors along which the generic section of \(6(-K - L)\) vanishes to order exactly three. The result is computed on first use and cached.
Parameters:
-
as_labels(bool, default:False) –Whether to return the one-indexed labels of the orbifold rays instead of the rays themselves.
Returns:
-
ndarray–The labels of the non-Higgsable-cluster divisors, or the corresponding orbifold rays, one per row. Empty if there are none.
Newton_Polytope
¶
Return the Newton polytope of the O3/O7 line bundle \(L\).
This is the polytope of monomial sections of \(L\) on the orbifold ambient variety. It is computed on first use and cached.
Returns:
-
HPolytope–The Newton polytope of \(L\).
ambient_dim
¶
Return the dimension of the lattice containing the orbifold rays.
Returns:
-
int–The number of coordinates of each orbifold ray.
dim
¶
Return the dimension of the Calabi-Yau ambient variety.
This is computed as the rank of the matrix of ambient rays, and it is also the dimension of the orbifold ambient variety.
Returns:
-
int–The dimension of the ambient variety.
intersection_numbers_orbifold
¶
Return the intersection numbers of the orbifold ambient variety.
They are computed with
Fan.intersection_numbers
on the first call and cached.
Returns:
is_regular
¶
Return whether the orientifold is regular.
The orientifold is regular if the Newton polytope of the Calabi-Yau hypersurface contains a monomial \(m\) with \(\langle m, \xi\rangle\) odd, so that the O3/O7 line bundle \(L\) is defined, and the generic section of \(L\) on the orbifold does not factorize, i.e. no toric coordinate divides all the sections of \(L\).
Returns:
-
bool–Whether the orientifold is regular.
line_bundle
¶
Return the O3/O7 line bundle \(L\) on the orbifold ambient variety.
The generic section of \(L\) cuts out the quotient of the Calabi-Yau hypersurface by the involution, i.e. the base of the F-theory uplift.
Returns:
-
ndarray | None–The coefficients of \(L\) in the basis of prime toric divisors, one per orbifold ray (see
vectors_orbifold).Noneif the line bundle could not be defined (seeis_regular).
normal_fan
¶
Return the normal fan used for the nef-decomposition construction.
This is the normal fan of the Minkowski sum of the Newton polytopes of \(L\) and \(6(-K - L)\), where \(-K\) is the anticanonical divisor of the orbifold. If the nef-decomposition refinement was applied at construction, the unrefined normal fan computed there is returned. Otherwise, it is computed on the first call and cached.
Returns:
-
Fan–The normal fan.
o_planes
¶
Return the ambient cones whose toric strata are fixed by \(\sigma\).
A cone of the Calabi-Yau ambient fan that is not maximal is included if the sum of its rays is congruent to \(\xi\) modulo 2. The corresponding toric strata are pointwise fixed by the \(\mathbb{Z}_2\) action, and their intersections with the Calabi-Yau hypersurface give the O-planes. The result is computed on the first call and cached.
Returns:
orbifold_toric_fan
¶
Return the toric fan of the orbifold ambient variety.
If the orientifold was constructed from a Fan (and the nef-decomposition
refinement was not applied), or if it does not yield a nef decomposition, the
cones of the Calabi-Yau ambient fan are used on the orbifold rays. Otherwise,
the fan is obtained from the normal fan (see normal_fan), which is made
simplicial and refined to include all orbifold rays. If A1 singularities were
resolved at construction, the refined fan is returned. The fan is computed on
the first call and cached.
Returns:
-
Fan–The fan of the orbifold ambient variety, whose rays are
vectors_orbifold().
polytope
¶
Return the polytope used to construct the orientifold.
Returns:
-
Polytope | None–The polytope given at construction, or
Noneif the orientifold was constructed from a fan, a vector configuration, an array, or a list of points.
vectors_CY_ambient
¶
vectors_orbifold
¶
Return the rays of the orbifold ambient fan.
These are the images of the Calabi-Yau ambient rays in the refined lattice, made primitive. If the nef-decomposition refinement was applied, they are instead the rays of the refined fan, and if A1 singularities were resolved, the blowup rays are appended at the end.
Parameters:
-
c(Iterable[int] | None, default:None) –One-indexed labels of the rays to return. If not specified, all rays are returned.
Returns:
-
ndarray–The selected rays, one per row.
xi
¶
yields_nef_decomposition
¶
Return whether the orientifold data yields a Cartier and nef decomposition.
This is always false for non-regular orientifolds. If the nef-decomposition
refinement was attempted at construction, this returns whether it succeeded.
Otherwise, the result is computed on the first call and cached: if the
orientifold was constructed from a Fan, it checks that \(L\) and
\(6(-K - L) - 3\sum_{i} D_i\), where the sum runs over the non-Higgsable-cluster
divisors (see NHC), are both Cartier and nef on the orbifold fan; otherwise,
it checks that all rays of normal_fan are among the orbifold rays.
Returns:
-
bool–Whether the orientifold yields a nef decomposition.
F_Theory_Uplift
¶
F_Theory_Uplift(orientifold_or_points=None, xi=None, resolve_A1_singularities=False, construct_nef_decomposition=True)
F-theory uplift of an O3/O7 Calabi-Yau orientifold.
The uplift is an elliptic fibration over the base \(B = X/\sigma\) of a
CY_orientifold, described as a complete
intersection of two equations in a toric variety whose dimension is two more than
that of the orbifold ambient variety: the base equation, a section of the O3/O7 line
bundle \(L\), and the Weierstrass equation in the \(\mathbb{P}^2_{231}\) fiber, of class
\(3D_x\). The singular uplift ambient fan has the rays \((v_i, 0, 1 - L_i)\) for the
orbifold rays \(v_i\), together with the fiber rays \(x = (0, 3, 1)\),
\(y = (0, -2, -1)\), and \(z = (0, 0, 1)\), so that the fiber is twisted by the
anticanonical class of the base. The fibration is then resolved over the
non-Higgsable clusters by adding two blowup rays for each non-Higgsable-cluster
divisor (see blowups).
The class gives access to the singular and resolved uplift ambient fans, the base
and Weierstrass divisors and, when these form a nef partition, the associated
Batyrev-Borisov data: Cayley polytopes, the dual nef partition, and the Hodge
numbers of the Calabi-Yau fourfold. Methods with the suffix _N refer to the nef
partition on the resolved uplift ambient variety (in the N lattice), and methods
with the suffix _M refer to the dual data in the M lattice. Toric rays are
referred to by one-indexed labels.
Parameters:
-
orientifold_or_points(CY_orientifold | Polytope | Fan | ArrayLike, default:None) –The orientifold to uplift, or toric data from which to construct one. Any input accepted by
CY_orientifold(including aVectorConfiguration) is allowed. -
xi(ArrayLike | None, default:None) –The integer vector defining the \(\mathbb{Z}_2\) action. Only used when toric data are given, in which case it can only be omitted for trilayer polytopes.
-
resolve_A1_singularities(bool, default:False) –Whether to resolve A1 singularities when constructing the orientifold from toric data. Note that, unlike for
CY_orientifold, this is disabled by default. -
construct_nef_decomposition(bool, default:True) –Whether to attempt to construct a Cartier and nef decomposition when constructing the orientifold from toric data.
Raises:
-
ValueError–If toric data are given without
xiand they are not a trilayer polytope. -
TypeError–If
orientifold_or_pointshas an unsupported type.
Examples:
We construct the F-theory uplift of the orientifold of the degree-8 hypersurface in \(\mathbb{P}_{11114}\), which is an elliptic fibration over \(\mathbb{P}^3\), and compute its Hodge numbers.
>>> from cytools import Polytope
>>> from cytools.f_theory import F_Theory_Uplift
>>> p = Polytope([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1],[-1,-1,-1,-4]])
>>> F = F_Theory_Uplift(p)
>>> F.is_nef_partition()
True
>>> F.h11(), F.h21(), F.h31()
(2, 0, 3878)
>>> F.chi()
23328
Methods:
-
CY_ambient_toric_fan–Return the toric fan of the Calabi-Yau ambient variety, before orbifolding.
-
Cayley_M–Return the Cayley polytope of the Weierstrass and base Newton polytopes.
-
Cayley_N–Return the Cayley polytope of the N-lattice polytopes of the partition.
-
M_conv_toric_fan–Return the toric fan over the M-lattice convex hull polytope.
-
NHC–Return the orbifold toric divisors that support non-Higgsable clusters.
-
NHC_singular_uplift–Return the singular uplift rays of the non-Higgsable-cluster divisors.
-
ambient_dim_base–Return the dimension of the lattice containing the orbifold rays.
-
basis_homology_M–Return a basis of toric divisors of
M_conv_toric_fan. -
basis_homology_N–Return a basis of toric divisors of the resolved uplift ambient fan.
-
blowups–Return the blowup rays over the non-Higgsable clusters.
-
chi–Return the Euler characteristic of the Calabi-Yau fourfold.
-
dim_base–Return the dimension of the ambient variety of the underlying orientifold.
-
divisor_intersection_M–Return the classes of curves cut out by the dual nef partition.
-
divisor_intersection_N–Return the classes of curves cut out by the base and Weierstrass divisors.
-
h11–Return the Hodge number \(h^{1,1}\) of the Calabi-Yau fourfold.
-
h21–Return the Hodge number \(h^{2,1}\) of the Calabi-Yau fourfold.
-
h31–Return the Hodge number \(h^{3,1}\) of the Calabi-Yau fourfold.
-
h31_trivial–Return the leading term of the formula for \(h^{3,1}\).
-
intersection_numbers_M_conv–Return the intersection numbers of the toric variety of
M_conv_toric_fan. -
intersection_numbers_orbifold–Return the intersection numbers of the orbifold ambient variety.
-
intersection_numbers_singular_uplift_ambient–Return the intersection numbers of the singular uplift ambient variety.
-
intersection_numbers_smooth_uplift_ambient–Return the intersection numbers of the resolved uplift ambient variety.
-
is_nef_decomposition–Return whether the base and Weierstrass divisors are Cartier and nef.
-
is_nef_partition–Return whether the base and Weierstrass divisors form a nef partition.
-
is_partition–Return whether the base and Weierstrass divisors form a partition.
-
is_regular–Return whether the underlying orientifold is regular.
-
line_bundle_base_M–Return the base part of the dual nef partition in the M lattice.
-
line_bundle_base_N–Return the base divisor on the resolved uplift ambient variety.
-
line_bundle_orbifold–Return the O3/O7 line bundle of the underlying orientifold.
-
line_bundle_weierstrass_M–Return the Weierstrass part of the dual nef partition in the M lattice.
-
line_bundle_weierstrass_N–Return the Weierstrass divisor on the resolved uplift ambient variety.
-
nef_partition_M–Return the dual nef partition of the rays of
M_conv_toric_fan. -
nef_partition_N–Return the nef partition of the rays of the resolved uplift ambient fan.
-
normal_fan–Return the normal fan used in the nef-decomposition construction.
-
orbifold_toric_fan–Return the toric fan of the orbifold ambient variety.
-
orientifold–Return the orientifold from which the F-theory uplift is constructed.
-
points_not_interior_to_codim_1_and_2_face_M–Return the points of
pol_M_conv()not interior to facets or codim-2 faces. -
points_not_interior_to_codim_1_and_2_face_N–Return the points of
pol_N_conv()not interior to facets or codim-2 faces. -
pol_B_M–Return the Newton polytope of the base divisor.
-
pol_B_N–Return the N-lattice polytope of the base part of the partition.
-
pol_M_conv–Return the convex hull of the base and Weierstrass Newton polytopes.
-
pol_M_sum–Return the Minkowski sum of the base and Weierstrass Newton polytopes.
-
pol_N_conv–Return the convex hull of the rays of the resolved uplift ambient fan.
-
pol_N_sum–Return the Minkowski sum of the N-lattice polytopes of the partition.
-
pol_W_M–Return the Newton polytope of the Weierstrass divisor.
-
pol_W_N–Return the N-lattice polytope of the Weierstrass part of the partition.
-
polytope–Return the polytope used to construct the underlying orientifold.
-
singular_uplift_ambient_toric_fan–Return the toric fan of the singular uplift ambient variety.
-
smooth_uplift_ambient_toric_fan–Return the toric fan of the resolved uplift ambient variety.
-
vectors_CY_ambient–Return the rays of the Calabi-Yau ambient fan of the underlying orientifold.
-
vectors_orbifold–Return the rays of the orbifold ambient fan of the underlying orientifold.
-
vectors_singular_uplift_ambient–Return the rays of the singular uplift ambient fan.
-
vectors_smooth_uplift_ambient–Return the rays of the resolved uplift ambient fan.
-
xi–Return the vector \(\xi\) defining the orientifold \(\mathbb{Z}_2\) action.
CY_ambient_toric_fan
¶
Return the toric fan of the Calabi-Yau ambient variety, before orbifolding.
See
CY_orientifold.CY_ambient_toric_fan.
Returns:
-
Fan–The fan of the Calabi-Yau ambient variety.
Cayley_M
¶
Return the Cayley polytope of the Weierstrass and base Newton polytopes.
This is the convex hull of the points \((m, 1, 0)\) for \(m\) in pol_W_M() and
\((m, 0, 1)\) for \(m\) in pol_B_M(). It is computed on the first call and cached.
A warning is issued if the uplift is not a nef partition.
Returns:
-
Polytope–The Cayley polytope in the M lattice.
Cayley_N
¶
Return the Cayley polytope of the N-lattice polytopes of the partition.
This is the convex hull of the points \((v, 1, 0)\) for \(v\) in pol_W_N() and
\((v, 0, 1)\) for \(v\) in pol_B_N(). It is computed on the first call and cached.
A warning is issued if the uplift is not a nef partition.
Returns:
-
Polytope–The Cayley polytope in the N lattice.
Raises:
-
ValueError–If the uplift is not a partition.
M_conv_toric_fan
¶
Return the toric fan over the M-lattice convex hull polytope.
Its rays are the nonzero points of
points_not_interior_to_codim_1_and_2_face_M, and it is obtained by
triangulating their vector configuration with the default settings. It is
computed on the first call and cached.
Returns:
-
Fan–The fan associated with
pol_M_conv().
Raises:
-
ValueError–If the uplift is not a partition.
NHC
¶
Return the orbifold toric divisors that support non-Higgsable clusters.
See CY_orientifold.NHC.
Parameters:
-
as_labels(bool, default:False) –Whether to return the one-indexed labels of the orbifold rays instead of the rays themselves.
Returns:
-
ndarray–The labels of the non-Higgsable-cluster divisors, or the corresponding orbifold rays, one per row.
NHC_singular_uplift
¶
Return the singular uplift rays of the non-Higgsable-cluster divisors.
Since the lifted orbifold rays come first in the singular uplift ambient fan,
their labels coincide with those returned by NHC.
Parameters:
-
as_labels(bool, default:False) –Whether to return the one-indexed labels of the rays instead of the rays themselves.
Returns:
-
ndarray | None–The labels of the rays, or the rays themselves, one per row. If
as_labelsis false and there are no non-Higgsable clusters,Noneis returned.
ambient_dim_base
¶
Return the dimension of the lattice containing the orbifold rays.
Returns:
-
int–The number of coordinates of each orbifold ray.
basis_homology_M
¶
Return a basis of toric divisors of M_conv_toric_fan.
The basis consists of the prime toric divisors whose rays are not in the first
smooth maximal cone found. Curve classes are expressed through their
intersection numbers with these divisors (see divisor_intersection_M). The
result is computed on the first call and cached.
Parameters:
-
as_LLL(bool, default:True) –Unused. Kept for backwards compatibility.
Returns:
-
ndarray–The one-indexed labels of the basis divisors.
Raises:
-
ValueError–If the uplift is not a partition, or if the fan has no smooth maximal cone.
basis_homology_N
¶
Return a basis of toric divisors of the resolved uplift ambient fan.
The basis consists of the prime toric divisors whose rays are not in the first
smooth maximal cone found. Curve classes are expressed through their
intersection numbers with these divisors (see divisor_intersection_N). The
result is computed on the first call and cached.
Parameters:
-
as_LLL(bool, default:True) –Unused. Kept for backwards compatibility.
Returns:
-
ndarray–The one-indexed labels of the basis divisors.
Raises:
-
ValueError–If the fan has no smooth maximal cone.
blowups
¶
Return the blowup rays over the non-Higgsable clusters.
For each non-Higgsable-cluster divisor with ray \(u\) in the singular uplift
ambient fan, the two rays \(u + x + 2y\) and \(2u + 2x + 3y\) are added, where \(x\)
and \(y\) are fiber rays (see vectors_singular_uplift_ambient). The rays are
computed on the first call and cached.
Parameters:
-
as_labels(bool, default:False) –Whether to return the one-indexed labels of the blowup rays in the resolved uplift ambient fan instead of the rays themselves.
Returns:
chi
¶
Return the Euler characteristic of the Calabi-Yau fourfold.
It is computed from the Hodge numbers as \(\chi = 48 + 6(h^{1,1} + h^{3,1} - h^{2,1})\) on the first call and cached.
Returns:
-
int–The Euler characteristic.
Raises:
-
ValueError–If the uplift is not a nef partition.
dim_base
¶
Return the dimension of the ambient variety of the underlying orientifold.
This is also the dimension of the orbifold ambient variety containing the base.
Returns:
-
int–The dimension of the orientifold ambient variety.
divisor_intersection_M
¶
Return the classes of curves cut out by the dual nef partition.
For each cone \(\sigma\) of M_conv_toric_fan of codimension three, the curve
obtained by intersecting the toric stratum of \(\sigma\) with the base and
Weierstrass divisors of the dual nef partition (see line_bundle_base_M and
line_bundle_weierstrass_M) is recorded through its intersection numbers with
the basis divisors given by basis_homology_M.
Parameters:
-
as_LLL(bool, default:True) –Whether to return an LLL-reduced basis of the lattice generated by these curve classes, with zero rows removed, instead of the classes of all the curves.
Returns:
-
ndarray–The curve classes, one per row, with one column per basis divisor.
Raises:
-
ValueError–If the uplift is not a nef partition.
divisor_intersection_N
¶
Return the classes of curves cut out by the base and Weierstrass divisors.
For each cone \(\sigma\) of smooth_uplift_ambient_toric_fan of codimension
three, the curve obtained by intersecting the toric stratum of \(\sigma\) with the
base and Weierstrass divisors (see line_bundle_base_N and
line_bundle_weierstrass_N) is recorded through its intersection numbers with
the basis divisors given by basis_homology_N.
Parameters:
-
as_LLL(bool, default:True) –Whether to return an LLL-reduced basis of the lattice generated by these curve classes, with zero rows removed, instead of the classes of all the curves.
Returns:
-
ndarray–The curve classes, one per row, with one column per basis divisor.
h11
¶
Return the Hodge number \(h^{1,1}\) of the Calabi-Yau fourfold.
It is computed with the Batyrev-Borisov formula for two-part nef partitions,
using Cayley_M and Cayley_N, on the first call and cached.
Returns:
-
int–The Hodge number \(h^{1,1}\).
Raises:
-
ValueError–If the uplift is not a nef partition.
h21
¶
Return the Hodge number \(h^{2,1}\) of the Calabi-Yau fourfold.
It is computed with the Batyrev-Borisov formula for two-part nef partitions,
using Cayley_M and Cayley_N, on the first call and cached.
Returns:
-
int–The Hodge number \(h^{2,1}\).
Raises:
-
ValueError–If the uplift is not a nef partition.
h31
¶
Return the Hodge number \(h^{3,1}\) of the Calabi-Yau fourfold.
It is computed with the Batyrev-Borisov formula for two-part nef partitions,
with the roles of Cayley_M and Cayley_N exchanged relative to h11, on the
first call and cached.
Returns:
-
int–The Hodge number \(h^{3,1}\).
Raises:
-
ValueError–If the uplift is not a nef partition.
h31_trivial
¶
Return the leading term of the formula for \(h^{3,1}\).
This is the number of lattice points of Cayley_M() minus the dimension of
Cayley_N() minus one, i.e. the formula used by h31 without its correction
terms. It is not the Hodge number itself.
Returns:
-
int–The leading term of \(h^{3,1}\).
Raises:
-
ValueError–If the uplift is not a partition.
intersection_numbers_M_conv
¶
Return the intersection numbers of the toric variety of M_conv_toric_fan.
They are computed on the first call and cached.
Parameters:
-
check(bool, default:True) –Unused. Kept for backwards compatibility.
Returns:
-
dict[tuple[int, ...], float]–The intersection numbers, keyed by sorted tuples of divisor labels. Labels are one-indexed ray labels, and the label 0 refers to the canonical divisor.
Raises:
-
ValueError–If the uplift is not a partition.
intersection_numbers_orbifold
¶
Return the intersection numbers of the orbifold ambient variety.
See
CY_orientifold.intersection_numbers_orbifold.
Returns:
intersection_numbers_singular_uplift_ambient
¶
Return the intersection numbers of the singular uplift ambient variety.
They are computed on the first call and cached.
Parameters:
-
check(bool, default:True) –Unused. Kept for backwards compatibility.
Returns:
intersection_numbers_smooth_uplift_ambient
¶
Return the intersection numbers of the resolved uplift ambient variety.
They are computed on the first call and cached.
Returns:
is_nef_decomposition
¶
Return whether the base and Weierstrass divisors are Cartier and nef.
If the underlying orientifold was constructed from a Fan (and the
nef-decomposition refinement was not applied), this checks that both divisors
are Cartier and nef on the resolved uplift ambient fan. Otherwise, it returns
CY_orientifold.yields_nef_decomposition.
The result is computed on the first call and cached.
Returns:
-
bool–Whether the uplift defines a nef decomposition.
is_nef_partition
¶
Return whether the base and Weierstrass divisors form a nef partition.
This is the case if they form a partition of the anticanonical divisor (see
is_partition) and a nef decomposition (see is_nef_decomposition). Uplifts of
non-regular orientifolds are never nef partitions. The result is computed on the
first call and cached.
Returns:
-
bool–Whether the uplift defines a nef partition.
is_partition
¶
Return whether the base and Weierstrass divisors form a partition.
This is the case if they are linearly equivalent to divisors of the form \(\sum_{i \in I_B} D_i\) and \(\sum_{i \in I_W} D_i\), where \(I_B\) and \(I_W\) are disjoint sets whose union contains all rays of the resolved uplift ambient fan, so that the two divisors sum to the anticanonical divisor. Uplifts of non-regular orientifolds are never partitions. The result is computed on the first call and cached.
Returns:
-
bool–Whether the uplift defines a partition.
is_regular
¶
Return whether the underlying orientifold is regular.
See
CY_orientifold.is_regular.
Returns:
-
bool–Whether the orientifold is regular.
line_bundle_base_M
¶
Return the base part of the dual nef partition in the M lattice.
This is the coefficient vector with one entry per ray of M_conv_toric_fan,
which is 1 for the rays that are lattice points of pol_B_M() and 0 otherwise.
It is computed on the first call and cached.
Returns:
-
ndarray–The coefficients of the base part.
Raises:
-
ValueError–If the uplift is not a nef partition.
line_bundle_base_N
¶
Return the base divisor on the resolved uplift ambient variety.
If the uplift is a partition (see is_partition), this is the representative
with coefficients 0 or 1 that, together with the Weierstrass divisor, partitions
the rays. Otherwise, it has the coefficients \(L_i\) on the orbifold rays and the
coefficients \(L_D\) and \(2L_D\) on the two blowup rays over each
non-Higgsable-cluster divisor \(D\). It is computed on the first call and cached.
Returns:
-
ndarray–The coefficients of the divisor, one per ray of
vectors_smooth_uplift_ambient().
line_bundle_orbifold
¶
Return the O3/O7 line bundle of the underlying orientifold.
See
CY_orientifold.line_bundle.
Returns:
-
ndarray | None–The coefficients of the line bundle, one per orbifold ray.
line_bundle_weierstrass_M
¶
Return the Weierstrass part of the dual nef partition in the M lattice.
This is the coefficient vector with one entry per ray of M_conv_toric_fan,
which is 1 for the rays that are lattice points of pol_W_M() and 0 otherwise.
It is computed on the first call and cached.
Returns:
-
ndarray–The coefficients of the Weierstrass part.
Raises:
-
ValueError–If the uplift is not a nef partition.
line_bundle_weierstrass_N
¶
Return the Weierstrass divisor on the resolved uplift ambient variety.
If the uplift is a partition (see is_partition), this is the representative
with coefficients 0 or 1 that, together with the base divisor, partitions the
rays. Otherwise, it is the anticanonical divisor minus the base divisor, which
is linearly equivalent to \(3D_x\). It is computed on the first call and cached.
Returns:
-
ndarray–The coefficients of the divisor, one per ray of
vectors_smooth_uplift_ambient().
nef_partition_M
¶
nef_partition_N
¶
normal_fan
¶
Return the normal fan used in the nef-decomposition construction.
See
CY_orientifold.normal_fan.
Returns:
-
Fan–The normal fan.
orbifold_toric_fan
¶
Return the toric fan of the orbifold ambient variety.
See
CY_orientifold.orbifold_toric_fan.
Returns:
-
Fan–The fan of the orbifold ambient variety.
orientifold
¶
Return the orientifold from which the F-theory uplift is constructed.
Returns:
-
CY_orientifold–The underlying orientifold.
points_not_interior_to_codim_1_and_2_face_M
¶
Return the points of pol_M_conv() not interior to facets or codim-2 faces.
The points interior to facets and to codimension-two faces are removed. The
remaining nonzero points are the rays of M_conv_toric_fan. The result is
computed on the first call and cached.
Returns:
-
ndarray–The selected lattice points, one per row, including the origin.
points_not_interior_to_codim_1_and_2_face_N
¶
Return the points of pol_N_conv() not interior to facets or codim-2 faces.
The points interior to facets and to codimension-two faces are removed. The result is computed on the first call and cached.
Returns:
-
ndarray–The selected lattice points, one per row, including the origin.
pol_B_M
¶
Return the Newton polytope of the base divisor.
This is the polytope of monomial sections of the base divisor (see
line_bundle_base_N) on the resolved uplift ambient variety. It is computed on
the first call and cached.
Returns:
-
HPolytope–The Newton polytope in the M lattice.
pol_B_N
¶
Return the N-lattice polytope of the base part of the partition.
This is the convex hull of the origin and the rays of the resolved uplift ambient fan whose coefficient in the base divisor is 1. It is computed on the first call and cached. A warning is issued if the uplift is not a nef partition.
Returns:
-
Polytope–The base polytope in the N lattice.
Raises:
-
ValueError–If the uplift is not a partition.
pol_M_conv
¶
Return the convex hull of the base and Weierstrass Newton polytopes.
For a nef partition, this is the dual of the Minkowski sum of the N-lattice
polytopes of the partition, and its lattice points give the rays of the fan
M_conv_toric_fan. It is computed on the first call and cached.
Returns:
-
Polytope–The convex hull of
pol_B_M()andpol_W_M().
pol_M_sum
¶
Return the Minkowski sum of the base and Weierstrass Newton polytopes.
It is computed on the first call and cached.
Returns:
-
Polytope–The Minkowski sum of
pol_B_M()andpol_W_M().
pol_N_conv
¶
Return the convex hull of the rays of the resolved uplift ambient fan.
For a partition, this is also the convex hull of pol_B_N() and pol_W_N(). It
is computed on the first call and cached.
Returns:
-
Polytope–The convex hull of
vectors_smooth_uplift_ambient().
pol_N_sum
¶
Return the Minkowski sum of the N-lattice polytopes of the partition.
It is computed on the first call and cached. A warning is issued if the uplift is not a nef partition.
Returns:
-
Polytope–The Minkowski sum of
pol_B_N()andpol_W_N().
Raises:
-
ValueError–If the uplift is not a partition.
pol_W_M
¶
Return the Newton polytope of the Weierstrass divisor.
This is the polytope of monomial sections of the Weierstrass divisor (see
line_bundle_weierstrass_N) on the resolved uplift ambient variety. It is
computed on the first call and cached.
Returns:
-
HPolytope–The Newton polytope in the M lattice.
pol_W_N
¶
Return the N-lattice polytope of the Weierstrass part of the partition.
This is the convex hull of the origin and the rays of the resolved uplift ambient fan whose coefficient in the Weierstrass divisor is 1. It is computed on the first call and cached. A warning is issued if the uplift is not a nef partition.
Returns:
-
Polytope–The Weierstrass polytope in the N lattice.
Raises:
-
ValueError–If the uplift is not a partition.
polytope
¶
Return the polytope used to construct the underlying orientifold.
Returns:
-
Polytope | None–The polytope, or
Noneif the orientifold was not constructed from a polytope.
singular_uplift_ambient_toric_fan
¶
Return the toric fan of the singular uplift ambient variety.
Each maximal cone of the orbifold fan is combined with each of the three two-dimensional cones \(\{x, y\}\), \(\{x, z\}\), and \(\{y, z\}\) of the fan of the \(\mathbb{P}^2_{231}\) fiber. The fan is computed on the first call and cached.
Returns:
-
Fan–The fan of the singular uplift ambient variety, whose rays are
vectors_singular_uplift_ambient().
smooth_uplift_ambient_toric_fan
¶
Return the toric fan of the resolved uplift ambient variety.
Starting from the singular uplift ambient fan (see
singular_uplift_ambient_toric_fan), for each non-Higgsable-cluster divisor
\(D\), every maximal cone that contains the rays of \(D\), \(x\), and \(y\) is replaced
by five cones involving the two blowup rays over \(D\) (see blowups). The fan is
computed on the first call and cached.
Returns:
-
Fan–The fan of the resolved uplift ambient variety, whose rays are
vectors_smooth_uplift_ambient().
vectors_CY_ambient
¶
vectors_orbifold
¶
Return the rays of the orbifold ambient fan of the underlying orientifold.
See
CY_orientifold.vectors_orbifold.
Parameters:
-
labels(Iterable[int] | None, default:None) –One-indexed labels of the rays to return. If not specified, all rays are returned.
Returns:
-
ndarray–The selected rays, one per row.
vectors_singular_uplift_ambient
¶
Return the rays of the singular uplift ambient fan.
These are the lifted orbifold rays \((v_i, 0, 1 - L_i)\), in the same order as
vectors_orbifold(), followed by the fiber rays \(x = (0, 3, 1)\),
\(y = (0, -2, -1)\), and \(z = (0, 0, 1)\). They are computed on the first call and
cached, and the fiber rays are also stored in the attributes x, y, and z.
Parameters:
-
labels(Iterable[int] | None, default:None) –One-indexed labels of the rays to return. If not specified, all rays are returned.
Returns:
-
ndarray–The selected rays, one per row.
vectors_smooth_uplift_ambient
¶
Return the rays of the resolved uplift ambient fan.
These are the rays of the singular uplift ambient fan (see
vectors_singular_uplift_ambient), followed by the two blowup rays over each
non-Higgsable-cluster divisor (see blowups). They are computed on the first
call and cached.
Parameters:
-
labels(Iterable[int] | None, default:None) –One-indexed labels of the rays to return. If not specified, all rays are returned.
Returns:
-
ndarray–The selected rays, one per row.
xi
¶
Return the vector \(\xi\) defining the orientifold \(\mathbb{Z}_2\) action.
Returns:
fetch_F_Theory_uplifts
¶
fetch_F_Theory_uplifts(only_regular=True, only_nef_partition=False, only_nef_decomposition=False, h11=None, h12=None, h13=None, h21=None, h22=None, h31=None, chi=None, lattice='N', dim=4, n_points=None, n_vertices=None, n_dual_points=None, n_facets=None, limit=1000, samples=None, sample_seed=None, timeout=60, as_list=True, backend=None, deterministic_glsm_basis=False, dualize=False, favorable=None, verbosity=0)
Yield F-theory uplifts of orientifolds of polytopes from the databases.
The orientifolds are obtained with
fetch_orientifolds, and the
corresponding F_Theory_Uplift objects
are yielded, optionally filtered.
Parameters:
-
only_regular(bool, default:True) –Whether to only use regular orientifolds. Ignored if
only_nef_partitionoronly_nef_decompositionis true, since these imply regularity. -
only_nef_partition(bool, default:False) –Whether to yield only uplifts that define a nef partition (see
F_Theory_Uplift.is_nef_partition). -
only_nef_decomposition(bool, default:False) –Whether to only use orientifolds that yield a nef decomposition. Ignored if
only_nef_partitionis true, since it is then implied. -
h11(int | None, default:None) –The Hodge number \(h^{1,1}\) of the Calabi-Yau hypersurface.
-
h12(int | None, default:None) –The Hodge number \(h^{1,2}\) of the Calabi-Yau hypersurface.
-
h13(int | None, default:None) –The Hodge number \(h^{1,3}\) of the Calabi-Yau hypersurface.
-
h21(int | None, default:None) –The Hodge number \(h^{2,1}\) of the Calabi-Yau hypersurface.
-
h22(int | None, default:None) –The Hodge number \(h^{2,2}\) of the Calabi-Yau hypersurface.
-
h31(int | None, default:None) –The Hodge number \(h^{3,1}\) of the Calabi-Yau hypersurface.
-
chi(int | None, default:None) –The Euler characteristic of the Calabi-Yau hypersurface.
-
lattice(str, default:'N') –The lattice in which the polytopes are defined, either
"N"or"M". -
dim(int, default:4) –The dimension of the polytopes.
-
n_points(int | None, default:None) –The number of lattice points of the polytopes.
-
n_vertices(int | None, default:None) –The number of vertices of the polytopes.
-
n_dual_points(int | None, default:None) –The number of lattice points of the dual polytopes.
-
n_facets(int | None, default:None) –The number of facets of the polytopes.
-
limit(int, default:1000) –The maximum number of polytopes to fetch. Each polytope can give several uplifts.
-
samples(int | None, default:None) –The number of polytopes to randomly sample from the fetched ones.
-
sample_seed(int | None, default:None) –The random seed used for sampling.
-
timeout(int, default:60) –The maximum number of seconds to wait for the server.
-
as_list(bool, default:True) –Whether to fetch all polytopes before constructing any uplifts, instead of fetching them lazily. Uplifts are yielded one at a time in either case.
-
backend(str | None, default:None) –The backend used for the
Polytopeobjects. -
deterministic_glsm_basis(bool, default:False) –Whether to fix the GLSM bases of the polytopes in a deterministic manner.
-
dualize(bool, default:False) –Whether to dualize the polytopes before using them.
-
favorable(bool | None, default:None) –If true or false, only use favorable or non-favorable polytopes, respectively. If not specified, both are used.
-
verbosity(int, default:0) –The verbosity level.
Yields:
-
F_Theory_Uplift–The F-theory uplifts satisfying the requested conditions.
Examples:
We compute the Hodge numbers of the uplifts with nef partitions obtained from polytopes with \(h^{1,1}=2\).
fetch_nef_partition_uplifts
¶
fetch_nef_partition_uplifts(h11=None, h21=None, limit=100, repo_id='jakobmoritz/F-theory_Uplifts_Nef-partitions', index_path=None, local_base=None, columns=None, as_pandas=True)
Load precomputed F-theory uplifts that define nef partitions.
The data are read from an indexed parquet dataset, by default
jakobmoritz/F-theory_Uplifts_Nef-partitions
on the Hugging Face Hub, or from a local copy of it. The small index file
index/hodge_index.parquet is used to find the parquet files and row groups
containing the rows with the requested Hodge numbers, so that only those are read.
The rows are returned in order of increasing h11 and h21. Reading from the
Hugging Face Hub requires network access and the huggingface_hub package.
Parameters:
-
h11(int | None, default:None) –The value of the
h11column (the Hodge number \(h^{1,1}\)) of the rows to return. If not specified, it is not restricted. -
h21(int | None, default:None) –The value of the
h21column (the Hodge number \(h^{2,1}\)) of the rows to return. If not specified, it is not restricted. -
limit(int | None, default:100) –The maximum number of rows to return. If
None, all matching rows are returned. -
repo_id(str, default:'jakobmoritz/F-theory_Uplifts_Nef-partitions') –The Hugging Face dataset repository to read from. Only used if
local_baseis not specified. -
index_path(str | Path | None, default:None) –The path to the index file. If not specified, it is
index/hodge_index.parquetinside the dataset. -
local_base(str | Path | None, default:None) –A local directory containing the dataset, with the index file and the parquet files at the paths recorded in the index. If not specified, the data are read from the Hugging Face Hub.
-
columns(list[str] | None, default:None) –The columns to read. If not specified, all columns are read.
-
as_pandas(bool, default:True) –Whether to return a pandas
DataFrameinstead of a pyarrowTable.
Returns:
-
DataFrame | Table–The matching rows. If there are none, or if
limitis not positive, an empty table with no columns is returned.
Raises:
-
ValueError–If neither
h11norh21is specified, or if the index has norow_groupcolumn.
Examples:
We load the first ten uplifts with \(h^{1,1}=2\).
fetch_orientifolds
¶
fetch_orientifolds(only_regular=True, only_nef_decomposition=False, h11=None, h12=None, h13=None, h21=None, h22=None, h31=None, chi=None, lattice='N', dim=4, n_points=None, n_vertices=None, n_dual_points=None, n_facets=None, limit=1000, samples=None, sample_seed=None, timeout=60, as_list=True, backend=None, deterministic_glsm_basis=False, dualize=False, favorable=None, verbosity=0)
Yield orientifolds of Calabi-Yau hypersurfaces from the polytope databases.
For each polytope returned by fetch_polytopes,
the \(\mathbb{Z}_2\) actions \(\xi/2\), with \(\xi\) a nonzero vector with entries 0 or 1,
are enumerated up to the automorphisms of the polytope, and the corresponding
CY_orientifold objects are constructed
with the default settings and yielded, optionally filtered.
Parameters:
-
only_regular(bool, default:True) –Whether to yield only regular orientifolds (see
CY_orientifold.is_regular). -
only_nef_decomposition(bool, default:False) –Whether to yield only orientifolds that yield a nef decomposition (see
CY_orientifold.yields_nef_decomposition). These are always regular, soonly_regularis ignored in this case. -
h11(int | None, default:None) –The Hodge number \(h^{1,1}\) of the Calabi-Yau hypersurface.
-
h12(int | None, default:None) –The Hodge number \(h^{1,2}\) of the Calabi-Yau hypersurface.
-
h13(int | None, default:None) –The Hodge number \(h^{1,3}\) of the Calabi-Yau hypersurface.
-
h21(int | None, default:None) –The Hodge number \(h^{2,1}\) of the Calabi-Yau hypersurface.
-
h22(int | None, default:None) –The Hodge number \(h^{2,2}\) of the Calabi-Yau hypersurface.
-
h31(int | None, default:None) –The Hodge number \(h^{3,1}\) of the Calabi-Yau hypersurface.
-
chi(int | None, default:None) –The Euler characteristic of the Calabi-Yau hypersurface.
-
lattice(str, default:'N') –The lattice in which the polytopes are defined, either
"N"or"M". -
dim(int, default:4) –The dimension of the polytopes.
-
n_points(int | None, default:None) –The number of lattice points of the polytopes.
-
n_vertices(int | None, default:None) –The number of vertices of the polytopes.
-
n_dual_points(int | None, default:None) –The number of lattice points of the dual polytopes.
-
n_facets(int | None, default:None) –The number of facets of the polytopes.
-
limit(int, default:1000) –The maximum number of polytopes to fetch. Each polytope can give several orientifolds.
-
samples(int | None, default:None) –The number of polytopes to randomly sample from the fetched ones.
-
sample_seed(int | None, default:None) –The random seed used for sampling.
-
timeout(int, default:60) –The maximum number of seconds to wait for the server.
-
as_list(bool, default:True) –Whether to fetch all polytopes before constructing any orientifolds, instead of fetching them lazily. Orientifolds are yielded one at a time in either case.
-
backend(str | None, default:None) –The backend used for the
Polytopeobjects. -
deterministic_glsm_basis(bool, default:False) –Whether to fix the GLSM bases of the polytopes in a deterministic manner.
-
dualize(bool, default:False) –Whether to dualize the polytopes before using them.
-
favorable(bool | None, default:None) –If true or false, only use favorable or non-favorable polytopes, respectively. If not specified, both are used.
-
verbosity(int, default:0) –The verbosity level.
Yields:
-
CY_orientifold–The orientifolds satisfying the requested conditions.
Examples:
We iterate over the regular orientifolds of polytopes with \(h^{1,1}=2\).