jaxvacua.conifold.coni.Conifold#
- class Conifold(*, ncf=0, conifold_curve=None, conifold_curve0=None, basis_change=None, flop_edge=None, one_face_divisors=None, polytope=None, dual_triangulation=None, bulk_embedding=None, bulk_projection=None, embedding=None)#
Bases:
objectRepresents a conifold singularity in complex structure moduli space dual to a flop transition in Kähler moduli space.
Details
A conifold singularity appears at the boundary of complex structure moduli space where a rational curve in the mirror Calabi-Yau shrinks to zero size. On the mirror side, this corresponds to a topological transition — a flop — in Kähler moduli space.
The flop is encoded in the triangulation of the toric polytope: a specific edge inside a 2-face of the dual polytope can be flipped (Whitehouse flip), and the corresponding curve is an extremal generator of the Mori cone. The class stores the data needed to characterise this transition:
Flop edge \(e\) — the edge in the dual triangulation that undergoes the flip.
One-face divisors — divisor indices interior to the 1-face of the polytope dual to the conifold (these become light in the coniLCS limit).
Gopakumar-Vafa invariant \(n_{\rm cf}\) — the genus-0 GV invariant of the flopping curve.
Conifold curve \(q \in \mathbb{Z}^{h^{1,1}}\) (original-basis charge) and conifold_curve0 = \(q\,\Lambda^{T} = (1,0,\ldots,0)\) (canonical-basis charge after the basis transformation \(\Lambda\)); both are eagerly materialised at construction in geometric mode.
The class supports two construction modes via the
from_geometry()andfrom_data()classmethods. After a JAX pytree round-trip, the cytools refs (polytope(),dual_triangulation()) returnNone; the numerical state survives unchanged.- __init__(*, ncf=0, conifold_curve=None, conifold_curve0=None, basis_change=None, flop_edge=None, one_face_divisors=None, polytope=None, dual_triangulation=None, bulk_embedding=None, bulk_projection=None, embedding=None)#
Low-level keyword-only constructor; prefer
from_geometry()orfrom_data()in user code.
Methods
__init__(*[, ncf, conifold_curve, ...])Low-level keyword-only constructor; prefer
from_geometry()orfrom_data()in user code.Returns the unimodular basis change matrix \(\Lambda\) that maps the
conifold_curveto \((1, 0, \ldots, 0)\). Computed lazily on first call when the cache is empty and aconifold_curveis available.Returns the cytools fine, regular, star triangulation of the dual polytope, or
Noneafter a JAX pytree round-trip.Returns the pair of point indices forming the flop edge in the dual triangulation.
from_data(**kwargs)Construct a numerical-only
Conifoldfrom kwargs. Ifconifold_curveandbasis_changeare supplied butconifold_curve0is omitted, it is derived asconifold_curve @ basis_change.T.from_geometry(polytope, dual_triangulation, ...)Construct a
Conifoldfrom cytools geometry. Eagerly computesconifold_curve,conifold_curve0and the basis-change matrix from the supplied polytope, triangulation and flop edge.one_face_divisors([as_index])Returns the divisors interior to the 1-face dual to the conifold transition.
polytope()Returns the cytools polytope, or
Noneafter a JAX pytree round-trip (geometric data is dropped at the pytree boundary).to_data()Return a numerical-only copy of this
Conifoldsuitable for carrying across a JAX pytree boundary. The cytools refs are stripped; the lazy basis-change cache is warmed first if aconifold_curveis available.- basis_change()#
Returns the unimodular basis change matrix \(\Lambda\) that maps the
conifold_curveto \((1, 0, \ldots, 0)\). Computed lazily on first call when the cache is empty and aconifold_curveis available.- Returns:
Array | None – Integer matrix
:math:`Lambda in mathrm{GL} (h^{1,1},mathbb{Z})
:math:` (h^{1,1}, h^{1,1})
``conifold_curve`` is available.
See also:
get_basis_change()
- dual_triangulation()#
Returns the cytools fine, regular, star triangulation of the dual polytope, or
Noneafter a JAX pytree round-trip.- Returns:
cytools.Triangulation | None – The dual triangulation, or
Noneif not loaded.
- flop_edge()#
Returns the pair of point indices forming the flop edge in the dual triangulation.
- Returns:
Array | None – Pair of integer indices defining the flop edge,
or ``None`` if not available.
- classmethod from_data(**kwargs)#
Construct a numerical-only
Conifoldfrom kwargs. Ifconifold_curveandbasis_changeare supplied butconifold_curve0is omitted, it is derived asconifold_curve @ basis_change.T.- Parameters:
**kwargs – Any subset of the
__init__()keyword arguments excludingpolytopeanddual_triangulation.- Returns:
Conifold – A numerical-mode Conifold (cytools refs
None).- Return type:
- classmethod from_geometry(polytope, dual_triangulation, one_face_divisors, flop_edge, ncf)#
Construct a
Conifoldfrom cytools geometry. Eagerly computesconifold_curve,conifold_curve0and the basis-change matrix from the supplied polytope, triangulation and flop edge.- Parameters:
polytope (
Polytope) – Toric polytope of the CY model.dual_triangulation (
Triangulation) – Fine, regular, star triangulation of the dual polytope.one_face_divisors (
Array) – Indices of divisors interior to the 1-face dual to the conifold transition.flop_edge (
Array) – Pair of point indices forming the flop edge.ncf (
int) – Gopakumar-Vafa invariant \(n_{\rm cf}\) of the flopping curve (used to normalise the conifold charge).
- Returns:
Conifold – A geometric-mode Conifold with all numerical fields
populated and the cytools refs attached.
- Return type:
- one_face_divisors(as_index=True)#
Returns the divisors interior to the 1-face dual to the conifold transition.
- Parameters:
as_index (
bool) – IfTrue(default), returns the integer indices of the interior points. IfFalse, returns the corresponding rows of the GLSM charge matrix (only valid when the cytools polytope is loaded).- Returns:
Array | None – Interior-point indices or GLSM charges, depending
on ``as_index``.
- polytope()#
Returns the cytools polytope, or
Noneafter a JAX pytree round-trip (geometric data is dropped at the pytree boundary).- Returns:
cytools.Polytope | None – The polytope, or
Noneif not loaded.