The Quadrillion F-Theory Standard Models (QSMs)

A yet more special instance of literature models are the Quadrillion F-theory Standard Models (F-theory QSMs) [CHLLT19]. Those hypersurface models come in 708 different families.

The base geometry of an F-theory QSM is obtained from triangulating one of 708 reflexive 3-dimensional polytopes. The models, whose bases are obtained from triangulations of the same polytope form a family. The following information on the polytope in question and its triangulations is available within our database:

verticesMethod
vertices(m::AbstractFTheoryModel)

This method returns the vertices of the polytope the the base of the F-theory QSM is build from. Note that those vertices are normalized according to the Polymake standard to rational numbers.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> vertices(qsm_model)
4-element Vector{Vector{QQFieldElem}}:
 [-1, -1, -1]
 [1, -1//2, -1//2]
 [-1, 2, -1]
 [-1, -1, 5]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
polytope_indexMethod
polytope_index(m::AbstractFTheoryModel)

Of the 3-dimensional reflexive polytope that the base of this F-theory model is build from, this method returns the index within the Kreuzer-Skarke list.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> polytope_index(qsm_model)
4
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
has_quick_triangulationMethod
has_quick_triangulation(m::AbstractFTheoryModel)

For a 3-dimensional reflexive polytope in the Kreuzer-Skarke list, the list of full (sometimes also called fine), regular, star triangulations can be extremely large. Consequently, one may wonder if the triangulations can be enumerated in a somewhat reasonable time (say 5 minutes on a personal computer). This method tries to provide an answer to this. It returns true if one should expect a timely response to the attempt to enumerate all (full, regular, star) triangulations. Otherwise, this method returns false.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> has_quick_triangulation(qsm_model)
true
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
max_lattice_pts_in_facetMethod
max_lattice_pts_in_facet(m::AbstractFTheoryModel)

In order to enumerate the number of full, regular, star triangulations of a 3-dimensional reflexive polytope, it is possible to first find the corresponding triangulations of all facets of the polytope [HT17]. A first indication for the complexity of this triangulation task is the maximum number of lattice points in a facet of the polytope in question. This method returns this maximal number of lattice points.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> max_lattice_pts_in_facet(qsm_model)
16
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
estimated_number_of_triangulationsMethod
estimated_number_of_triangulations(m::AbstractFTheoryModel)

This method returns an estimate for the number of full, regular, star triangulations of the 3-dimensional reflexive polytope, those triangulations define the possible base spaces of the F-theory QSM in question.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> estimated_number_of_triangulations(qsm_model)
212533333333
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Beyond the polytope and its triangulations, a number of other integers are of key importance. The following are supported in our database.

kbar3Method
kbar3(m::AbstractFTheoryModel)

Let Kbar denote the anticanonical class of the 3-dimensional base space of the F-theory QSM. Of ample importance is the triple intersection number of Kbar, i.e. Kbar * Kbar * Kbar. This method returns this intersection number.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> kbar3(qsm_model)
6
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
hodge_h11Method
hodge_h11(m::AbstractFTheoryModel)

This methods return the Hodge number h11 of the elliptically fibered 4-fold that defined the F-theory QSM in question.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> hodge_h11(qsm_model)
31
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
hodge_h12Method
hodge_h12(m::AbstractFTheoryModel)

This methods return the Hodge number h12 of the elliptically fibered 4-fold that defined the F-theory QSM in question.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> hodge_h12(qsm_model)
10
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
hodge_h13Method
hodge_h13(m::AbstractFTheoryModel)

This methods return the Hodge number h13 of the elliptically fibered 4-fold that defined the F-theory QSM in question.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> hodge_h13(qsm_model)
34
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
hodge_h22Method
hodge_h22(m::AbstractFTheoryModel)

This methods return the Hodge number h22 of the elliptically fibered 4-fold that defined the F-theory QSM in question.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> hodge_h22(qsm_model)
284
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

More recently, a research program estimated the exact massless spectra of the F-theory QSMs (cf. [Bie24]). These studies require yet more information about the F-theory QSM geometries, which are supported by our database.

First, recall that (currently), the base of an F-theory QSM is a 3-dimensional toric variety B3. Let s in H^0(B3, Kbar_B3), then V(s) is a K3-surface. Moreover, let xi be the coordinates of the Cox ring of B3. Then V(xi) is a divisor in B3. Consequently, Ci = V(xi) cap V(s) is a divisor in the K3-surface V(s). For the root bundle counting program, these curves Ci are of ample importance (cf. [Bie24]). We support the following information on these curves:

genera_of_ci_curvesMethod
genera_of_ci_curves(m::AbstractFTheoryModel)

This methods return the genera of the Ci curves. Recall that Ci = V(xi, s), where xi is a homogeneous coordinate of the 3-dimensional toric base space B3 of the QSM hypersurface model in question, and s is a generic section of the anticanonical bundle of B3. Consequently, we may use the coordinates xi as labels for the curves Ci.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> keys_list = collect(keys(genera_of_ci_curves(qsm_model)));

julia> my_key = only(filter(k -> string(k) == "x7", keys_list))
x7

julia> genera_of_ci_curves(qsm_model)[my_key]
0
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
degrees_of_kbar_restrictions_to_ci_curvesMethod
degrees_of_kbar_restrictions_to_ci_curves(m::AbstractFTheoryModel)

The anticanonical divisor of the 3-dimensional toric base space B3 of the QSM hypersurface model in question can be restricted to the Ci curves. The result of this operation is a line bundle. This method returns the degree of this line bundle for every Ci curve.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> keys_list = collect(keys(degrees_of_kbar_restrictions_to_ci_curves(qsm_model)));

julia> my_key = only(filter(k -> string(k) == "x7", keys_list))
x7

julia> degrees_of_kbar_restrictions_to_ci_curves(qsm_model)[my_key]
0
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
topological_intersection_numbers_among_ci_curvesMethod
topological_intersection_numbers_among_ci_curves(m::AbstractFTheoryModel)

The topological intersection numbers among Ci curves are also of ample importance. This method returns those intersection numbers in the form of a matrix.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> n_rows(topological_intersection_numbers_among_ci_curves(qsm_model))
29

julia> n_columns(topological_intersection_numbers_among_ci_curves(qsm_model))
29
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
indices_of_trivial_ci_curvesMethod
indices_of_trivial_ci_curves(m::AbstractFTheoryModel)

Some of the Ci curves are trivial, in that V(xi, s) is the empty set. This method returns the vector of all indices of trivial Ci curves. That is, should V(x23, s) be the empty set, then 23 will be included in the returned list.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> indices_of_trivial_ci_curves(qsm_model)
10-element Vector{Int64}:
 23
 22
 18
 19
 20
 26
 10
 11
 12
 15
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
topological_intersection_numbers_among_nontrivial_ci_curvesMethod
topological_intersection_numbers_among_nontrivial_ci_curves(m::AbstractFTheoryModel)

The topological intersection numbers among the non-trivial Ci curves are used frequently. This method returns those intersection numbers in the form of a matrix.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> n_rows(topological_intersection_numbers_among_nontrivial_ci_curves(qsm_model))
19

julia> n_columns(topological_intersection_numbers_among_nontrivial_ci_curves(qsm_model))
19
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

The collection of the Ci-curves form a nodal curve. To every nodal curve one can associate a (dual) graph. In this graph, every irreducible component of the nodal curve becomes a node/vertex of the dual graph, and every nodal singularity of the nodal curve turns into an edge of the dual graph. In the case at hand, this is rather simple.

The Ci-curves turn into the irreducible components of the nodel curve. Certainly, we only need to focus on the non-trivial Ci-curves. A non-trivial Ci-curve can split into multiple irreducible components. This is taken into account when the nodes/vertices of the dual graph are constructed.

The topological intersection numbers among the Ci-curves (or rather, their irreducible components) tells us how many nodal singularities link the Ci-curves (or rather, their irreducible components) in question. Hence, if the topological intersection numbers is zero, there is no edge between the corresponding nodes. Otherwise, if the topological intersection number is positive - say n -, then there are exactly n edges between the nodes in question.

The following functions access/create the so-obtained dual graph:

dual_graphMethod
dual_graph(m::AbstractFTheoryModel)

This method returns the dual graph of the QSM model in question. Note that no labels are (currently) attached to the vertices/nodes or edges. To understand/read this graph correctly, please use the methods listed below.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> dual_graph(qsm_model)
Undirected graph with 21 nodes and the following edges:
(5, 1)(6, 5)(7, 6)(8, 7)(9, 4)(9, 8)(10, 1)(11, 4)(12, 3)(12, 10)(13, 3)(13, 11)(14, 1)(15, 4)(16, 3)(17, 3)(18, 2)(18, 14)(19, 2)(19, 15)(20, 2)(20, 16)(21, 2)(21, 17)
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
components_of_dual_graphMethod
components_of_dual_graph(m::AbstractFTheoryModel)

This method returns a vector with labels for each node/vertex of the dual graph of the QSM model in question. Those labels allow to understand the geometric origin of the node/vertex.

Specifically, recall that those nodes are associated to the Ci-curves, which are in turn given by Ci = V(xi, s). xi is a homogeneous coordinate of the 3-dimensional toric base space B3 of the QSM in question, and s is a generic section of the anticanonical bundle of B3.

Only non-trivial Ci = V(xi, s) correspond to vertices/nodes of the dual graph.

If Ci = V(xi, s) is irreducible and corresponds to the k-th component, then the label "Ci" appears at position k of the vector returned by this method. However, if Ci = V(xi, s) is reducible, then we introduce the labels Ci-0, Ci-1, Ci-2 etc. for those irreducible components of Ci. If Ci-0 corresponds to the k-th components of the dual graph, then the label "Ci-0" appears at position k of the vector returned by this method.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> components_of_dual_graph(qsm_model)
21-element Vector{String}:
 "C0"
 "C1"
 "C2"
 "C3"
 "C4"
 "C5"
 "C6"
 "C7"
 "C8"
 "C9"
 ⋮
 "C16"
 "C17"
 "C21"
 "C24-0"
 "C24-1"
 "C25"
 "C27"
 "C28-0"
 "C28-1"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
degrees_of_kbar_restrictions_to_components_of_dual_graphMethod
degrees_of_kbar_restrictions_to_components_of_dual_graph(m::AbstractFTheoryModel)

The anticanonical bundle of the toric 3-dimensional base space of the F-theory QSM in question can be restricted to the (geometric counterparts of the) nodes/vertices of the dual graph. The result is a line bundle for each node/vertex. This method returns a vector with the degrees of these line bundles.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> degrees_of_kbar_restrictions_to_components_of_dual_graph(qsm_model)["C28-1"]
0
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
genera_of_components_of_dual_graphMethod
genera_of_components_of_dual_graph(m::AbstractFTheoryModel)

This methods returns a vector with the genera of the (geometric counterparts of the) nodes/vertices of the dual graph.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> genera_of_components_of_dual_graph(qsm_model)["C28-1"]
0
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

The dual graph is essential in counting root bundles (cf. [BCL21]). It turns out, that one can simplify this graph so that the computations at hand can be conducted on a simpler graph instead. The following functionality exists to access this simplified dual graph.

simplified_dual_graphMethod
simplified_dual_graph(m::AbstractFTheoryModel)

This method returns the simplified dual graph of the QSM model in question. Note that no labels are (currently) attached to the vertices/nodes or edges. To understand/read this graph correctly, please use the methods listed below.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> simplified_dual_graph(qsm_model)
Undirected graph with 4 nodes and the following edges:
(2, 1)(3, 1)(3, 2)(4, 1)(4, 2)(4, 3)
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
components_of_simplified_dual_graphMethod
components_of_simplified_dual_graph(m::AbstractFTheoryModel)

This method returns a vector with labels for each node/vertex of the simplified dual graph. Otherwise, works identical to components_of_dual_graph(m::AbstractFTheoryModel).

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> components_of_simplified_dual_graph(qsm_model)
4-element Vector{String}:
 "C0"
 "C1"
 "C2"
 "C3"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
degrees_of_kbar_restrictions_to_components_of_simplified_dual_graphMethod
degrees_of_kbar_restrictions_to_components_of_simplified_dual_graph(m::AbstractFTheoryModel)

Same as degrees_of_kbar_restrictions_to_components_of_dual_graph(m::AbstractFTheoryModel), but for the simplified dual graph.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> degrees_of_kbar_restrictions_to_components_of_simplified_dual_graph(qsm_model)["C2"]
2
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
genera_of_components_of_simplified_dual_graphMethod
genera_of_components_of_simplified_dual_graph(m::AbstractFTheoryModel)

This methods returns a vector with the genera of the (geometric counterparts of the) nodes/vertices of the dual graph.

Examples

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base

julia> genera_of_components_of_simplified_dual_graph(qsm_model)["C2"]
0
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source