Skip to content

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:

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 Polytope is given, its nonzero lattice points (including the points interior to facets) are used as the rays. A VectorConfiguration, an array, or a list of lists specifies the rays directly. If a Fan is given, its rays and cones define the ambient fan; otherwise, the fan is obtained by triangulating the rays (see CY_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 Fan and 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 xi is not specified and the input is not a trilayer polytope.

  • TypeError –

    If fan_polytope_or_points has 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

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

NHC(as_labels=False)

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

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

ambient_dim()

Return the dimension of the lattice containing the orbifold rays.

Returns:

  • int –

    The number of coordinates of each orbifold ray.

dim

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

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:

  • dict[tuple[int, ...], float] –

    The intersection numbers, keyed by sorted tuples of divisor labels. Labels are one-indexed orbifold ray labels, and the label 0 refers to the canonical divisor.

is_regular

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

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). None if the line bundle could not be defined (see is_regular).

normal_fan

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

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:

  • list[tuple[int, ...]] –

    The fixed cones, as tuples of one-indexed ray labels of the Calabi-Yau ambient fan, in no particular order.

orbifold_toric_fan

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

polytope()

Return the polytope used to construct the orientifold.

Returns:

  • Polytope | None –

    The polytope given at construction, or None if the orientifold was constructed from a fan, a vector configuration, an array, or a list of points.

vectors_CY_ambient

vectors_CY_ambient(c=None)

Return the rays of the Calabi-Yau ambient fan, before orbifolding.

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.

vectors_orbifold

vectors_orbifold(c=None)

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

xi()

Return the vector \(\xi\) defining the \(\mathbb{Z}_2\) action.

Returns:

  • ndarray | list –

    The vector \(\xi\), as given at construction or inferred from a trilayer polytope. The involution is the torus element \(\xi/2\).

yields_nef_decomposition

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 a VectorConfiguration) 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 xi and they are not a trilayer polytope.

  • TypeError –

    If orientifold_or_points has 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

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

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

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

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

NHC(as_labels=False)

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

NHC_singular_uplift(as_labels=False)

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_labels is false and there are no non-Higgsable clusters, None is returned.

ambient_dim_base

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

basis_homology_M(as_LLL=True)

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

basis_homology_N(as_LLL=True)

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

blowups(as_labels=False)

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:

  • list[ndarray] | ndarray –

    A list with one array per non-Higgsable-cluster divisor, containing its two blowup rays as rows. If as_labels is true, a 1D array of labels instead.

chi

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

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

divisor_intersection_M(as_LLL=True)

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

divisor_intersection_N(as_LLL=True)

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

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

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

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

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

intersection_numbers_M_conv(check=True)

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

intersection_numbers_orbifold()

Return the intersection numbers of the orbifold ambient variety.

See CY_orientifold.intersection_numbers_orbifold.

Returns:

  • dict[tuple[int, ...], float] –

    The intersection numbers, keyed by sorted tuples of divisor labels.

intersection_numbers_singular_uplift_ambient

intersection_numbers_singular_uplift_ambient(check=True)

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:

  • 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.

intersection_numbers_smooth_uplift_ambient

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:

  • 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.

is_nef_decomposition

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

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

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

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

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

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

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

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

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_M()

Return the dual nef partition of the rays of M_conv_toric_fan.

Returns:

  • tuple[tuple[int, ...], tuple[int, ...]] –

    The one-indexed labels of the rays in the base part and in the Weierstrass part, respectively. Both tuples are empty if the uplift is not a nef partition.

nef_partition_N

nef_partition_N()

Return the nef partition of the rays of the resolved uplift ambient fan.

Returns:

  • tuple[tuple[int, ...], tuple[int, ...]] –

    The one-indexed labels of the rays in the base part and in the Weierstrass part, respectively. Both tuples are empty if the uplift is not a nef partition.

normal_fan

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

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

orientifold()

Return the orientifold from which the F-theory uplift is constructed.

Returns:

points_not_interior_to_codim_1_and_2_face_M

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

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

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

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

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() and pol_W_M().

pol_M_sum

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() and pol_W_M().

pol_N_conv

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

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() and pol_W_N().

Raises:

  • ValueError –

    If the uplift is not a partition.

pol_W_M

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

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

polytope()

Return the polytope used to construct the underlying orientifold.

Returns:

  • Polytope | None –

    The polytope, or None if the orientifold was not constructed from a polytope.

singular_uplift_ambient_toric_fan

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

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_CY_ambient(labels=None)

Return the rays of the Calabi-Yau ambient fan of the underlying orientifold.

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_orbifold

vectors_orbifold(labels=None)

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

vectors_singular_uplift_ambient(labels=None)

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

vectors_smooth_uplift_ambient(labels=None)

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

xi()

Return the vector \(\xi\) defining the orientifold \(\mathbb{Z}_2\) action.

Returns:

  • ndarray | list –

    The vector \(\xi\). The involution is the torus element \(\xi/2\).

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_partition or only_nef_decomposition is 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_partition is 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 Polytope objects.

  • 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\).

>>> from cytools.f_theory import fetch_F_Theory_uplifts
>>> gen = fetch_F_Theory_uplifts(h11=2, limit=5, only_nef_partition=True)
>>> for F in gen:
...     print(F.h11(), F.h21(), F.h31())

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 h11 column (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 h21 column (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_base is not specified.

  • index_path (str | Path | None, default: None ) –

    The path to the index file. If not specified, it is index/hodge_index.parquet inside 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 DataFrame instead of a pyarrow Table.

Returns:

  • DataFrame | Table –

    The matching rows. If there are none, or if limit is not positive, an empty table with no columns is returned.

Raises:

  • ValueError –

    If neither h11 nor h21 is specified, or if the index has no row_group column.

Examples:

We load the first ten uplifts with \(h^{1,1}=2\).

>>> from cytools.f_theory import fetch_nef_partition_uplifts
>>> df = fetch_nef_partition_uplifts(h11=2, limit=10)

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, so only_regular is 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 Polytope objects.

  • 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\).

>>> from cytools.f_theory import fetch_orientifolds
>>> gen = fetch_orientifolds(h11=2, limit=5)
>>> for o in gen:
...     print(o.xi(), o.line_bundle())