From 962b88b00a668b3c42e61e66692969cea45bd03c Mon Sep 17 00:00:00 2001 From: Martin Bies Date: Tue, 6 Aug 2024 16:43:03 +0200 Subject: [PATCH] [FTheoryTools] Add check for Calabi-Yau condition --- .../FTheoryTools/docs/src/generalities.md | 1 + .../src/AbstractFTheoryModels/properties.jl | 31 +++++++++++++++++++ experimental/FTheoryTools/src/exports.jl | 1 + 3 files changed, 33 insertions(+) diff --git a/experimental/FTheoryTools/docs/src/generalities.md b/experimental/FTheoryTools/docs/src/generalities.md index 70f5c40bb2af..44edbde8531d 100644 --- a/experimental/FTheoryTools/docs/src/generalities.md +++ b/experimental/FTheoryTools/docs/src/generalities.md @@ -69,6 +69,7 @@ euler_characteristic(m::AbstractFTheoryModel; check::Bool = true) ```@docs is_base_space_fully_specified(m::AbstractFTheoryModel) +is_calabi_yau(m::AbstractFTheoryModel; check::Bool = true) is_partially_resolved(m::AbstractFTheoryModel) verify_euler_characteristic_from_hodge_numbers(m::AbstractFTheoryModel; check::Bool = true) ``` diff --git a/experimental/FTheoryTools/src/AbstractFTheoryModels/properties.jl b/experimental/FTheoryTools/src/AbstractFTheoryModels/properties.jl index 9b312613030f..73e21536243a 100644 --- a/experimental/FTheoryTools/src/AbstractFTheoryModels/properties.jl +++ b/experimental/FTheoryTools/src/AbstractFTheoryModels/properties.jl @@ -149,3 +149,34 @@ function verify_euler_characteristic_from_hodge_numbers(m::AbstractFTheoryModel; set_attribute!(m, :verify_euler_characteristic_from_hodge_numbers, h) return h end + + +@doc raw""" + is_calabi_yau(m::AbstractFTheoryModel; check::Bool = true) + +Verify if the first Chern class of the tangent bundle of the F-theory geometry +$Y_n$ vanishes. If so, this confirms that this geometry is indeed Calabi-Yau, +as required by the reasoning of F-theory. + +The implemented algorithm works for hypersurface, Weierstrass and global Tate models, +which are defined in a toric ambient space. It expresses $c_1(Y_n)$ as the restriction +of a cohomology class $h$ on the toric ambient space. This in turn requires that the +toric ambient space is simplicial and complete. We provide a switch to turn off +these computationally very demanding checks. This is demonstrated in the example below. + +```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> is_calabi_yau(qsm_model, check = false) +true +``` +""" +function is_calabi_yau(m::AbstractFTheoryModel; check::Bool = true) + @req (m isa WeierstrassModel || m isa GlobalTateModel || m isa HypersurfaceModel) "Verification of Euler characteristic of F-theory model supported for Weierstrass, global Tate and hypersurface models only" + @req base_space(m) isa NormalToricVariety "Verification of Euler characteristic of F-theory model currently supported only for toric base" + @req ambient_space(m) isa NormalToricVariety "Verification of Euler characteristic of F-theory model currently supported only for toric ambient space" + return get_attribute!(m, :is_calabi_yau) do + return is_trivial(chern_class(m, 1, check = check)) + end +end diff --git a/experimental/FTheoryTools/src/exports.jl b/experimental/FTheoryTools/src/exports.jl index a9b32db6b9de..032f3c355e2a 100644 --- a/experimental/FTheoryTools/src/exports.jl +++ b/experimental/FTheoryTools/src/exports.jl @@ -111,6 +111,7 @@ export hypersurface_model export indices_of_trivial_ci_curves export irrelevant_ideal export is_base_space_fully_specified +export is_calabi_yau export is_partially_resolved export journal_doi export journal_link