Skip to content

Commit

Permalink
[FTheoryTools] Support for euler_characteristic
Browse files Browse the repository at this point in the history
  • Loading branch information
HereAround committed Aug 29, 2024
1 parent 7e8ead1 commit 270a2fd
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 0 deletions.
1 change: 1 addition & 0 deletions experimental/FTheoryTools/docs/src/generalities.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ gauge_algebra(m::AbstractFTheoryModel)
global_gauge_quotients(m::AbstractFTheoryModel)
chern_class(m::AbstractFTheoryModel, k::Int; check::Bool = true)
chern_classes(m::AbstractFTheoryModel; check::Bool = true)
euler_characteristic(m::AbstractFTheoryModel; check::Bool = true)
```


Expand Down
39 changes: 39 additions & 0 deletions experimental/FTheoryTools/src/AbstractFTheoryModels/attributes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1200,6 +1200,45 @@ function chern_classes(m::AbstractFTheoryModel; check::Bool = true)
end


@doc raw"""
euler_characteristic(m::AbstractFTheoryModel; check::Bool = true)
If the elliptically fibered n-fold $Y_n$ underlying the F-theory model in question is given
as a hypersurface in a toric ambient space, we can compute the Euler characteristic. If this
assumptions is satisfied, this method returns the Euler characteristic, otherwise it raises an
error.
```jldoctest; setup = :(Oscar.LazyArtifacts.ensure_artifact_installed("QSMDB", Oscar.LazyArtifacts.find_artifacts_toml(Oscar.oscardir)))
julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4))
Hypersurface model over a concrete base
julia> h = euler_characteristic(qsm_model; check = false)
378
```
"""
function euler_characteristic(m::AbstractFTheoryModel; check::Bool = true)
@req (m isa WeierstrassModel || m isa GlobalTateModel || m isa HypersurfaceModel) "Euler characteristic of F-theory model supported for Weierstrass, global Tate and hypersurface models only"
@req base_space(m) isa NormalToricVariety "Euler characteristic of F-theory model currently supported only for toric base"
@req ambient_space(m) isa NormalToricVariety "Euler characteristic of F-theory model currently supported only for toric ambient space"

# Check if the answer is known
if has_attribute(m, :euler_characteristic)
return get_attribute(m, :euler_characteristic)::CohomologyClass
end

# Trigger potential short-cut computation of cohomology ring
cohomology_ring(ambient_space(m); check)

# Compute the cohomology class corresponding to the hypersurface equation
cy = cohomology_class(toric_divisor_class(ambient_space(m), degree(hypersurface_equation(m))))

# Compute the Euler characteristic
h = integrate(chern_class(m, 4; check) * cy; check)
set_attribute!(m, :euler_characteristic, h)
return h
end



##########################################
### (4) Attributes specially for the QSMs
Expand Down
1 change: 1 addition & 0 deletions experimental/FTheoryTools/src/exports.jl
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export discriminant
export display_all_literature_models
export dual_graph
export estimated_number_of_triangulations
export euler_characteristic
export explicit_model_sections
export family_of_spaces
export fiber_ambient_space
Expand Down

0 comments on commit 270a2fd

Please sign in to comment.