Skip to content

Commit

Permalink
[FTheoryTools]Small QOL changes 2 (#3941)
Browse files Browse the repository at this point in the history
* Expand display_all_literature_models(), so can filter for models with desired properties
* File model_indices.json keeps track of a model's index (is updated by _create_literature_model_index()).
* Small QOL changes.
* Fixed typos.
* Update introduction.md (fixed typos, funding information and contact data).
  • Loading branch information
emikelsons committed Jul 18, 2024
1 parent 2bca928 commit f600a05
Show file tree
Hide file tree
Showing 53 changed files with 166 additions and 104 deletions.
29 changes: 17 additions & 12 deletions experimental/FTheoryTools/docs/src/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ CurrentModule = Oscar

## Goal

We aim to automate numerous recurring and, at least in part, tedious computations in F-theory model building, as
We aim to automate numerous recurring and, at least in part, tedious computations in F-Theory model building, as
detailed extensively in [Wei18](@cite). The primary focus of our software is on (complex) elliptic fibrations with
singularities. Those singularities hold significant importance. In essence, the absence of these singularities
implies that the geometry encodes trivial or uninteresting physics. Therefore, the smooth case is typically not explored.

A substantial amount of information about the physics is encoded in the geometry of this singular fibration. To some
extend it is clear what geometric quantities are to be considered, to some extend this is an unsettled question. Regardless,
extent it is clear what geometric quantities are to be considered, to some extent this is an open question. Regardless,
computing quantities of interest, such as intersection theory and Chern classes, on singular spaces is challenging. However,
it is possible to link the physics encoded by the singular geometry to the physics encoded by related smooth geometries.
Consequently, almost all F-Theory studies begin by computing a smooting-out, i.e. a resolution, of the singular geometry in
Expand All @@ -22,26 +22,26 @@ In order to easily link the physics on the singular geometry to the physics of o
must be crepant, i.e. must preserve the Calabi-Yau condition. However, this restriction to crepant resolutions introduces additional challenges:
1. A crepant resolution cannot resolve all singularities, meaning certain singularities may persist. This is an area of interest in recent F-Theory investigations.
2. The existence of a crepant resolution is not guaranteed.
3. Exploring whether different resolutions provide insights into different aspects of the singular geometry poses further questions.However, just as it is unclear whether a single crepant resolution is known, there is currently no way to confirm that all crepant resolutions have been identified.
3. Exploring whether different resolutions provide insights into different aspects of the singular geometry poses further questions. However, just as it is unclear whether a single crepant resolution is known, there is currently no way to confirm that all crepant resolutions have been identified.

*FTheoryTools* may not (yet) answer these profound and fundamental questions. Instead, the goal of this suite of computer tools is to streamline and simplify the crepant singularity resolution process as much as possible, as well as subsequent extraction of geometric
*FTheoryTools* may not (yet) answer these profound and fundamental questions. Instead, the goal of this suite of computer tools is to streamline and simplify the crepant singularity resolution process as much as possible, as well as the subsequent extraction of geometric
features of the resolved space.

With *FTheoryTools*, you can create elliptic fibrations using one of the following models:
* Weierstrass model,
* global Tate model,
* Global Tate model,
* Hypersurface model.
In each case, the base space can be a family of spaces (as used in the literature when an explicit base is not specified) or a toric space. We anticipate an extension to schemes as bases. The dimension of those bases is not limited to $1$, $2$, or $3$, but of course includes those cases important to the physics.

We also offer a database of models frequently studied in the literature. Those model we term 'literature_models.' In essence, you should be able to create a model described in a paper at the click of a button. We anticipate that this feature will greatly simplify future research in F-Theory.
We also offer a database of models frequently studied in the literature. For those models we use the term 'literature_models.' In essence, you should be able to create a model described in a paper at the click of a button. We anticipate that this feature will greatly simplify future research in F-Theory.


## Status

We anticipate the following workflow:

### User Input:
- Create your desired F-theory model by using one of the methods described above.
- Create your desired F-Theory model by using one of the methods described above.
- Choose a resolved phase/crepant resolution.
- Select generating sections for $\operatorname{U}(1)$ symmetries.

Expand All @@ -50,12 +50,17 @@ We anticipate the following workflow:
- Singular loci in suitable codimension (e.g., $1$, $2$, and $3$ if the base space has dimension $3$).
- Fiber diagrams of the resolved fiber over the originally singular loci, including intersections of $\operatorname{U}(1)$-sections.
- Gauge group.
- Topological data (e.g., Euler number)
- Topological data (e.g., Euler number).

Currently, our primary focus is on the Elephant in the room, that is the crepant resolution. While already functional for numerous setups, especially literature models, it is far from complete. At this point, the largest functionality exists for toric cases, with ongoing work to extend those toric resolution techniques to families of spaces and schemes.

We are also actively expanding our database of supported literature models. At this point, our database includes the models discussed in [LS13](@cite). Consequently, we are already covering infinite families of models (e.g., with $SU(k)$ gauge group, where $k \geq 1`).
Still, the total number of papers in our database is at this point limited to about $5$. This is to be extended a lot.
We are also actively expanding our database of supported literature models. At this point, amongst others, our database includes models from the following papers:
- The Tate Form on Steroids: Resolution and Higher Codimension Fibers [LS13](@cite),
- F-Theory on all Toric Hypersurface Fibrations and its Higgs Branches [KM-POPR15](@cite),
- Quadrillion F-Theory Compactifications with the Exact Chiral Spectrum of the Standard Model [CHLLT19](@cite).

Consequently, we are already covering infinite families of models (e.g., with $SU(k)$ gauge group, where $k \geq 1$).
Still, the total number of papers in our database is at this point limited to about $6$. This is to be extended a lot.


## Tutorial
Expand All @@ -76,13 +81,13 @@ Future extensions include, but are not necessarily limited to, the following:

Please direct questions about this part of OSCAR to the following people:
* [Martin Bies](https://martinbies.github.io/),
* [Mikelis Emils Mikelsons](https://github.com/emikelsons),
* [Andrew Turner](https://apturner.net/).

You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack).

Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues).


## Acknowledgements

We appreciate insightful discussions with [Mirjam Cvetič](https://live-sas-physics.pantheon.sas.upenn.edu/people/standing-faculty/mirjam-cvetic). The work of Andrew Turner is supported by DOE (HEP) Award DE-SC001352.
We appreciate insightful discussions with [Mirjam Cvetič](https://live-sas-physics.pantheon.sas.upenn.edu/people/standing-faculty/mirjam-cvetic). Martin Bies and Mikelis Mikelsons appreciate support by the TU-Nachwuchsring. The work of Andrew Turner is supported by DOE (HEP) Award DE-SC001352.
4 changes: 2 additions & 2 deletions experimental/FTheoryTools/docs/src/literature.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ paper_authors(m::AbstractFTheoryModel)
paper_buzzwords(m::AbstractFTheoryModel)
paper_description(m::AbstractFTheoryModel)
paper_title(m::AbstractFTheoryModel)
related_literature_models(m::AbstractFTheoryModel)
birational_literature_models(m::AbstractFTheoryModel)
```
Such meta data can be modified with setters. For instance, there is a function
`set_description(m::AbstractFTheoryModel, description::String)`, which takes the
Expand Down Expand Up @@ -91,7 +91,7 @@ following methods:
* `has_paper_buzzwords(m::AbstractFTheoryModel)`,
* `has_paper_description(m::AbstractFTheoryModel)`,
* `has_paper_title(m::AbstractFTheoryModel)`,
* `has_related_literature_models(m::AbstractFTheoryModel)`,
* `has_birational_literature_models(m::AbstractFTheoryModel)`,
* `has_resolutions(m::AbstractFTheoryModel)`,
* `has_resolution_generating_sections(m::AbstractFTheoryModel)`,
* `has_resolution_zero_sections(m::AbstractFTheoryModel)`,
Expand Down
49 changes: 35 additions & 14 deletions experimental/FTheoryTools/src/AbstractFTheoryModels/attributes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -365,12 +365,12 @@ end


@doc raw"""
associated_literature_models(m::AbstractFTheoryModel)
birational_literature_models(m::AbstractFTheoryModel)
Return a list of the unique identifiers any `associated_literature_models` of
Return a list of the unique identifiers of `birational_literature_models` of
the given model. These are either other presentations (Weierstrass, Tate, ...)
of the given model, or other version of the same model from a different paper
in the literature. If no `associated_literature_models` are known,
in the literature. If no `birational_literature_models` are known,
an error is raised.
```jldoctest
Expand All @@ -379,14 +379,14 @@ Assuming that the first row of the given grading is the grading under Kbar
Weierstrass model over a not fully specified base -- U(1)xU(1) Weierstrass model based on arXiv paper 1507.05954 Eq. (A.1)
julia> associated_literature_models(m)
julia> birational_literature_models(m)
1-element Vector{String}:
"1507_05954-1"
```
"""
function associated_literature_models(m::AbstractFTheoryModel)
@req has_associated_literature_models(m) "No associated models known for this model"
return get_attribute(m, :associated_literature_models)
function birational_literature_models(m::AbstractFTheoryModel)
@req has_birational_literature_models(m) "No birationally equivalent models known for this model"
return get_attribute(m, :birational_literature_models)
end


Expand Down Expand Up @@ -782,20 +782,20 @@ end


@doc raw"""
related_literature_models(m::AbstractFTheoryModel)
associated_literature_models(m::AbstractFTheoryModel)
Return a list of the unique identifiers of any `related_literature_models` of
Return a list of the unique identifiers of any `associated_literature_models` of
the given model. These are models that are introduced in the same paper as
the given model, but that are distinct from the given model. If no
`related_literature_models` are known, an error is raised.
`associated_literature_models` are known, an error is raised.
```jldoctest
julia> m = literature_model(arxiv_id = "1212.2949", equation = "3.2", model_parameters = Dict("k" => 5))
Assuming that the first row of the given grading is the grading under Kbar
Global Tate model over a not fully specified base -- SU(11) Tate model with parameter values (k = 5) based on arXiv paper 1212.2949 Eq. (3.2)
julia> related_literature_models(m)
julia> associated_literature_models(m)
6-element Vector{String}:
"1212_2949-2"
"1212_2949-3"
Expand All @@ -805,9 +805,30 @@ julia> related_literature_models(m)
"1212_2949-7"
```
"""
function related_literature_models(m::AbstractFTheoryModel)
@req has_related_literature_models(m) "No related models known for this model"
return get_attribute(m, :related_literature_models)
function associated_literature_models(m::AbstractFTheoryModel)
@req has_associated_literature_models(m) "No associated models known for this model"
return get_attribute(m, :associated_literature_models)
end


@doc raw"""
model_index(m::AbstractFTheoryModel)
Return database index of a literature model. This index is a unique identifier that can be used to more conveniently construct the model.
All models have a model_index and these will not change in the future.
```jldoctest
julia> t = literature_model(31)
Assuming that the first row of the given grading is the grading under Kbar
Weierstrass model over a not fully specified base -- F-theory weierstrass model dual to hypersurface model with fiber ambient space F_10 based on arXiv paper 1408.4808 Eq. (3.130)
julia> model_index(t)
31
```
"""
function model_index(m::AbstractFTheoryModel)
directory = joinpath(dirname(@__DIR__), "LiteratureModels/")
model_indices = JSON.parsefile(directory * "model_indices.json")
return parse(Int, model_indices["model" * literature_identifier(m) * ".json"])
end


Expand Down
12 changes: 6 additions & 6 deletions experimental/FTheoryTools/src/AbstractFTheoryModels/methods.jl
Original file line number Diff line number Diff line change
Expand Up @@ -530,8 +530,8 @@ function set_paper_title(m::AbstractFTheoryModel, desired_value::String)
set_attribute!(m, :paper_title => desired_value)
end

function set_related_literature_models(m::AbstractFTheoryModel, desired_value::Vector{String})
set_attribute!(m, :related_literature_models => desired_value)
function set_birational_literature_models(m::AbstractFTheoryModel, desired_value::Vector{String})
set_attribute!(m, :birational_literature_models => desired_value)
end


Expand Down Expand Up @@ -565,9 +565,9 @@ function add_paper_buzzword(m::AbstractFTheoryModel, addition::String)
!(addition in values) && set_attribute!(m, :paper_buzzwords => vcat(values, [addition]))
end

function add_related_literature_model(m::AbstractFTheoryModel, addition::String)
values = has_related_literature_models(m) ? related_literature_models(m) : []
!(addition in values) && set_attribute!(m, :related_literature_models => vcat(values, [addition]))
function add_birational_literature_model(m::AbstractFTheoryModel, addition::String)
values = has_birational_literature_models(m) ? birational_literature_models(m) : []
!(addition in values) && set_attribute!(m, :birational_literature_models => vcat(values, [addition]))
end


Expand Down Expand Up @@ -665,7 +665,7 @@ end
##########################################

function add_generating_section(m::AbstractFTheoryModel, addition::Vector{String})
values = has_generating_sections(m) ? related_literature_models(m) : []
values = has_generating_sections(m) ? birational_literature_models(m) : []
!(addition in values) && set_attribute!(m, :generating_sections => vcat(values, [addition]))
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ has_paper_authors(m::AbstractFTheoryModel) = has_attribute(m, :paper_authors)
has_paper_buzzwords(m::AbstractFTheoryModel) = has_attribute(m, :paper_buzzwords)
has_paper_description(m::AbstractFTheoryModel) = has_attribute(m, :paper_description)
has_paper_title(m::AbstractFTheoryModel) = has_attribute(m, :paper_title)
has_related_literature_models(m::AbstractFTheoryModel) = has_attribute(m, :related_literature_models)
has_birational_literature_models(m::AbstractFTheoryModel) = has_attribute(m, :birational_literature_models)



Expand Down
27 changes: 26 additions & 1 deletion experimental/FTheoryTools/src/HypersurfaceModels/attributes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,35 @@ hypersurface_equation_parametrization(h::HypersurfaceModel) = h.hypersurface_equ
Return the Weierstrass model corresponding to the
hypersurface model, provided that the latter is known.
```jldoctest
julia> t = literature_model(14)
Assuming that the first row of the given grading is the grading under Kbar
Hypersurface model over a not fully specified base
julia> weierstrass_model(t)
Assuming that the first row of the given grading is the grading under Kbar
Weierstrass model over a not fully specified base -- F-theory weierstrass model dual to hypersurface model with fiber ambient space F_1 based on arXiv paper 1408.4808 Eq. (3.4)
```
"""
function weierstrass_model(h::HypersurfaceModel)
@req has_attribute(h, :weierstrass_model) "No corresponding Weierstrass model is known"
return get_attribute(h, :weierstrass_model)
w = get_attribute(h, :weierstrass_model)
if typeof(w) == String
directory = joinpath(dirname(@__DIR__), "LiteratureModels/")
model_indices = JSON.parsefile(directory * "model_indices.json")
if is_base_space_fully_specified(h)
w_model = literature_model(parse(Int, model_indices[w]), base_space = base_space(h), defining_classes = defining_classes(h), completeness_check = false)
else
w_model = literature_model(parse(Int, model_indices[w]))
end
set_weierstrass_model(h, w_model)
return w_model
else
return w
end
end


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,5 @@
"zero_section": ["0", "1", "0"],
"generating_sections": [["0", "1", "-b"]]
},
"associated_models": ["model1208_2695-2.json"]
"birational_models": ["model1208_2695-2.json"]
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,5 @@
]
]
},
"associated_models": ["model1208_2695-1.json"]
"birational_models": ["model1208_2695-1.json"]
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
},
"model_descriptors": {
"type": "tate",
"description": "SU(2*k+1) Tate model",
"gauge_algebra": ["su(2*k+1)"]
"description": "SU(2*#k+1) Tate model",
"gauge_algebra": ["su(2*#k+1)"]
},
"model_parameters": ["k"],
"model_data": {
Expand Down Expand Up @@ -76,7 +76,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-2.json",
"model1212_2949-3.json",
"model1212_2949-4.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
},
"model_descriptors": {
"type": "tate",
"description": "SU(2*k) Tate model",
"gauge_algebra": ["su(2*k)"]
"description": "SU(2*#k) Tate model",
"gauge_algebra": ["su(2*#k)"]
},
"model_parameters": ["k"],
"model_data": {
Expand Down Expand Up @@ -76,7 +76,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-1.json",
"model1212_2949-3.json",
"model1212_2949-4.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
},
"model_descriptors": {
"type": "tate",
"description": "SO(4*k+2) Tate model",
"gauge_algebra": ["so(4*k+2)"]
"description": "SO(4*#k+2) Tate model",
"gauge_algebra": ["so(4*#k+2)"]
},
"model_parameters": ["k"],
"model_data": {
Expand Down Expand Up @@ -98,7 +98,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-1.json",
"model1212_2949-2.json",
"model1212_2949-4.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
},
"model_descriptors": {
"type": "tate",
"description": "SO(4*k+4)xU(1) Tate model",
"comment": "The paper only states that this is an SO(4k+4) model, but setting a6 = 0 also introduces an additional generating section, so there is additionally a U(1) factor, which may not have been relevant for the authors' purposes.",
"gauge_algebra": ["so(4*k+4)", "u(1)"]
"description": "SO(4*#k+4)xU(1) Tate model",
"comment": "The paper only states that this is an SO(4*#k+4) model, but setting a6 = 0 also introduces an additional generating section, so there is additionally a U(1) factor, which may not have been relevant for the authors' purposes.",
"gauge_algebra": ["so(4*#k+4)", "u(1)"]
},
"model_parameters": ["k"],
"model_data": {
Expand Down Expand Up @@ -100,7 +100,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-1.json",
"model1212_2949-2.json",
"model1212_2949-3.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-1.json",
"model1212_2949-2.json",
"model1212_2949-3.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-1.json",
"model1212_2949-2.json",
"model1212_2949-3.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
]
]
},
"related_models": [
"associated_models": [
"model1212_2949-1.json",
"model1212_2949-2.json",
"model1212_2949-3.json",
Expand Down
Loading

0 comments on commit f600a05

Please sign in to comment.