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: object

Represents a conifold singularity in complex structure moduli space dual to a flop transition in Kähler moduli space.

The class supports two construction modes via the from_geometry() and from_data() classmethods. After a JAX pytree round-trip, the cytools refs (polytope(), dual_triangulation()) return None; 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() or from_data() in user code.

Methods

__init__(*[, ncf, conifold_curve, ...])

Low-level keyword-only constructor; prefer from_geometry() or from_data() in user code.

basis_change()

Returns the unimodular basis change matrix \(\Lambda\) that maps the conifold_curve to \((1, 0, \ldots, 0)\). Computed lazily on first call when the cache is empty and a conifold_curve is available.

dual_triangulation()

Returns the cytools fine, regular, star triangulation of the dual polytope, or None after a JAX pytree round-trip.

flop_edge()

Returns the pair of point indices forming the flop edge in the dual triangulation.

from_data(**kwargs)

Construct a numerical-only Conifold from kwargs. If conifold_curve and basis_change are supplied but conifold_curve0 is omitted, it is derived as conifold_curve @ basis_change.T.

from_geometry(polytope, dual_triangulation, ...)

Construct a Conifold from cytools geometry. Eagerly computes conifold_curve, conifold_curve0 and 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 None after a JAX pytree round-trip (geometric data is dropped at the pytree boundary).

to_data()

Return a numerical-only copy of this Conifold suitable for carrying across a JAX pytree boundary. The cytools refs are stripped; the lazy basis-change cache is warmed first if a conifold_curve is available.

basis_change()#

Returns the unimodular basis change matrix \(\Lambda\) that maps the conifold_curve to \((1, 0, \ldots, 0)\). Computed lazily on first call when the cache is empty and a conifold_curve is 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 None after a JAX pytree round-trip.

Returns:
  • cytools.Triangulation | None – The dual triangulation, or None

  • if 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 Conifold from kwargs. If conifold_curve and basis_change are supplied but conifold_curve0 is omitted, it is derived as conifold_curve @ basis_change.T.

Parameters:

**kwargs – Any subset of the __init__() keyword arguments excluding polytope and dual_triangulation.

Returns:

Conifold – A numerical-mode Conifold (cytools refs None).

Return type:

Conifold

classmethod from_geometry(polytope, dual_triangulation, one_face_divisors, flop_edge, ncf)#

Construct a Conifold from cytools geometry. Eagerly computes conifold_curve, conifold_curve0 and 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:

Conifold

one_face_divisors(as_index=True)#

Returns the divisors interior to the 1-face dual to the conifold transition.

Parameters:

as_index (bool) – If True (default), returns the integer indices of the interior points. If False, 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 None after a JAX pytree round-trip (geometric data is dropped at the pytree boundary).

Returns:

cytools.Polytope | None – The polytope, or None if not loaded.

to_data()#

Return a numerical-only copy of this Conifold suitable for carrying across a JAX pytree boundary. The cytools refs are stripped; the lazy basis-change cache is warmed first if a conifold_curve is available.

Returns:

Conifold – Numerical-mode copy.

Return type:

Conifold