jaxvacua.conifold#

Conifold subsystem public interface.

Purpose#

Expose the conifold-specific data structures, structural helpers, prepotential functions and conifold-modulus solvers used by the main periods, css and FluxEFT classes.

Main public API#

  • Conifold and find_conifolds for representing and discovering conifold limits.

  • Basis and flux helpers from conifold_utils such as get_basis_change, compute_a_matrix, get_bulk_embedding, get_bulk_projection, conifold_fluxes and delete_coni_index.

  • coniLCS prepotential functions from coniLCS_prepotential.

  • z_cf physics helpers from zcf_solver such as W_log_coeff, compute_zcf and zcf_handling.

Design notes#

The _ConifoldGated descriptor exposes attached methods only for coniLCS limits. Consumer modules attach the methods they need locally, which avoids load-order coupling between this subpackage and the main physics classes.

Subpackage layout#

The conifold subsystem is organised into four focused modules. This umbrella page collects the public surface; each submodule has its own dedicated page.

Typical coniLCS workflow#

  1. Find or choose conifold data with find_conifolds, Conifold, and the projection or basis helpers in conifold_utils.

  2. Use the coniLCS prepotential pieces through the attached period and complex-structure-sector methods.

  3. Compute the heavy conifold modulus with the zcf_solver functions or the corresponding methods attached to FluxEFT.

  4. Use jaxvacua.freezer.ConifoldFreezer when the conifold modulus should be integrated out and the remaining light-field EFT should be evaluated.

Choosing a subpage#

_ConifoldGated — gating descriptor#

The _ConifoldGated descriptor surfaces a method only when the instance’s limit lies in the coniLCS family (coniLCS / coniLCS_series / coniLCS_bulk); otherwise it raises AttributeError so hasattr() returns False. Used by periods.py / css.py / flux_eft.py to attach the conifold methods only when meaningful.

class _ConifoldGated(fn)#

Class-level descriptor: surfaces a method only when the instance’s limit is in the coniLCS family. Otherwise raises AttributeError so hasattr() returns False.

Works for periods (reads instance.limit directly) and for css / FluxEFT (which delegate to instance.periods.limit).

Method-attachment lists#

Single source of truth for which conifold methods are attached to which class; consumed by the setattr blocks at the bottom of periods.py / css.py / flux_eft.py.

  • _PERIODS_METHODS — methods attached to jaxvacua.periods.periods (per-period prepotential family + delete_coni_index).

  • _CSS_METHODS — methods attached to jaxvacua.css.css (per-modulus prepotential + dK_cf_bulk).

  • _FLUXEFT_METHODS — methods attached to jaxvacua.flux_eft.FluxEFT (z_cf solver + bulk-EFT building blocks + conifold_fluxes).

Adding a new attached method is a one-place edit: define the function in the appropriate submodule, then append its name to the relevant list in conifold/__init__.py. No edit to the consumer module is required.

Public re-exports#

Every public symbol from the four submodules is re-exported here, so user code can write from jaxvacua.conifold import find_conifolds, Conifold, compute_zcf, without reaching into the submodule namespaces.

See also#

  • General-purpose lattice helpers — extended_euclidean, orthogonal_lattice — live in jaxvacua.util (they have non- conifold callers and are re-exported here only for convenience).

  • jaxvacua.freezerjaxvacua.freezer.ConifoldFreezer consumes compute_zcf and zcf_handling from this subpackage to provide the light-field EFT interface (DW_x_light, dDW_x_light).