jaxvacua.hypergeometric_models.HypergeometricModels#

class HypergeometricModels#

Bases: object

Static registry + factory for the hardcoded one-modulus CY models from arXiv:2306.01059 (quintics, hypergeometrics, etc.). Construct ready-to-use FluxVacuaFinder instances at LCS, K-point, or C-point boundaries via build().

The class itself is never instantiated; all methods are classmethods.

Examples

>>> import jaxvacua as jvc
>>> jvc.HypergeometricModels.list()           # discover available labels
['447', 'X10', 'X33', ...]
>>> m = jvc.HypergeometricModels.build("X33", limit="LCS")
>>> m.DW_x(x0, flux)                          # standard FluxVacuaFinder API
__init__()#

Methods

__init__()

available_limits(label)

Return the moduli-space points at which this model has closed-form data.

boundary_data(label, limit)

Return the raw K- or C-point boundary parameters for a model (\(\tau\), \(\gamma\), \(\delta\), instanton coefficients, etc.).

build(label[, limit])

Construct a FluxVacuaFinder for the named model at the given moduli-space point.

lcs_data(label)

Return the raw LCS-side topological data for a model.

list()

Return all registered model labels (hypergeometric + additional).

resolve_prepotential(model_ID, limit)

Validate (model_ID, limit) against the hypergeometric registry and return the closed-form prepotential callable for the requested boundary. Used by periods to auto-detect and resolve registered models without the user having to pass an explicit prepotential_input.

classmethod available_limits(label)#

Return the moduli-space points at which this model has closed-form data.

Parameters:

label (str) – Model label, e.g. "X33".

Returns:

list[str] – Subset of ["LCS", "Kpoint", "Cpoint"].

classmethod boundary_data(label, limit)#

Return the raw K- or C-point boundary parameters for a model (\(\tau\), \(\gamma\), \(\delta\), instanton coefficients, etc.).

Parameters:
  • label (str) – Model label.

  • limit (str) – "Kpoint" or "Cpoint".

Returns:

dict – Boundary-data fields.

Raises:
  • KeyError – If no boundary data is registered for (label, limit).

  • ValueError – If limit is not "Kpoint" or "Cpoint".

classmethod build(label, limit='LCS', **kwargs)#

Construct a FluxVacuaFinder for the named model at the given moduli-space point.

For limit="LCS" the factory builds a standard lcs_tree from (kappa, c2, chi) with no GV invariants — the closed-form LCS prepotential of arXiv:2306.01059 already includes the instanton sum resummed into modular forms.

For limit="Kpoint" or "Cpoint" the factory just forwards model_ID=label and limit= to FluxVacuaFinder; the periods/css constructors auto-detect the registry entry and resolve the closed-form prepotential.

Extra **kwargs are forwarded to FluxVacuaFinder (e.g. Q=, gauge_choice=, D3_tadpole=).

Parameters:
  • label (str) – Model label, e.g. "X33", "X42", "X5".

  • limit (str, optional) – "LCS", "Kpoint", or "Cpoint". Defaults to "LCS".

  • **kwargs – Forwarded to FluxVacuaFinder.

Returns:

FluxVacuaFinder – A standard finder instance.

Raises:
  • KeyError – If label is not registered.

  • ValueError – If limit is not one of the three supported values.

  • NotImplementedError – For X66 at K-point (degenerate \(B_1=0\)).

classmethod lcs_data(label)#

Return the raw LCS-side topological data for a model.

Parameters:

label (str) – Model label.

Returns:

dict – Contains kappa, c2, chi, alpha, mu etc.

Raises:

KeyError – If label is not in the registry.

classmethod list()#

Return all registered model labels (hypergeometric + additional).

Returns:

list[str] – Sorted labels.

classmethod resolve_prepotential(model_ID, limit)#

Validate (model_ID, limit) against the hypergeometric registry and return the closed-form prepotential callable for the requested boundary. Used by periods to auto-detect and resolve registered models without the user having to pass an explicit prepotential_input.

The h12 != 1 invariant is checked by the caller.

Parameters:
  • model_ID (str) – Hypergeometric model label (e.g. "X33").

  • limit (str) – "Kpoint" or "Cpoint".

Returns:

callableF(X, conj=False) — the closed-form prepotential.

Raises:
  • ValueError – If model_ID is not in the registry, or if limit is not one of {"Kpoint", "Cpoint"}.

  • KeyError – If no boundary data is registered for (model_ID, limit).

  • NotImplementedError – For X66 at K-point.