jaxvacua.flux_vacua_finder.FluxVacuaFinder

Contents

jaxvacua.flux_vacua_finder.FluxVacuaFinder#

class FluxVacuaFinder(h12=None, model_ID=None, model_type='KS', limit='LCS', maximum_degree=0, mirror_cy=None, model_data=None, lcs_tree_input=None, model_file='', use_cytools=False, basis_change=None, ncf=None, conifold_curve=None, conifold_basis=True, grading_vector=None, period_input=None, Q=None, prepotential_input=None, gauge_choice=1 + 0j, prange=5, use_gvs=True, save_file=False, flux_bounds=(-10, 10), axion_bounds=(-0.5, 0.5), dilaton_bounds=(2.0, 10.0), moduli_bounds=(1.0, 5.0), seed=42, map_to_fd=False, **kwargs)#

Bases: FluxEFT

Canonical entry point for searching, sampling, and classifying flux vacua in Type IIB string theory on a Calabi–Yau threefold.

Class relationship. FluxVacuaFinder is a subclass of jaxvacua.flux_eft.FluxEFT — it is the EFT model, with vacuum-finding methods bolted on. There is no separate “model” attribute: every physics method (scalar_potential, V_x, DW, ddV_x, hessian, tadpole, ISD_matrix, …) is inherited and callable directly on the finder instance. Existing code that uses FluxEFT works unchanged if you swap in a FluxVacuaFinder — Liskov-substitutable.

Use from_model() to construct a finder from an existing FluxEFT instance without re-doing the geometry computation (useful when running multiple finders against the same model).

Headline capabilities (post-merge, 2026-05-17):

Newton solver with B1+B2 guards (newton_method_flux_vacua()). Handles SUSY (mode="SUSY") and general extrema (mode=None). Optional runaway escape via moduli_max= kwarg + automatic singular-Hessian protection.

SUSY workflowsample_SUSY_flux_vacua(), sample_SUSY_vacua_from_fluxes(), linearised_shifts_*(), deduplicate_vacua(). Solves \(D_I W = 0\).

Non-SUSY workflowsample_critical_points(). Six solver backends: "newton" (default), "adam", "lbfgs", "adam_v", "hybrid", "scipy". Solves \(\partial_I V = 0\).

Gaussian-M prior calibration_precompute_M_eigensystem()_estimate_sigmas()calibrate_priors()save_calibration() / load_calibration(). Tunes the integer-flux sampling prior per ISD mode.

Shared utilitiesclassify_solution(), is_physical(), dedup_key(), to_fd(). Stateless helpers for post-hoc analysis of any converged candidate.

Quickstart:

import jax.numpy as jnp
import jaxvacua as jvc

finder = jvc.FluxVacuaFinder(h12=2, model_ID=1)

# 1. SUSY vacuum from a starting point:
fluxes = jnp.array([4.,-3.,-2.,-2.,3.,2.,39.,-13.,-4.,0.,0.,0.])
mod, tau, res = finder.newton_method_flux_vacua(
    jnp.array([2.+3j, 1.5+2j]), -0.3+5j, fluxes,
    mode="SUSY",
)

# 2. Non-SUSY scan (~100 critical points from a Gaussian-M prior):
vacua = finder.sample_critical_points(
    Nmax=200, n_target=100, n_batch=2000, max_batches=5,
    solver="hybrid", isd_mode="ISD-", verbose=False,
)

# 3. Post-hoc classification of any converged (x, flux):
info = finder.classify_solution(x_sol, fluxes)
# → {'V', '|DW|', 'eigenvalues', 'is_susy', 'is_minimum', 'Nflux'}

See documentation/source/notebooks/02_vacuum_finding/ for full tutorials.

__init__(h12=None, model_ID=None, model_type='KS', limit='LCS', maximum_degree=0, mirror_cy=None, model_data=None, lcs_tree_input=None, model_file='', use_cytools=False, basis_change=None, ncf=None, conifold_curve=None, conifold_basis=True, grading_vector=None, period_input=None, Q=None, prepotential_input=None, gauge_choice=1 + 0j, prange=5, use_gvs=True, save_file=False, flux_bounds=(-10, 10), axion_bounds=(-0.5, 0.5), dilaton_bounds=(2.0, 10.0), moduli_bounds=(1.0, 5.0), seed=42, map_to_fd=False, **kwargs)#

Initializes a flux EFT class representing the effective field theory of the flux sector in 4D Type IIB string theory compactified on Calabi-Yau threefolds with 3-form flux backgrounds.

This class provides tools for computing and analyzing flux vacua, including superpotentials, Kähler potentials, F-term conditions, and various properties of the moduli space.

Parameters:
  • h12 (int | None) – Number of complex structure moduli \(h^{1,2}\) for the compactified geometry.

  • model_type (str) – Type of Calabi-Yau manifold. Currently supports "KS" (Kreuzer-Skarke)

  • "CICY" (and)

  • model_ID (int | None) – Identifier for a specific model within the database.

  • limit (str) – Type of moduli space limit for the periods. Currently supports "LCS"

  • "LCS". ((Large Complex Structure limit). Defaults to)

  • model_data (dict | None) – Dictionary containing topological data of the Calabi-Yau, such as

  • numbers (triple intersection)

  • class (second Chern)

  • etc.

  • instanton_data (list, optional) – List of Gopakumar-Vafa (GV) and Gromov-Witten (GW) invariants

  • corrections. (for instanton)

  • maximum_degree (int) – Maximum degree cutoff for instanton sum expansions. Defaults to 0.

  • use_cytools (bool) – Whether to use CYTools library to compute topological data of the

  • False. (Defaults to)

  • mirror_cy (Any | None) – Mirror Calabi-Yau threefold object (from CYTools).

  • basis_change (Array | None) – Basis transformation matrix to be applied to the topological

  • Calabi-Yau. (data of the)

  • ncf (int | None) – Conifold number for conifold-enhanced models.

  • conifold_curve (Any | None) – Specification of the conifold curve in the moduli space.

  • grading_vector (Array | None) – Grading vector used for computing Gopakumar-Vafa invariants.

  • period_input (Optional[Callable]) – Custom function for computing periods.

  • Q (int | None) – D3-brane tadpole bound constraint.

  • prepotential_input (Optional[Callable]) – Custom function for computing the prepotential.

  • gauge_choice (complex) – Gauge choice parameter for the periods. Defaults to 1.0+0.0j.

  • prange (int) – Period range parameter for convergence. Defaults to 500.

  • use_gvs (bool) – Whether to use Gopakumar-Vafa invariants for instanton corrections.

  • False.

  • save_file (bool) – Whether to save model data to disk for future use. Defaults to False.

  • flux_bounds (tuple) – (min, max) integer range for flux sampling. Defaults to (-10, 10).

  • axion_bounds (tuple) – (min, max) range for axion sampling. Defaults to (-0.5, 0.5).

  • dilaton_bounds (tuple) – (min, max) range for the axio-dilaton \(s = \mathrm{Im}(\tau)\). Defaults to (2., 10.).

  • moduli_bounds (tuple) – (min, max) range for the imaginary parts of the complex structure moduli. Defaults to (1., 5.).

  • seed (int) – Random seed for the sampler. Defaults to 42.

  • map_to_fd (bool) – If True, all returned vacua are mapped to the fundamental domain via map_to_fd(). Defaults to False.

  • **kwargs – Additional keyword arguments passed to parent class FluxEFT.

Methods

A(moduli, moduli_c)

Returns the value of the mirror dual Calabi-Yau volume.

DDW(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns a matrix the second holomorphic Kähler derivatives \(D_I D_J W\) of the superpotential.

DDW_SUSY(moduli, moduli_c, tau, tau_c, fluxes)

Returns a matrix containing the second holomorphic Kähler derivative of the superpotential assuming that the F-flatness conditions \(D_{i}W=D_{\tau}W=0\) are satisfied.

DDW_general(moduli, moduli_c, tau, tau_c, fluxes)

Returns the second Kähler covariant derivatives \(D_I D_J W\) of the superpotential \(W\) with respect to the axio-dilaton \(\tau\) and the complex structure moduli \(z^{i}\).

DDW_matrix(moduli, moduli_c, tau, tau_c, fluxes)

Returns the matrix of masses for chiral fermions.

DDW_matrix_SUSY(moduli, moduli_c, tau, ...)

Returns the matrix of second Kähler derivatives of the superpotential assuming that the F-term conditions are satisfied for all fields.

DDW_matrix_general(moduli, moduli_c, tau, ...)

Returns the matrix of second Kähler derivatives of the superpotential.

DDW_tau_ctau(moduli, moduli_c, tau, tau_c, ...)

Returns the Kähler covariant derivative \(D_{\overline{\tau}}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

DDW_tau_cz(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{\overline{z}^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

DDW_tau_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{\tau}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the axio-dilaton \(\tau\).

DDW_tau_z(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{z^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex structure moduli \(z^i\).

DDW_z_ctau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{\overline{\tau}}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

DDW_z_cz(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{\overline{z}^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

DDW_z_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{\tau}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the axio-dilaton \(\tau\).

DDW_z_z(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Kähler covariant derivative \(D_{z^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex structure moduli \(z^i\).

DW(moduli, moduli_c, tau, tau_c, fluxes[, conj])

Returns the holomorphic Kähler covariant derivatives of the superpotential with respect to the complex structure moduli \(z^{i}\) and the axio-dilaton \(\tau\).

DW_tau(moduli, moduli_c, tau, tau_c, fluxes)

Calculates the Kähler covariant derivative of the superpotential with respect to the axio-dilaton \(\tau\).

DW_x(x, fluxes)

Calculates the real and imaginary parts of the \(F\)-term conditions.

DW_z(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Calculates the Kähler covariant derivative of the superpotential \(W\) with respect to the complex structure moduli \(z^{i}\).

DcDW(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns a matrix containing the mixed second Kähler derivatives \(D_{\overline{I}}D_{J}W\).

F(moduli[, conj])

Computes the pre-potential for given values of the moduli.

F_LCS(moduli[, conj])

Calculates the value of the LCS prepotential in terms of the complex structure moduli \(z^{i}\).

F_LCS_poly(moduli[, conj])

Computes the polynomial contribution \(F_{\mathrm{poly}}\) to the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the complex structure moduli \(z^i\).

F_inst(moduli[, conj])

Returns the instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the complex structure moduli \(z^i\).

H(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns the Hessian of the scalar potential.

ISD_condition(moduli, moduli_c, tau, tau_c, ...)

Checks whether the fluxes satisfy the ISD condition \(\star G_3=\text{i}G_3\).

ISD_matrix(moduli, moduli_c)

Computes the value of the ISD-matrix \(\mathcal{M}\).

K(moduli, moduli_c, tau, tau_c)

Returns the value of the Kähler potential.

M(moduli, moduli_c)

Computes the value of the ISD-matrix \(\mathcal{M}\).

N(moduli, moduli_c[, conj])

Computes the value of the gauge kinetic matrix \(\mathcal{N}\).

V(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns the value of the \(F\)-term scalar potential.

V_tilde(moduli, moduli_c)

Returns the value of the mirror dual Calabi-Yau volume.

V_x(x, fluxes[, noscale])

Returns the value of the real part of the F-term scalar potential \(V\) for input of the real scalar fields.

W(moduli, tau, fluxes[, conj, normalise])

Calculates the value of the superpotential for given flux, moduli and axio-dilaton.

W0(moduli, tau, fluxes[, conj, normalise])

Calculates the value of the gauge invariant version of the flux superpotential.

__init__([h12, model_ID, model_type, limit, ...])

Initializes a flux EFT class representing the effective field theory of the flux sector in 4D Type IIB string theory compactified on Calabi-Yau threefolds with 3-form flux backgrounds.

apply_monodromy(moduli, fluxes, n)

Apply a monodromy shift \(z^a \to z^a + n^a\) to the moduli and transform the fluxes accordingly via the monodromy matrix \(M(n)\).

calibrate_priors([Nmax, modes, n_test, ...])

Empirically refine the Gaussian-prior σ per ISD mode by binary-search.

canonical_fterms(moduli, moduli_c, tau, ...)

Returns the canonically normalised \(F\)-term conditions \(F_I,\, F^I\).

christoffel_symbols(moduli, moduli_c, tau, tau_c)

Returns the Christoffel symbols \(\Gamma^E_{AC}\) of the Levi-Civita connection on the Kähler moduli space.

classify_solution(x, flux[, noscale, min_tol])

Classify a converged critical-point candidate (x, flux): returns {V, |DW|, eigenvalues, is_susy, is_minimum, Nflux}.

compute_residual(x[, axis])

Computes residual.

compute_tau_vev(moduli, flux)

Computes the value of the axio-dilaton \(\tau\) from the fluxes and complex structure moduli as a solution to the corresponding \(F\)-term condition \(D_{\tau}W=0\).

conifold_monodromy_matrix([conifold_curve, ...])

Picard-Lefschetz monodromy matrix around a conifold singularity where a 3-cycle \(\gamma = \sum_a c_a A^a\) shrinks to zero.

dDW(moduli, moduli_c, tau, tau_c, fluxes[, conj])

Returns the holomorphic derivative \(\partial_{I}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the complex structure moduli \(z^i\) and the axio-dilaton \(\tau\).

dDW_c(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\overline{I}}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\) and the axio-dilaton \(\overline{\tau}\).

dDW_ctau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\overline{\tau}}D_{J}W\) of the \(F\)-term \(D_{J}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

dDW_cz(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\overline{z}^i}D_{J}W\) of the \(F\)-term \(D_{J}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

dDW_real(moduli, tau, fluxes)

Returns the Jacobian \(\partial_{\phi^\alpha}(D_J W)\) of the \(F\)-terms with respect to the real scalar fields \(\phi^\alpha = (a^i, v^i, c_0, s)\).

dDW_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\tau}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the the axio-dilaton \(\tau\).

dDW_tau_ctau(moduli, moduli_c, tau, tau_c, ...)

Returns the holomorphic derivative \(\partial_{\overline{\tau}}D_{\tau}W\) of the \(F\)-term \(D_{\overline{\tau}}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

dDW_tau_cz(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\overline{z}^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

dDW_tau_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\tau}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the axio-dilaton \(\tau\).

dDW_tau_z(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{z^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex structure moduli \(z^i\).

dDW_x(x, fluxes)

Returns the first derivatives of the F-term conditions by differentiating with respect to the real fields.

dDW_z(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{z^i}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the complex structure moduli \(z^i\).

dDW_z_ctau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\overline{\tau}}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

dDW_z_cz(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\overline{z}^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

dDW_z_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{\tau}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the axio-dilaton \(\tau\).

dDW_z_z(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic derivative \(\partial_{z^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex structure moduli \(z^i\).

dF(moduli[, conj])

Computes the holomorphic derivative \(\partial_{z^i} F\) of the prepotential \(F\) for given values of the moduli.

dGamma(moduli, moduli_c, tau, tau_c)

Returns the holomorphic derivative of the Christoffel symbols \(\partial_B \Gamma^E_{AC}\).

dIKM_c(moduli, moduli_c, tau, tau_c)

Returns the anti-holomorphic derivative of the inverse Kähler metric \(\partial_{\bar{B}} K^{I\bar{J}}\).

dK(moduli, moduli_c, tau, tau_c)

Returns the holomorphic derivative \(\partial_I K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^{i}\) and the axio-dilaton \(\tau\).

dK_c(moduli, moduli_c, tau, tau_c)

Returns the holomorphic derivative \(\partial_{\overline{I}} K\) of the Kähler potential \(K\) with respect to the complex conjugate complex structure moduli \(\overline{z}^{i}\) and the axio-dilaton \(\overline{\tau}\).

dK_ctau(moduli, moduli_c, tau, tau_c)

Returns the anti-holomorphic derivative \(\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the conjugate axio-dilaton \(\overline{\tau}\).

dK_cz(moduli, moduli_c, tau, tau_c)

Returns the anti-holomorphic derivative \(\partial_{\overline{z}^i}K\) of the Kähler potential \(K\) with respect to the conjugate complex structure moduli \(\overline{z}^i\).

dK_tau(moduli, moduli_c, tau, tau_c)

Returns the holomorphic derivative \(\partial_{\tau}K\) of the Kähler potential \(K\) with respect to the axio-dilaton \(\tau\).

dK_z(moduli, moduli_c, tau, tau_c)

Returns the holomorphic derivative \(\partial_{z^i}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\).

dM(moduli, moduli_c)

Returns the holomorphic derivative \(\partial_{z^i}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the complex structure moduli \(z^i\).

dM_X(moduli, moduli_c)

Returns the holomorphic derivative \(\partial_{X^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the periods \(X^I\).

dM_c(moduli, moduli_c)

Returns the anti-holomorphic derivative \(\partial_{\overline{z}^i}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

dM_cX(moduli, moduli_c)

Returns the anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the complex conjugate periods \(\overline{X}^I\).

dN(moduli, moduli_c[, conj])

Returns the holomorphic derivative \(\partial_{z^i}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the complex structure moduli \(z^i\).

dN_X(moduli, moduli_c[, conj])

Returns the holomorphic derivative \(\partial_{X^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the periods \(X^I\).

dN_c(moduli, moduli_c[, conj])

Returns the anti-holomorphic derivative \(\partial_{\overline{z}^i}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

dN_cX(moduli, moduli_c[, conj])

Returns the anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the complex conjugate periods \(\overline{X}^I\).

dV(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns the first holomorphic derivative \(\partial_{I}V\) of the \(F\)-term scalar potential \(V\).

dV_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the first holomorphic derivative \(\partial_{\tau}V\) of the \(F\)-term scalar potential \(V\) with respect to the axio-dilaton \(\tau\).

dV_x(x, fluxes[, noscale])

Returns the gradients of the F-term scalar potential \(V\) with respect to the real scalar fields for real inputs.

dV_z(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns the first holomorphic derivative \(\partial_{z^i}V\) of the \(F\)-term scalar potential \(V\) with respect to the complex structure moduli \(z^i\).

dW(moduli, tau, fluxes[, conj])

Calculates the holomorphic derivative \(W_I\) of the superpotential \(W\) with respect to all moduli \((z^i, \tau)\).

dW_tau(moduli, tau, fluxes[, conj])

Calculates the holomorphic derivative \(W_\tau=\partial_{\tau}W\) of the superpotential \(W\) with respect to the axio-dilaton \(\tau\).

dW_z(moduli, tau, fluxes[, conj])

Calculates the holomorphic derivative \(W_i=\partial_{z^i}W\) of the superpotential \(W\) with respect to the complex structure moduli \(z^{i}\).

ddDW(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns the second derivative of the \(F\)-terms \(\partial_A(D_I W)\).

ddDW_x(x, fluxes)

Returns the second derivatives of the F-term conditions by differentiating with respect to the real fields.

ddIKM(moduli, moduli_c, tau, tau_c)

Returns the mixed second derivative of the inverse Kähler metric \(\partial_A\partial_{\bar{B}} K^{I\bar{J}}\).

ddK_ctau_ctau(moduli, moduli_c, tau, tau_c)

Returns the second holomorphic derivatives of the Kähler potential with respect to the axio-dilaton \(\tau\).

ddK_cz_ctau(moduli, moduli_c, tau, tau_c)

Returns the second derivatives \(K_{\bar{\imath}\overline{\tau}}=\partial_{\overline{z}^i}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\) and the axio-dilaton \(\overline{\tau}\).

ddK_cz_cz(moduli, moduli_c, tau, tau_c)

Returns the second anti-holomorphic derivatives of the Kähler potential with respect to the complex structure moduli \(z^i\).

ddK_cz_tau(moduli, moduli_c, tau, tau_c)

Returns the second derivatives \(K_{\tau\overline{j}}=\partial_{\tau}\partial_{\overline{z}^{j}}K\) of the Kähler potential \(K\) with respect to the conjugate complex structure moduli \(\overline{z}^i\) and the axio-dilaton \(\tau\).

ddK_cz_z(moduli, moduli_c, tau, tau_c)

Returns the second derivatives \(K_{\bar{\jmath}i}=\partial_{\overline{z}^j}\partial_{z^i}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\) and their conjugate.

ddK_tau_ctau(moduli, moduli_c, tau, tau_c)

Returns the second derivatives \(\partial_{\tau}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the axio-dilaton \(\tau\) and its conjugate.

ddK_tau_tau(moduli, moduli_c, tau, tau_c)

Returns the second holomorphic derivatives of the Kähler potential with respect to the axio-dilaton \(\tau\).

ddK_z_ctau(moduli, moduli_c, tau, tau_c)

Returns the second derivatives \(K_{i\overline{\tau}}=\partial_{z^i}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\) and the conjugate axio-dilaton \(\overline{\tau}\).

ddK_z_cz(moduli, moduli_c, tau, tau_c)

Returns the second derivatives \(K_{i\bar{\jmath}}=\partial_{z^i}\partial_{\overline{z}^j}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\) and their conjugate.

ddK_z_tau(moduli, moduli_c, tau, tau_c)

Returns the second holomorphic derivatives of the Kähler potential with respect to the complex structure moduli \(z^i\) and the axio-dilaton \(\tau\).

ddK_z_z(moduli, moduli_c, tau, tau_c)

Returns the second holomorphic derivatives of the Kähler potential with respect to the complex structure moduli \(z^i\).

ddV(moduli, moduli_c, tau, tau_c, fluxes[, ...])

Returns the second derivatives \((\partial_I\partial_J V,\,\partial_I\partial_{\bar J}V)\) of the \(F\)-term scalar potential.

ddV_ctau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the mixed second derivatives \(\partial_{I}\partial_{\bar\tau}V\) of the \(F\)-term scalar potential.

ddV_cz(moduli, moduli_c, tau, tau_c, fluxes)

Returns the mixed second derivatives \(\partial_{I}\partial_{\bar{z}^j}V\) of the \(F\)-term scalar potential.

ddV_tau(moduli, moduli_c, tau, tau_c, fluxes)

Returns the second derivatives \(\partial_{I}\partial_{\tau}V\) of the \(F\)-term scalar potential.

ddV_x(x, fluxes[, noscale])

Returns the second derivatives of the F-term scalar potential \(V\) with respect to the real scalar fields for real inputs.

ddV_z(moduli, moduli_c, tau, tau_c, fluxes)

Returns the holomorphic second derivatives \(\partial_{I}\partial_{z^j}V\) of the \(F\)-term scalar potential.

ddW(moduli, tau, fluxes[, conj])

Calculates the full second holomorphic derivatives \(W_{IJ}=\partial_I\partial_J W\) of the superpotential.

ddW_tau_tau(moduli, tau, fluxes[, conj])

Calculates \(W_{\tau\tau}=\partial_\tau^2 W\).

ddW_z_tau(moduli, tau, fluxes[, conj])

Calculates the mixed second derivative \(W_{i\tau}=\partial_{z^i}\partial_{\tau}W\) of the superpotential.

ddW_z_z(moduli, tau, fluxes[, conj])

Calculates the second holomorphic derivatives \(W_{ij}=\partial_{z^i}\partial_{z^j}W\) of the superpotential.

dddK(moduli, moduli_c, tau, tau_c)

Returns the third holomorphic-mixed Kähler derivative \(\partial_{A} K_{C\bar{F}}\) with respect to the combined field-space index \(A = (z^i, \tau)\).

dddK_c(moduli, moduli_c, tau, tau_c)

Returns the third anti-holomorphic-mixed Kähler derivative \(\partial_{\bar{B}} K_{C\bar{F}}\) with respect to the combined anti-holomorphic field-space index \(\bar{B} = (\bar{z}^i, \bar{\tau})\).

dedup_key(moduli, tau, fluxes[, n_digits])

Hashable dedup key for a single (moduli, tau, fluxes) triple. Suitable for incremental set / dict membership tests in a streaming sampling loop.

deduplicate_vacua(moduli, tau, fluxes[, ...])

Removes duplicate vacua from a batch of solutions.

flux_to_pfv(flux)

Returns M- and K-vector specifying PFV from full flux vector.

from_model(model[, sampler, map_to_fd, ...])

Construct a FluxVacuaFinder from an existing FluxEFT instance, reusing all of its geometry data (period vector, prepotential, conifold tree, …) — no recomputation. Composition-style alternative to the standard FluxVacuaFinder(h12=..., model_ID=...) constructor.

fterm_solver(moduli, tau, fluxes[, ...])

Solves F-term conditions for a given optimiser.

gauge_kinetic_matrix(moduli, moduli_c[, conj])

Computes the value of the gauge kinetic matrix \(\mathcal{N}\).

hessian(moduli, moduli_c, tau, tau_c, fluxes)

Returns the Hessian of the scalar potential.

inverse_kahler_metric(moduli, moduli_c, tau, ...)

Returns the inverse Kähler metric \(K^{\overline{I}J}\).

inverse_kahler_metric_grad(moduli, moduli_c, ...)

Returns the gradient of the inverse Kähler metric.

is_physical(x[, moduli_max, verbose])

Decide whether the converged candidate x lies in the physical region of moduli space. Runs a five-tier cascade: runaway bound → dilaton floor → Kähler-cone hyperplanes → Kähler-metric positivity → basic Im(z_i) > 0.

kahler_metric(moduli, moduli_c, tau, tau_c)

Computes the Kähler metric \(K_{\overline{I}J}\).

kahler_potential(moduli, moduli_c, tau, tau_c)

Returns the value of the Kähler potential.

linearised_shifts(moduli, tau, fluxes[, Q, ...])

Computes the linearised shifts for the complex structure moduli and the axio-dilaton.

linearised_shifts_F(moduli, tau, fluxes[, ...])

Computes linearised shifts for the complex structure moduli and axio-dilaton based on given F-flux.

linearised_shifts_H(moduli, tau, fluxes[, ...])

Computes linearised shifts for the complex structure moduli and axio-dilaton based on given H-flux.

linearised_shifts_ISD(moduli, tau, fluxes[, ...])

Computes the linearised shifts for the complex structure moduli and the axio-dilaton based on \(ISD_+\)-sampling for fluxes.

load_calibration(path)

Load calibrated prior parameters from a JSON file produced by save_calibration().

map_to_fd(moduli, tau, fluxes[, axion_fd, ...])

Maps a vacuum solution (moduli, tau, fluxes) to the fundamental domain by:

map_to_fd_tau(tau, fluxes[, ...])

Map of the axio-dilaton value and the flux vector to the fundamental domain (FD) of \(\text{SL}(2,\mathbb{Z})\).

mass_matrix(moduli, moduli_c, tau, tau_c, fluxes)

Returns the mass matrix after canonical normalisation of the kinetic terms.

mirror_volume(moduli, moduli_c)

Returns the value of the mirror dual Calabi-Yau volume.

moduli_to_periods(moduli[, conj])

Transforms complex structure moduli to periods for the global choice of gauge.

monodromy_matrix(n)

Computes the monodromy matrix \(T(\vec{n})\) for a general integer shift \(z^a \to z^a + n^a\).

monodromy_matrix_single(b)

Computes the monodromy matrix \(T_b\) for the shift \(z^b \to z^b + 1\).

newton_method_flux_vacua(moduli, tau, fluxes)

Solves the minimum conditions for flux vacua using Newton's method.

period_vector(moduli[, conj])

Returns the period vector \(\Pi\) at a given point in moduli space.

periods_to_moduli(XPer)

Transforms periods to complex structure moduli.

pfv_to_flux(M, K)

Returns full flux vector from M- and K-vector specifying PFV.

pfv_to_moduli(M, K, tau)

Returns values of the complex structure moduli at the level of the PFV.

prepot(moduli[, conj])

Computes the pre-potential for given values of the moduli.

projection_fluxes(moduli, tau, fluxes[, mode])

Computes the Hodge decomposition of the 3-form flux \(G_3 = F_3 - \tau H_3\) into its \((p,q)\)-components on the Calabi-Yau threefold.

riemann_tensor(moduli, moduli_c, tau, tau_c)

Returns the Riemann curvature tensor \(R_{i\bar{\jmath}k\bar{l}}\) of the Kähler moduli space.

run_calibration([Nmax, n_sample, n_test, ...])

Convenience wrapper that runs the full Gaussian-M-prior calibration pipeline in one call:

sample_SUSY_flux_vacua([N, sampler, ...])

Samples SUSY flux vacua.

sample_SUSY_vacua_from_fluxes([fluxes_init, ...])

Samples SUSY flux vacua for given input fluxes.

sample_critical_points([Nmax, n_target, ...])

Sample critical points of the scalar potential \(V\) by drawing Gaussian-M-prior flux candidates, ISD-completing them, refining via the chosen solver, then filtering by physicality and deduplicating.

save_calibration(Nmax[, path, flux_prior])

Save calibrated prior parameters to a JSON file for reuse.

scalar_potential(moduli, moduli_c, tau, ...)

Returns the value of the \(F\)-term scalar potential.

superpotential(moduli, tau, fluxes[, conj, ...])

Calculates the value of the superpotential for given flux, moduli and axio-dilaton.

superpotential_gauge_invariant(moduli, tau, ...)

Calculates the value of the gauge invariant version of the flux superpotential.

tadpole(fluxes)

Calculates the D3-charge for given fluxes.

to_fd(moduli, tau, fluxes)

Optionally map (moduli, tau, fluxes) to the fundamental domain via map_to_fd(), with numpy/JAX marshalling at the boundary.

verify_monodromy(b[, z, tol])

Numerically verify the monodromy matrix by checking \(T_b \cdot \Pi(z) = \Pi(z + e_b)\).

Attributes

F_coniLCS_bulk

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

F_coniLCS_exp

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

F_coniLCS_series

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

W_bulk

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

W_log_coeff

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

compute_zcf

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

compute_zcf_x

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

conifold_fluxes

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

dF_coniLCS_exp

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

dK_cf_bulk

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

lcs_tree

Description: The lcs_tree object containing the topological data (intersection numbers, second Chern class, GV invariants, etc.) for the underlying Calabi-Yau geometry.

log_coeff_K_corr

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

log_prefactor

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

sampler

Description: Lazily-initialised data_sampler for this model.

zcf_handling

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

A(moduli, moduli_c)#

Returns the value of the mirror dual Calabi-Yau volume.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

Returns:

complex – Mirror dual Calabi-Yau volume.

Return type:

complex

Aliases:

A(), mirror_volume(), V_tilde()

See also: period_vector()

See also: kahler_potential()

DDW(moduli, moduli_c, tau, tau_c, fluxes, conj=False, mode=None)#

Returns a matrix the second holomorphic Kähler derivatives \(D_I D_J W\) of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – The mode to \(DDW\). Currently implemented modes are: * None: general expression from explicit second derivatives. * “SUSY”: computes at a SUSY locus where DW=0 using standard SUGRA formulas.

Returns:

Array – Value of \(D_I D_J W\).

Return type:

Array

DDW_SUSY(moduli, moduli_c, tau, tau_c, fluxes, conj=False, mode='block diagonal')#

Returns a matrix containing the second holomorphic Kähler derivative of the superpotential assuming that the F-flatness conditions \(D_{i}W=D_{\tau}W=0\) are satisfied.

Warning

We assume that there is a block-diagonal structure in the Kahler potential such that the mixed second derivatives vanish \(K_{i\tau}=K_{\tau i}=0\). This might not necessarily be true once further corrections to the Kahler potential are included.

Warning

Further, we use that \(W_{\tau\tau}=0\) because the flux superpotential superpotential() is linear in \(\tau\). Again, this might not necessarily be true anymore once non-perturbative instanton effects are present in the superpotential!

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – Whether to assume that the Kähler metric is block-diagonal. Defaults to "block diagonal".

Returns:

Array – Value of \(D_I D_J W\) assuming \(D_IW=0\).

Return type:

Array

DDW_general(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the second Kähler covariant derivatives \(D_I D_J W\) of the superpotential \(W\) with respect to the axio-dilaton \(\tau\) and the complex structure moduli \(z^{i}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Second Kähler covariant derivatives \(D_I D_J W\) of the superpotential \(W\) with respect to the axio-dilaton \(\tau\) and the moduli \(z^{i}\).

Return type:

Array

DDW_matrix(moduli, moduli_c, tau, tau_c, fluxes, mode='SUSY')#

Returns the matrix of masses for chiral fermions.

Note

To speed up the computation, it can be advantageous to compute this function using the mode="SUSY" option provided that \(DW=0\) for all fields.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – Whether or not the point at which the mass matrix is evaluated corresponds to a minimum with \(DW=0\) for all fields. Default is mode="SUSY".

Returns:

(Array)

Return type:

Array

DDW_matrix_SUSY(moduli, moduli_c, tau, tau_c, fluxes)#

Returns the matrix of second Kähler derivatives of the superpotential assuming that the F-term conditions are satisfied for all fields.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:
  • See alsomassive_directions_general()

  • See alsoDDW_SUSY()

Return type:

Array

DDW_matrix_general(moduli, moduli_c, tau, tau_c, fluxes)#

Returns the matrix of second Kähler derivatives of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:

Array – Shape (2n, 2n) matrix with blocks [[DDW, DcDW], [conj(DcDW), conj(DDW)]].

Return type:

Array

DDW_tau_ctau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{\overline{\tau}}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{\overline{\tau}}D_{\tau}W\).

Return type:

Array

DDW_tau_cz(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{\overline{z}^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{\overline{z}^i}D_{\tau}W\).

Return type:

Array

DDW_tau_tau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{\tau}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{\tau}D_{\tau}W\).

Return type:

Array

DDW_tau_z(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{z^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{z^i}D_{\tau}W\).

Return type:

Array

DDW_z_ctau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{\overline{\tau}}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{\overline{\tau}}D_{z^j}W\).

Return type:

Array

DDW_z_cz(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{\overline{z}^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{\overline{z}^i}D_{z^j}W\).

Return type:

Array

DDW_z_tau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{\tau}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{\tau}D_{z^j}W\).

Return type:

Array

DDW_z_z(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the Kähler covariant derivative \(D_{z^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(D_{z^i}D_{z^j}W\).

Return type:

Array

DW(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic Kähler covariant derivatives of the superpotential with respect to the complex structure moduli \(z^{i}\) and the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Values of the \(F\)-term conditions for the complex structure moduli \(z^{i}\) and the axio-dilaton \(\tau\).

Return type:

Array

See also: DW_z()

See also: DW_tau()

DW_tau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Calculates the Kähler covariant derivative of the superpotential with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Values of the \(F\)-term conditions for the axio-dilaton \(\tau\).

Return type:

complex

See also: superpotential()

See also: dW_tau()

See also: dK_tau()

See also: dK_ctau()

DW_x(x, fluxes)#

Calculates the real and imaginary parts of the \(F\)-term conditions.

Parameters:
  • x (Array) – Array of shape (\(2(h^{1,2}+1)\), ) containing real and imaginary parts of the complex structure moduli \(z^i\) and axio-dilaton \(\tau\).

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:

Array – Vector of shape (\(2(h^{1,2}+1)\), ) containing real and imaginary parts of the \(F\)-term conditions in alternating order.

Return type:

Array

See also: DW()

DW_z(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Calculates the Kähler covariant derivative of the superpotential \(W\) with respect to the complex structure moduli \(z^{i}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Values of the \(F\)-term conditions for the complex structure moduli \(z^{i}\).

Return type:

Array

See also: superpotential()

See also: dW_z()

See also: dK_z()

See also: dK_cz()

DcDW(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns a matrix containing the mixed second Kähler derivatives \(D_{\overline{I}}D_{J}W\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Values of \(D_{\overline{I}}D_{J}W\).

Return type:

Array

F(moduli, conj=False)#

Computes the pre-potential for given values of the moduli.

Note

We return the value of the pre-potential in terms projective coordinates

\[z^{i}=\frac{X^i}{X^0}\, .\]

Per default, we work in the gauge choice \(X^0=1\), but other gauge choices can be provided as inputs.

Note

We provide the option to compute the pre-potential and some additional functions in terms of the periods directly, see in particular jaxvacua.periods.periods.F_LCS_per(), jaxvacua.periods.periods.prepot_per() and jaxvacua.periods.periods.period_vector_per().

Warning

The moduli space limit around which the pre-potential is computed is set by the global parameter self.periods.limit. Currently, only self.periods.limit="LCS" is supported.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of the prepotential \(F(z^i)\).

Return type:

complex

Errors:

ValueError: If the moduli space limit is not identified.

Aliases:

F()

See also: prepot_per()

F_LCS(moduli, conj=False)#

Calculates the value of the LCS prepotential in terms of the complex structure moduli \(z^{i}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of the LCS prepotential \(F_{\text{LCS}}\).

Return type:

complex

See also: F_LCS_poly(), F_inst()

F_LCS_poly(moduli, conj=False)#

Computes the polynomial contribution \(F_{\mathrm{poly}}\) to the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of the polynomial contribution \(F_{\mathrm{poly}}\) to the LCS prepotential \(F_{\mathrm{LCS}}\).

Return type:

complex

See also: F_LCS()

F_inst(moduli, conj=False)#

Returns the instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of the instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\).

Return type:

complex

See also: F_LCS()

See also: F_LCS_poly()

H(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, mode=None)#

Returns the Hessian of the scalar potential.

Note

We provide two computational modes which can be set via the optional argument mode. If we compute the Hessian at generic points in moduli space, then we should use mode=None which is also the default. At SUSY minimum where \(D_I W=0\) for all fields, we can use a simplified version of the Hessian which is faster to evaluate. To do so, we have to use mode="SUSY" instead.

Warning

When using mode="SUSY", one should be cautious regarding numerical errors and noise.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • mode (str) – The mode to compute the Hessian. For mode=None, returns the general Hessian from explicit second derivatives of the scalar potential. For "SUSY", computes Hessian at a SUSY locus assuming \(D_I W=0\) using standard SUGRA formulas for the Hessian. For "SUGRA", computes the Hessian from explicit SUGRA building blocks (\(D_I W\), \(K^{I\bar{J}}\), \(W\), \(\Gamma\), \(R\)) at generic points. See _hessian_SUGRA(). For "real", computes Hessian for the real and imaginary components of the complex scalar fields. Defaults to None.

Returns:

Array – Hessian matrix with entries \(\partial_{A}\partial_{\bar{B}} V\) and \(\partial_{A}\partial_{B} V\).

Return type:

Array

Aliases:

H(), hessian()

ISD_condition(moduli, moduli_c, tau, tau_c, fluxes, mode='complex')#

Checks whether the fluxes satisfy the ISD condition \(\star G_3=\text{i}G_3\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str, optional) – String specifying which version of the ISD equation to use. Options are :c:var`”complex”` or :c:var`”real”. Defaults to :c:var`mode = “complex”.

Returns:

Array – Difference between the left and right hand side of the ISD equation.

ISD_matrix(moduli, moduli_c)#

Computes the value of the ISD-matrix \(\mathcal{M}\).

Note

This function descends from jaxvacua.periods.periods.ISD_matrix() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

Returns:

Array – Value of the ISD-matrix \(\mathcal{M}\).

Return type:

Array

Aliases:

M()

See also: jaxvacua.periods.periods.ISD_matrix()

K(moduli, moduli_c, tau, tau_c)#

Returns the value of the Kähler potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Value of the Kähler potential.

Return type:

complex

Aliases:

K(), kahler_potential()

See also: A()

M(moduli, moduli_c)#

Computes the value of the ISD-matrix \(\mathcal{M}\).

Note

This function descends from jaxvacua.periods.periods.ISD_matrix() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

Returns:

Array – Value of the ISD-matrix \(\mathcal{M}\).

Return type:

Array

Aliases:

M()

See also: jaxvacua.periods.periods.ISD_matrix()

N(moduli, moduli_c, conj=False)#

Computes the value of the gauge kinetic matrix \(\mathcal{N}\).

Note

This function descends from jaxvacua.periods.periods.gauge_kinetic_matrix() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the gauge kinetic matrix \(\mathcal{N}\).

Return type:

Array

Aliases:

N()

See also: jaxvacua.periods.periods.gauge_kinetic_matrix()

V(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, normalise=False)#

Returns the value of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • normalise (bool) – If True, rescales superpotential by \(\sqrt{2/\pi}\). Defaults to False.

Returns:

complex – Value of the \(F\)-term scalar potential induced by 3-form fluxes.

Return type:

complex

Aliases:

V(), scalar_potential()

See also: DW()

See also: inverse_kahler_metric()

See also: kahler_potential()

V_tilde(moduli, moduli_c)#

Returns the value of the mirror dual Calabi-Yau volume.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

Returns:

complex – Mirror dual Calabi-Yau volume.

Return type:

complex

Aliases:

A(), mirror_volume(), V_tilde()

See also: period_vector()

See also: kahler_potential()

V_x(x, fluxes, noscale=True)#

Returns the value of the real part of the F-term scalar potential \(V\) for input of the real scalar fields.

Note

This function is a wrapper which is used to find non-SUSY minima by looking at gradients of the scalar potential directly, see for example _newton_method_flux_vacua_real().

Parameters:
  • x (Array) – JAX array of shape (\(2(h^{1,2}+1)\),) containing the moduli and axio-dilaton as real and imaginary parts.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

Returns:

float – Value of \(V\).

Return type:

float

See also: scalar_potential()

W(moduli, tau, fluxes, conj=False, normalise=False)#

Calculates the value of the superpotential for given flux, moduli and axio-dilaton.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

  • normalise (bool) – If True, rescales superpotential by \(\sqrt{2/\pi}\). Defaults to False.

Returns:

complex – Value of the superpotential.

Return type:

complex

W0(moduli, tau, fluxes, conj=False, normalise=True)#

Calculates the value of the gauge invariant version of the flux superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

  • normalise (bool) – If True, rescales superpotential by \(\sqrt{2/\pi}\). Defaults to True.

Returns:

complex – Value of the gauge invariant superpotential.

Return type:

complex

See also: superpotential()

See also: kahler_potential()

apply_monodromy(moduli, fluxes, n)#

Apply a monodromy shift \(z^a \to z^a + n^a\) to the moduli and transform the fluxes accordingly via the monodromy matrix \(M(n)\).

The RR-fluxes \(f\) and NSNS-fluxes \(h\) both transform as \(f \to M(n) \cdot f\), \(h \to M(n) \cdot h\).

Parameters:
  • moduli (Array) – Complex structure moduli.

  • fluxes (Array) – Flux vector [f | h].

  • n (array-like) – Integer shift vector of shape (h12,).

Returns:

Tuple[Array, Array](moduli_shifted, fluxes_shifted)

Return type:

Tuple[Array, Array]

calibrate_priors(Nmax=None, modes=None, n_test=200, target_acceptance=0.8, sampler=None, verbose=True)#

Empirically refine the Gaussian-prior σ per ISD mode by binary-search.

For each mode in modes, scans σ in [0.1, 20.0] over 12 binary- search iterations to find the σ where the measured ISD-completion acceptance rate ≈ target_acceptance. “Acceptance” = fraction of random N(0, σ²I) inputs that, when ISD-completed via the sampler and tadpole-filtered against Nmax, give a valid flux.

Result overrides the analytical defaults from _estimate_sigmas() (C2). This is the empirical refinement step: ~1–5 s per mode, produces model-adaptive parameters that can be cached via save_calibration().

Note: calibrate_priors ends with an optional “runaway diagnostic” that calls sample_critical_points on 50 candidates. That is omitted here — the σ-calibration math is byte-for-byte equivalent; only the diagnostic print is dropped. Users wanting runaway stats can run sample_critical_points() directly after calibration.

Parameters:
  • Nmax (int) – tadpole bound (required; method-level here, per the C-cluster convention).

  • modes (list[str], optional) – modes to calibrate. Default: ["F", "H", "ISD+", "ISD-"].

  • n_test (int) – number of candidates per σ trial. Default: 200.

  • target_acceptance (float) – target acceptance rate. Default: 0.8.

  • sampler (data_sampler, optional) – sampler instance. If None (default), uses self.sampler.

  • verbose (bool) – print per-mode results.

Returns:

``dict[str, float]`` – copy of the calibrated σ values per mode.

Return type:

dict

Side effects:

  • Writes self._calibrated_sigmas[mode] = σ for each mode.

  • Writes self._calibration_isd_modes = tuple(modes) to record which modes are empirically calibrated.

canonical_fterms(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the canonically normalised \(F\)-term conditions \(F_I,\, F^I\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:
  • Array – Canonically normalised \(F\)-term conditions \(F_I\).

  • Array – Canonically normalised \(F\)-term conditions \(F^I\).

Return type:

Tuple[Array, Array]

christoffel_symbols(moduli, moduli_c, tau, tau_c)#

Returns the Christoffel symbols \(\Gamma^E_{AC}\) of the Levi-Civita connection on the Kähler moduli space.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Christoffel symbols \(\Gamma^E_{AC}\) with shape (n, n, n) and index ordering [E, A, C].

Return type:

Array

See also: dddK(), inverse_kahler_metric(), riemann_tensor()

classify_solution(x, flux, noscale=True, min_tol=1e-06)#

Classify a converged critical-point candidate (x, flux): returns {V, |DW|, eigenvalues, is_susy, is_minimum, Nflux}.

Thin delegator over jaxvacua.flux_utils.classify_solution(). See its docstring for argument and return-value detail.

Return type:

dict

compute_residual(x, axis=1)#

Computes residual.

Parameters:

x (Array) – Array.

Returns:

Array – Sum of absolute values.

compute_tau_vev(moduli, flux)#

Computes the value of the axio-dilaton \(\tau\) from the fluxes and complex structure moduli as a solution to the corresponding \(F\)-term condition \(D_{\tau}W=0\).

Note

Notice that this equation only has a solution if the denominator is non-zero, i.e. if

\[h\cdot \Sigma \cdot \overline{\Pi}(z^i) \neq 0\, .\]

If this condition is not satisfied, then this function raises a ZeroDivisionError.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • flux (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:

complex – Value of the axio-dilaton \(\tau\).

conifold_monodromy_matrix(conifold_curve=None, conifold_index=None)#

Picard-Lefschetz monodromy matrix around a conifold singularity where a 3-cycle \(\gamma = \sum_a c_a A^a\) shrinks to zero.

The monodromy acts on the period vector \(\Pi = (F_0, F_a, X^0, z^a)\) as

\[F_a \;\to\; F_a + c_a \sum_b c_b\, z^b\,,\]

with all other periods invariant. This follows from the Picard-Lefschetz formula \(\delta \to \delta + (\delta \cdot \gamma)\,\gamma\) applied to the symplectic basis of \(H_3(X,\mathbb{Z})\).

Parameters:
  • conifold_curve (array-like, optional) – Charge vector \(c = (c_1, \dots, c_{h^{2,1}})\) of the vanishing cycle. The vanishing period is \(w = c^T z\). If None, uses self.lcs_tree.conifold.conifold_curve when available.

  • conifold_index (int, optional) – Index (0-based among \(z^1 \dots z^h\)) of the conifold modulus, equivalent to conifold_curve = e_{index}.

Returns:

np.ndarray – Integer matrix of shape (2*h12+2, 2*h12+2).

Raises:

ValueError – If both conifold_curve and conifold_index are provided, or if neither is given and lcs_tree.conifold.conifold_curve is unavailable.

dDW(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{I}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the complex structure moduli \(z^i\) and the axio-dilaton \(\tau\).

Note

The output shape is such that output[J-1][I-1] corresponds to \(\partial_{I}D_{J}W\) with \(I,J=1,\ldots, h^{1,2}+1\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{I}D_{J}W\).

Return type:

Array

dDW_c(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{I}}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\) and the axio-dilaton \(\overline{\tau}\).

Note

The output shape is such that output[J-1][I-1] corresponds to \(\partial_{\overline{I}}D_{J}W\) with \(I,J=1,\ldots, h^{1,2}+1\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{I}}D_{J}W\).

Return type:

Array

See also: dDW()

dDW_ctau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{\tau}}D_{J}W\) of the \(F\)-term \(D_{J}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{\tau}}D_{J}W\).

Return type:

Array

See also: dDW_tau()

dDW_cz(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{z}^i}D_{J}W\) of the \(F\)-term \(D_{J}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Note

The output shape is such that output[J-1][i-1] corresponds to \(\partial_{\bar{\imath}}D_{J}W\) with \(J=1,\ldots, h^{1,2}+1\) and \(i=1,\ldots, h^{1,2}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{z}^i}D_{J}W\).

Return type:

Array

See also: dDW_z()

dDW_real(moduli, tau, fluxes)#

Returns the Jacobian \(\partial_{\phi^\alpha}(D_J W)\) of the \(F\)-terms with respect to the real scalar fields \(\phi^\alpha = (a^i, v^i, c_0, s)\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Array of fluxes.

Returns:

Array – Shape (2n, 2n) real Jacobian \(\partial_{\phi^\alpha}(D_J W)\).

Return type:

Array

See also: dDW(), dDW_c()

dDW_tau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\tau}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\tau}D_{J}W\).

Return type:

Array

dDW_tau_ctau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{\tau}}D_{\tau}W\) of the \(F\)-term \(D_{\overline{\tau}}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{\tau}}D_{\tau}W\).

Return type:

Array

dDW_tau_cz(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{z}^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{z}^i}D_{\tau}W\).

Return type:

Array

dDW_tau_tau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\tau}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\tau}D_{\tau}W\).

Return type:

complex

dDW_tau_z(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{z^i}D_{\tau}W\) of the \(F\)-term \(D_{\tau}W\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{z^i}D_{\tau}W\).

Return type:

Array

dDW_x(x, fluxes)#

Returns the first derivatives of the F-term conditions by differentiating with respect to the real fields.

Parameters:
  • x (Array) – Array of shape (\(2(h^{1,2}+1)\), ) containing real and imaginary parts of the complex structure moduli \(z^i\) and axio-dilaton \(\tau\).

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:

Array – First derivatives of the real \(F\)-term conditions with respect to the real and imaginary parts of the complex structure moduli \(z^i\) and axio-dilaton \(\tau\).

Return type:

Array

See also: DW_x()

dDW_z(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{z^i}D_{J}W\) of the \(F\)-terms \(D_{J}W\) with respect to the complex structure moduli \(z^i\).

Note

The output shape is such that output[J-1][i-1] corresponds to \(\partial_{i}D_{J}W\) with \(J=1,\ldots, h^{1,2}+1\) and \(i=1,\ldots, h^{1,2}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{I}D_{z^j}W\).

Return type:

Array

dDW_z_ctau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{\tau}}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{\tau}}D_{z^j}W\).

Return type:

Array

dDW_z_cz(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\overline{z}^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\overline{z}^i}D_{z^j}W\).

Return type:

Array

dDW_z_tau(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{\tau}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{\tau}D_{z^j}W\).

Return type:

Array

dDW_z_z(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the holomorphic derivative \(\partial_{z^i}D_{z^j}W\) of the \(F\)-term \(D_{z^j}W\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(\partial_{z^i}D_{z^j}W\).

Return type:

Array

dF(moduli, conj=False)#

Computes the holomorphic derivative \(\partial_{z^i} F\) of the prepotential \(F\) for given values of the moduli.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the holomorphic derivatives \(\partial_{z^i}F\) of the prepotential \(F(z^i)\).

Return type:

Array

See also: prepot()

dGamma(moduli, moduli_c, tau, tau_c)#

Returns the holomorphic derivative of the Christoffel symbols \(\partial_B \Gamma^E_{AC}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array\(\partial_B \Gamma^E_{AC}\) with shape (n, n, n, n) and index ordering [E, A, C, B].

Return type:

Array

See also: christoffel_symbols()

dIKM_c(moduli, moduli_c, tau, tau_c)#

Returns the anti-holomorphic derivative of the inverse Kähler metric \(\partial_{\bar{B}} K^{I\bar{J}}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array\(\partial_{\bar{B}} K^{I\bar{J}}\) with shape (n, n, n) and index ordering [I, J̄, B̄].

Return type:

Array

See also: dddK_c(), inverse_kahler_metric()

dK(moduli, moduli_c, tau, tau_c)#

Returns the holomorphic derivative \(\partial_I K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^{i}\) and the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Values of \(\partial_I K\).

Return type:

Array

See also: kahler_potential()

dK_c(moduli, moduli_c, tau, tau_c)#

Returns the holomorphic derivative \(\partial_{\overline{I}} K\) of the Kähler potential \(K\) with respect to the complex conjugate complex structure moduli \(\overline{z}^{i}\) and the axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Values of \(\partial_{\overline{I}} K\).

Return type:

Array

See also: kahler_potential()

dK_ctau(moduli, moduli_c, tau, tau_c)#

Returns the anti-holomorphic derivative \(\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Anti-holomorphic derivative \(\partial_{\overline{\tau}}K\) of the Kähler potential \(K\).

Return type:

complex

See also: kahler_potential()

dK_cz(moduli, moduli_c, tau, tau_c)#

Returns the anti-holomorphic derivative \(\partial_{\overline{z}^i}K\) of the Kähler potential \(K\) with respect to the conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Anti-holomorphic derivative \(\partial_{\overline{z}^i}K\) of the Kähler potential \(K\).

Return type:

Array

See also: kahler_potential()

dK_tau(moduli, moduli_c, tau, tau_c)#

Returns the holomorphic derivative \(\partial_{\tau}K\) of the Kähler potential \(K\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Holomorphic derivative \(\partial_{\tau}K\) of the Kähler potential \(K\).

Return type:

complex

See also: kahler_potential()

dK_z(moduli, moduli_c, tau, tau_c)#

Returns the holomorphic derivative \(\partial_{z^i}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Holomorphic derivative \(\partial_{z^i}K\) of the Kähler potential \(K\).

Return type:

Array

See also: kahler_potential()

dM(moduli, moduli_c)#

Returns the holomorphic derivative \(\partial_{z^i}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

Returns:

Array – Holomorphic derivative \(\partial_{z^i}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\).

Return type:

Array

dM_X(moduli, moduli_c)#

Returns the holomorphic derivative \(\partial_{X^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the periods \(X^I\).

Note

This function descends from jaxvacua.periods.periods.dM() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

Returns:

Array – Holomorphic derivative \(\partial_{X^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\).

Return type:

Array

dM_c(moduli, moduli_c)#

Returns the anti-holomorphic derivative \(\partial_{\overline{z}^i}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

Returns:

Array – Anti-holomorphic derivative \(\partial_{\overline{z}^i}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\).

Return type:

Array

dM_cX(moduli, moduli_c)#

Returns the anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the complex conjugate periods \(\overline{X}^I\).

Note

This function descends from jaxvacua.periods.periods.dM_c() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

Returns:

Array – Anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\).

Return type:

Array

dN(moduli, moduli_c, conj=False)#

Returns the holomorphic derivative \(\partial_{z^i}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Holomorphic derivative \(\partial_{z^i}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\).

Return type:

Array

dN_X(moduli, moduli_c, conj=False)#

Returns the holomorphic derivative \(\partial_{X^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the periods \(X^I\).

Note

This function descends from jaxvacua.periods.periods.dN() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Holomorphic derivative \(\partial_{X^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\).

Return type:

Array

dN_c(moduli, moduli_c, conj=False)#

Returns the anti-holomorphic derivative \(\partial_{\overline{z}^i}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Anti-holomorphic derivative \(\partial_{\overline{z}^i}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\).

Return type:

Array

dN_cX(moduli, moduli_c, conj=False)#

Returns the anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\) with respect to the complex conjugate periods \(\overline{X}^I\).

Note

This function descends from jaxvacua.periods.periods.dN_c() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\).

Return type:

Array

dV(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False, mode='complex')#

Returns the first holomorphic derivative \(\partial_{I}V\) of the \(F\)-term scalar potential \(V\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False. Becomes void if mode="real".

  • mode (str, optional) – String specifying whether to return complex or real derivatives. Defaults to "complex".

Returns:

Array – Value of \(\partial_{I}V\).

Return type:

Array

dV_tau(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False)#

Returns the first holomorphic derivative \(\partial_{\tau}V\) of the \(F\)-term scalar potential \(V\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes \(\partial_{\bar\tau}V\). Defaults to False.

Returns:

complex – Value of \(\partial_{\tau}V\) (scalar).

Return type:

Array

dV_x(x, fluxes, noscale=True)#

Returns the gradients of the F-term scalar potential \(V\) with respect to the real scalar fields for real inputs.

Parameters:
  • x (Array) – JAX array of shape (\(2(h^{1,2}+1)\),) containing the moduli and axio-dilaton as real and imaginary parts.

  • fluxes (Array) – Flux vector of shape (\(4(h^{1,2}+1)\),)

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

Returns:

Array – Value of \((\partial_{a^1}V, \partial_{v^1}V,\ldots ,\partial_{a^{h^{1,2}}}V, \partial_{v^{h^{1,2}}}V,\partial_{c_0}V, \partial_{s}V)\).

Return type:

Array

See also: V_x()

dV_z(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False)#

Returns the first holomorphic derivative \(\partial_{z^i}V\) of the \(F\)-term scalar potential \(V\) with respect to the complex structure moduli \(z^i\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes \(\partial_{\bar{z}^i}V\). Defaults to False.

Returns:

Array – Value of \(\partial_{z^i}V\), shape (h12,).

Return type:

Array

dW(moduli, tau, fluxes, conj=False)#

Calculates the holomorphic derivative \(W_I\) of the superpotential \(W\) with respect to all moduli \((z^i, \tau)\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the holomorphic derivative of the superpotential with respect to the complex structure moduli \(z^{i}\) and the axio-dilaton \(\tau\).

Return type:

Array

dW_tau(moduli, tau, fluxes, conj=False)#

Calculates the holomorphic derivative \(W_\tau=\partial_{\tau}W\) of the superpotential \(W\) with respect to the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of the holomorphic gradient of the superpotential with respect to the axio-dilaton \(\tau\).

Return type:

complex

dW_z(moduli, tau, fluxes, conj=False)#

Calculates the holomorphic derivative \(W_i=\partial_{z^i}W\) of the superpotential \(W\) with respect to the complex structure moduli \(z^{i}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the holomorphic derivative of the superpotential with respect to the complex structure moduli \(z^{i}\).

Return type:

Array

ddDW(moduli, moduli_c, tau, tau_c, fluxes, conj=False)#

Returns the second derivative of the \(F\)-terms \(\partial_A(D_I W)\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If False, returns \(\partial_B\partial_A(D_I W)\) (holomorphic second derivative). If True, returns \(\partial_{\bar{B}}\partial_A(D_I W)\) (mixed second derivative). Defaults to False.

Returns:

Array – Shape (n, n, n) with index ordering [I, A, B] (or [I, A, B̄] when conj=True), where n = h^{1,2}+1.

Return type:

Array

See also: dDW(), _hessian_SUGRA()

ddDW_x(x, fluxes)#

Returns the second derivatives of the F-term conditions by differentiating with respect to the real fields.

Parameters:
  • x (Array) – Array of shape (\(2(h^{1,2}+1)\), ) containing real and imaginary parts of the complex structure moduli \(z^i\) and axio-dilaton \(\tau\).

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:

Array – Second derivatives of the real \(F\)-term conditions with respect to the real and imaginary parts of the complex structure moduli \(z^i\) and axio-dilaton \(\tau\).

Return type:

Array

See also: DW_x()

ddIKM(moduli, moduli_c, tau, tau_c)#

Returns the mixed second derivative of the inverse Kähler metric \(\partial_A\partial_{\bar{B}} K^{I\bar{J}}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array\(\partial_A\partial_{\bar{B}} K^{I\bar{J}}\) with shape (n, n, n, n) and index ordering [I, J̄, B̄, A].

Return type:

Array

See also: riemann_tensor(), christoffel_symbols(), dIKM_c()

ddK_ctau_ctau(moduli, moduli_c, tau, tau_c)#

Returns the second holomorphic derivatives of the Kähler potential with respect to the axio-dilaton \(\tau\).

Note

These holomorphic derivatives are used e.g. in DDW() to compute the second Kähler covariant derivative of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Second holomorphic derivative of the Kähler potential with respect to \(\tau\).

Return type:

complex

ddK_cz_ctau(moduli, moduli_c, tau, tau_c)#

Returns the second derivatives \(K_{\bar{\imath}\overline{\tau}}=\partial_{\overline{z}^i}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the complex conjugate complex structure moduli \(\overline{z}^i\) and the axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Second derivatives \(K_{\bar{\imath}\overline{\tau}}=\partial_{\overline{z}^i}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\).

Return type:

Array

ddK_cz_cz(moduli, moduli_c, tau, tau_c)#

Returns the second anti-holomorphic derivatives of the Kähler potential with respect to the complex structure moduli \(z^i\).

Note

These holomorphic derivatives are used e.g. in DDW() to compute the second Kähler covariant derivative of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array\(h^{1,2}\times h^{1,2}\) matrix of the second holomorphic derivatives of the Kähler potential with respect to \(z^i\).

Return type:

Array

ddK_cz_tau(moduli, moduli_c, tau, tau_c)#

Returns the second derivatives \(K_{\tau\overline{j}}=\partial_{\tau}\partial_{\overline{z}^{j}}K\) of the Kähler potential \(K\) with respect to the conjugate complex structure moduli \(\overline{z}^i\) and the axio-dilaton \(\tau\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Second derivatives \(K_{\tau\overline{j}}=\partial_{\tau}\partial_{\overline{z}^{j}}K\) of the Kähler potential \(K\).

Return type:

Array

ddK_cz_z(moduli, moduli_c, tau, tau_c)#

Returns the second derivatives \(K_{\bar{\jmath}i}=\partial_{\overline{z}^j}\partial_{z^i}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\) and their conjugate.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Second derivatives \(K_{\bar{\jmath}i}=\partial_{\overline{z}^j}\partial_{z^i}K\) of the Kähler potential \(K\).

Return type:

Array

See also: dK_z()

ddK_tau_ctau(moduli, moduli_c, tau, tau_c)#

Returns the second derivatives \(\partial_{\tau}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the axio-dilaton \(\tau\) and its conjugate.

Note

The returned scalar is given by

\[K_{\tau\overline{\tau}}(z^i,\overline{z}^i,\tau,\overline{\tau})=\partial_{\tau}\partial_{\overline{\tau}}K\, .\]

For the standard Kähler potential \(K \supset - \log (-\text{i}(\tau-\overline{\tau}))\), we find

\[K_{\tau\overline{\tau}} = -\frac{1}{(\tau-\overline{\tau})^2}= \frac{1}{4\mathrm{Im}(\tau)^2}\, .\]
Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Second derivatives \(\partial_{\tau}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\).

Return type:

complex

ddK_tau_tau(moduli, moduli_c, tau, tau_c)#

Returns the second holomorphic derivatives of the Kähler potential with respect to the axio-dilaton \(\tau\).

Note

These holomorphic derivatives are used e.g. in DDW() to compute the second Kähler covariant derivative of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Second holomorphic derivative of the Kähler potential with respect to \(\tau\).

Return type:

complex

ddK_z_ctau(moduli, moduli_c, tau, tau_c)#

Returns the second derivatives \(K_{i\overline{\tau}}=\partial_{z^i}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\) and the conjugate axio-dilaton \(\overline{\tau}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Second derivatives \(K_{i\overline{\tau}}=\partial_{z^i}\partial_{\overline{\tau}}K\) of the Kähler potential \(K\).

Return type:

Array

ddK_z_cz(moduli, moduli_c, tau, tau_c)#

Returns the second derivatives \(K_{i\bar{\jmath}}=\partial_{z^i}\partial_{\overline{z}^j}K\) of the Kähler potential \(K\) with respect to the complex structure moduli \(z^i\) and their conjugate.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Second derivatives \(K_{i\bar{\jmath}}=\partial_{z^i}\partial_{\overline{z}^j}K\) of the Kähler potential \(K\).

Return type:

Array

See also: dK_z()

ddK_z_tau(moduli, moduli_c, tau, tau_c)#

Returns the second holomorphic derivatives of the Kähler potential with respect to the complex structure moduli \(z^i\) and the axio-dilaton \(\tau\).

Note

These holomorphic derivatives are used e.g. in DDW() to compute the second Kähler covariant derivative of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array\(h^{1,2}\times 1\) matrix of the second holomorphic derivatives of the Kähler potential with respect to \(z^i\) and \(\tau\).

Return type:

Array

ddK_z_z(moduli, moduli_c, tau, tau_c)#

Returns the second holomorphic derivatives of the Kähler potential with respect to the complex structure moduli \(z^i\).

Note

These holomorphic derivatives are used e.g. in DDW() to compute the second Kähler covariant derivative of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array\(h^{1,2}\times h^{1,2}\) matrix of the second holomorphic derivatives of the Kähler potential with respect to \(z^i\).

Return type:

Array

ddV(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False, mode='complex')#

Returns the second derivatives \((\partial_I\partial_J V,\,\partial_I\partial_{\bar J}V)\) of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False. Becomes void if mode="real".

  • mode (str, optional) – String specifying whether to return complex or real derivatives. Defaults to "complex".

Returns:

Array – Value of \((\partial_{I}\partial_{J}V,\partial_{I}\partial_{\overline{J}}V)\).

Return type:

Array

ddV_ctau(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False)#

Returns the mixed second derivatives \(\partial_{I}\partial_{\bar\tau}V\) of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes \(\partial_{\bar I}\partial_\tau V\). Defaults to False.

Returns:

Array – Value of \(\partial_{I}\partial_{\overline{\tau}}V\).

Return type:

Array

ddV_cz(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False)#

Returns the mixed second derivatives \(\partial_{I}\partial_{\bar{z}^j}V\) of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes \(\partial_{\bar I}\partial_{z^j}V\). Defaults to False.

Returns:

Array – Shape (n, h12) with \(\partial_{I}\partial_{\bar{z}^j}V\).

Return type:

Array

ddV_tau(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False)#

Returns the second derivatives \(\partial_{I}\partial_{\tau}V\) of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes \(\partial_{\bar I}\partial_{\bar\tau}V\). Defaults to False.

Returns:

Array – Shape (n,) with \(\partial_{I}\partial_{\tau}V\).

Return type:

Array

ddV_x(x, fluxes, noscale=True)#

Returns the second derivatives of the F-term scalar potential \(V\) with respect to the real scalar fields for real inputs.

Parameters:
  • x (Array) – JAX array of shape (\(2(h^{1,2}+1)\),) containing the moduli and axio-dilaton as real and imaginary parts.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

Returns:

Array – Value of \(\partial_{\phi^\alpha}\partial_{\phi^\beta}V\).

Return type:

Array

See also: V_x()

ddV_z(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, conj=False)#

Returns the holomorphic second derivatives \(\partial_{I}\partial_{z^j}V\) of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • conj (bool) – If True, computes \(\partial_{\bar I}\partial_{\bar z^j}V\). Defaults to False.

Returns:

Array – Shape (n, h12) with \(\partial_{I}\partial_{z^j}V\).

Return type:

Array

ddW(moduli, tau, fluxes, conj=False)#

Calculates the full second holomorphic derivatives \(W_{IJ}=\partial_I\partial_J W\) of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(W_{IJ}=\partial_{I}\partial_{J}W\).

Return type:

Array

ddW_tau_tau(moduli, tau, fluxes, conj=False)#

Calculates \(W_{\tau\tau}=\partial_\tau^2 W\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(W_{\tau \tau}=\partial_{\tau}\partial_{\tau}W\).

Return type:

Array

ddW_z_tau(moduli, tau, fluxes, conj=False)#

Calculates the mixed second derivative \(W_{i\tau}=\partial_{z^i}\partial_{\tau}W\) of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of \(W_{i \tau}=\partial_{z^i}\partial_{\tau}W\).

Return type:

Array

ddW_z_z(moduli, tau, fluxes, conj=False)#

Calculates the second holomorphic derivatives \(W_{ij}=\partial_{z^i}\partial_{z^j}W\) of the superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of \(W_{i j}=\partial_{z^i}\partial_{z^j}W\).

Return type:

Array

dddK(moduli, moduli_c, tau, tau_c)#

Returns the third holomorphic-mixed Kähler derivative \(\partial_{A} K_{C\bar{F}}\) with respect to the combined field-space index \(A = (z^i, \tau)\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Third Kähler derivative \(\partial_A K_{C\bar{F}}\) with shape (n, n, n) and index ordering [C, F̄, A] where n = h^{1,2} + 1.

Return type:

Array

See also: kahler_metric(), christoffel_symbols()

dddK_c(moduli, moduli_c, tau, tau_c)#

Returns the third anti-holomorphic-mixed Kähler derivative \(\partial_{\bar{B}} K_{C\bar{F}}\) with respect to the combined anti-holomorphic field-space index \(\bar{B} = (\bar{z}^i, \bar{\tau})\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Third Kähler derivative \(\partial_{\bar{B}} K_{C\bar{F}}\) with shape (n, n, n) and index ordering [C, F̄, B̄] where n = h^{1,2} + 1.

Return type:

Array

See also: kahler_metric(), riemann_tensor()

dedup_key(moduli, tau, fluxes, n_digits=6)#

Hashable dedup key for a single (moduli, tau, fluxes) triple. Suitable for incremental set / dict membership tests in a streaming sampling loop.

Distinct from deduplicate_vacua(), which is a batched jnp.unique pass over an entire solution set.

Thin delegator over jaxvacua.flux_utils.dedup_key(). See its docstring for argument and return-value detail.

Note (2026-05-17 arg-order change): flipped from legacy (flux, moduli, tau) to (moduli, tau, fluxes) for project-wide consistency.

deduplicate_vacua(moduli, tau, fluxes, n_digits=8, boundary_tol=1e-08, axion_fd=None)#

Removes duplicate vacua from a batch of solutions.

If map_to_fd=True (set at construction), vacua are first mapped to the fundamental domain via map_to_fd() (monodromy + \(\text{SL}(2,\mathbb{Z})\)), so that monodromy-equivalent solutions are identified. If map_to_fd=False, deduplication is performed on the raw (moduli, tau, fluxes) values directly.

In both cases, duplicates are identified by rounding to n_digits decimal places. Note that a single flux vector can admit multiple distinct vacua, so the fingerprint always includes moduli and tau.

Parameters:
  • moduli (Array) – Complex structure moduli, shape (N, h12).

  • tau (Array) – Axio-dilaton values, shape (N,).

  • fluxes (Array) – Flux vectors, shape (N, 2*n_fluxes).

  • n_digits (int) – Number of decimal digits for rounding when identifying duplicates. Default 8.

  • boundary_tol (float) – Points within this tolerance of the FD boundary are snapped to the boundary. Default 1e-8. Only used when map_to_fd=True.

  • axion_fd (Optional[Tuple[float, float]]) – Axion fundamental domain (lo, hi). If None, uses self.axion_fd. Only used when map_to_fd=True.

Returns:

Tuple[Array, Array, Array, Array](moduli_unique, tau_unique, fluxes_unique, keep_indices)

Return type:

Tuple[Array, Array, Array, Array]

See also: map_to_fd()

flux_to_pfv(flux)#

Returns M- and K-vector specifying PFV from full flux vector.

Parameters:

flux (Array) – Flux-vector.

Returns:
  • M (Array) – M-vector.

  • K (Array) – K-vector.

Return type:

Tuple[Array, Array]

classmethod from_model(model, sampler=None, map_to_fd=False, flux_bounds=(-10, 10), axion_bounds=(-0.5, 0.5), dilaton_bounds=(2.0, 10.0), moduli_bounds=(1.0, 5.0), seed=42)#

Construct a FluxVacuaFinder from an existing FluxEFT instance, reusing all of its geometry data (period vector, prepotential, conifold tree, …) — no recomputation. Composition-style alternative to the standard FluxVacuaFinder(h12=..., model_ID=...) constructor.

Use this when:

  • You already have a FluxEFT and want to run a finder on it without rebuilding the geometry (which can be slow for large h12).

  • You want multiple finders on the same model (e.g. different sampler bounds, different map_to_fd).

  • You have a custom FluxEFT subclass and want the finder methods on top of it.

Internally clones the model’s __dict__ into a freshly allocated FluxVacuaFinder instance. The two instances thereafter share references to the same arrays / sub-objects (lcs_tree, periods, css, …). Mutating the model will be visible on the finder; mutating finder-only state (_map_to_fd, _calibrated_sigmas, …) does not leak back into the model.

Parameters:
  • model (FluxEFT) – Instance whose state to clone.

  • sampler (data_sampler) – If given, used instead of lazy-constructing one from the bounds kwargs.

  • map_to_fd (bool) – Whether to map results to the fundamental domain. Defaults to False.

  • flux_bounds (tuple) – Forwarded to data_sampler; only used if sampler is None.

  • axion_bounds (tuple) – Forwarded to data_sampler; only used if sampler is None.

  • dilaton_bounds (tuple) – Forwarded to data_sampler; only used if sampler is None.

  • moduli_bounds (tuple) – Forwarded to data_sampler; only used if sampler is None.

  • seed (int) – Forwarded to data_sampler; only used if sampler is None.

Returns:

FluxVacuaFinder – New instance sharing geometry with model.

Return type:

FluxVacuaFinder

Example:

model  = jvc.FluxEFT(h12=2, model_ID=1, maximum_degree=5)
# ... use model for some FluxEFT-only work ...
finder = jvc.FluxVacuaFinder.from_model(model)
vacua  = finder.sample_critical_points(Nmax=200, n_target=10)
fterm_solver(moduli, tau, fluxes, objective_fct=None, optimiser=None, tol=1e-10, max_iters=100, print_progress=False, mode=None)#

Solves F-term conditions for a given optimiser.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • objective_fct (Optional[Callable]) – Objective function to miminise.

  • optimiser (Optional[Callable]) – Optimiser to be used for the minimisation.

  • tol (float) – Tolerance for the residual. Defaults to 1e-10.

  • max_iters (int) – Maximum number of iterations. Defaults to 100.

  • print_progress (bool) – Whether to print the progress of the minimisation. Defaults to False.

  • mode (str) – Mode for running the solver. Defaults to None.

Returns:
  • int – Number of iterations.

  • Array – Complex structure moduli values.

  • Array – Value of axio-dilaton.

  • Array – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • Array – Boolean array specifying whether constraints are satisfied.

  • Array – Residuals \(\sum_A |D_A W|\) of the \(F\)-terms.

Return type:

Tuple[int, Array, Array, Array, Array, Array]

gauge_kinetic_matrix(moduli, moduli_c, conj=False)#

Computes the value of the gauge kinetic matrix \(\mathcal{N}\).

Note

This function descends from jaxvacua.periods.periods.gauge_kinetic_matrix() upon gauge fixing, i.e., making a choice of homogeneous complex coordinates on the complex structure moduli space of \(X\).

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • moduli_c (Array) – Complex conjugate values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the gauge kinetic matrix \(\mathcal{N}\).

Return type:

Array

Aliases:

N()

See also: jaxvacua.periods.periods.gauge_kinetic_matrix()

hessian(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, mode=None)#

Returns the Hessian of the scalar potential.

Note

We provide two computational modes which can be set via the optional argument mode. If we compute the Hessian at generic points in moduli space, then we should use mode=None which is also the default. At SUSY minimum where \(D_I W=0\) for all fields, we can use a simplified version of the Hessian which is faster to evaluate. To do so, we have to use mode="SUSY" instead.

Warning

When using mode="SUSY", one should be cautious regarding numerical errors and noise.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • mode (str) – The mode to compute the Hessian. For mode=None, returns the general Hessian from explicit second derivatives of the scalar potential. For "SUSY", computes Hessian at a SUSY locus assuming \(D_I W=0\) using standard SUGRA formulas for the Hessian. For "SUGRA", computes the Hessian from explicit SUGRA building blocks (\(D_I W\), \(K^{I\bar{J}}\), \(W\), \(\Gamma\), \(R\)) at generic points. See _hessian_SUGRA(). For "real", computes Hessian for the real and imaginary components of the complex scalar fields. Defaults to None.

Returns:

Array – Hessian matrix with entries \(\partial_{A}\partial_{\bar{B}} V\) and \(\partial_{A}\partial_{B} V\).

Return type:

Array

Aliases:

H(), hessian()

inverse_kahler_metric(moduli, moduli_c, tau, tau_c, mode='block diagonal')#

Returns the inverse Kähler metric \(K^{\overline{I}J}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

  • mode (str) – Description

Returns:

Array – Inverse Kähler metric \(K^{\overline{I}J}\).

Return type:

Array

See also: kahler_metric()

inverse_kahler_metric_grad(moduli, moduli_c, tau, tau_c, mode='block diagonal')#

Returns the gradient of the inverse Kähler metric.

Note

This function is currently not being used, but might turn out to be useful when taking derivatives of the F-terms \(F^i = K^{i\overline{j}}D_{\overline{j}}\overline{W}\). The output corresponds to the tuple

\[(\partial_{z^i}K^{\bar{J}L},\partial_{\overline{z}^i}K^{\bar{J}L},\partial_{\tau}K^{\bar{J}L},\partial_{\overline{\tau}}K^{\bar{J}L})\, .\]
Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

  • mode (str) – Description

Returns:

Array – Gradient of the inverse Kähler metric \(\partial_{I}K^{\overline{J}L},\partial_{\overline{I}}K^{\overline{J}L}\).

Return type:

Tuple[Array, Array, complex, complex]

See also: kahler_metric()

See also: inverse_kahler_metric()

is_physical(x, moduli_max=None, verbose=False)#

Decide whether the converged candidate x lies in the physical region of moduli space. Runs a five-tier cascade: runaway bound → dilaton floor → Kähler-cone hyperplanes → Kähler-metric positivity → basic Im(z_i) > 0.

Thin delegator over jaxvacua.flux_utils.is_physical(), passing self as both the model and the source of the sampler (via self.sampler). See the helper’s docstring for full cascade detail.

Pass verbose=True to print which check rejected the point (useful for debugging “why was my candidate filtered?”).

Return type:

bool

kahler_metric(moduli, moduli_c, tau, tau_c, mode='block diagonal')#

Computes the Kähler metric \(K_{\overline{I}J}\).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

  • mode (str) – Mode to compute the Kahler metric. Defaults to "block diagonal" meaning that there are no mixing terms between complex structure moduli and the axio-dilaton in the Kähler potential. If set to None instead, the full set of 2nd derivatives of the Kähler potential is computed.

Returns:

Array – Kähler metric \(K_{\overline{I}J}\).

Raises:

ValueError – Wrong mode for computation. Only mode=None and mode="block diagonal" are supported.

Return type:

Array

kahler_potential(moduli, moduli_c, tau, tau_c)#

Returns the value of the Kähler potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

complex – Value of the Kähler potential.

Return type:

complex

Aliases:

K(), kahler_potential()

See also: A()

property lcs_tree#

Description: The lcs_tree object containing the topological data (intersection numbers, second Chern class, GV invariants, etc.) for the underlying Calabi-Yau geometry.

Returns:

lcs_tree – The topological data tree.

linearised_shifts(moduli, tau, fluxes, Q=None, mode='ISD', return_flag=True, constraints=None, remove_NANs=False, step_size=1.0)#

Computes the linearised shifts for the complex structure moduli and the axio-dilaton.

Parameters:
  • moduli (Array) – Starting point for the complex structure moduli.

  • tau (complex) – Starting point for the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • Q (int | None) – Tadpole bound to be used in the computation for the constraints.

  • mode (str) – Computation mode for obtaining the linearised shifts.

  • constraints (Optional[Callable]) – Additional constraints to be imposed on the solutions.

  • remove_NANs (bool) – Whether to remove NaN values from input. Defaults to False.

  • step_size (float) – Damping factor applied to the linearised shift; the moduli/axio-dilaton are updated by step_size times the computed shift. 1.0 recovers the full (undamped) step. Defaults to 1.0.

Returns:
  • Array – Shifted values for the complex structure moduli \(Z^i\).

  • complex – Shifted value for the axio-dilaton \(\tau\).

  • Array – Updated values for the fluxes based on the ISD-condition.

  • bool, optional – Boolean specifying whether the constraints are satisfied.

Return type:

Union[Tuple[Array, complex, Array], Tuple[Array, complex, Array, Array]]

linearised_shifts_F(moduli, tau, fluxes, mode='Fflux', return_shifts=False, remove_NANs=False, step_size=1.0)#

Computes linearised shifts for the complex structure moduli and axio-dilaton based on given F-flux.

Parameters:
  • moduli (Array) – Starting point for the complex structure moduli.

  • tau (complex) – Starting point for the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – Computation mode for obtaining the linearised shifts. Defaults to "Fflux".

  • return_shifts (bool) – Whether to return the shifts for the moduli or the shifted moduli. Defaults to False.

  • remove_NANs (bool) – Whether to remove NaN values from input. Defaults to False.

  • step_size (float) – Damping factor applied to the linearised shift; the moduli/axio-dilaton are updated by step_size times the computed shift. 1.0 recovers the full (undamped) step. Defaults to 1.0.

Returns:
  • Array – Moduli shifts or shifted values of the complex structure moduli \(Z^i\).

  • complex – Axio-dilaton shift or shifted value of the axio-dilaton \(\tau\).

  • Array – Values of the fluxes.

Return type:

Union[Tuple[Array, complex, Array], Tuple[Array, complex, Array, Array]]

linearised_shifts_H(moduli, tau, fluxes, mode='Hflux', return_shifts=False, remove_NANs=False, step_size=1.0)#

Computes linearised shifts for the complex structure moduli and axio-dilaton based on given H-flux.

Parameters:
  • moduli (Array) – Starting point for the complex structure moduli.

  • tau (complex) – Starting point for the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – Computation mode for obtaining the linearised shifts.

  • return_shifts (bool) – Whether to return the shifts for the moduli or the shifted moduli. Defaults to False.

  • remove_NANs (bool) – Whether to remove NaN values from input. Defaults to False.

  • step_size (float) – Damping factor applied to the linearised shift; the moduli/axio-dilaton are updated by step_size times the computed shift. 1.0 recovers the full (undamped) step. Defaults to 1.0.

Returns:
  • Array – Moduli shifts or shifted values of the complex structure moduli \(Z^i\).

  • complex – Axio-dilaton shift or shifted value of the axio-dilaton :math:` au`.

  • Array – Values of the fluxes.

Return type:

Union[Tuple[Array, complex, Array], Tuple[Array, complex, Array, Array]]

linearised_shifts_ISD(moduli, tau, fluxes, mode='ISD', return_shifts=False, remove_NANs=False, step_size=1.0)#

Computes the linearised shifts for the complex structure moduli and the axio-dilaton based on \(ISD_+\)-sampling for fluxes.

Parameters:
  • moduli (Array) – Values for the complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – Computation mode for obtaining the linearised shifts.

  • return_shifts (bool) – Whether to return the shifts for the moduli or the shifted moduli. Defaults to False.

  • remove_NANs (bool) – Whether to remove NaN values from input. Defaults to False.

  • step_size (float) – Damping factor applied to the linearised shift; the moduli/axio-dilaton are updated by step_size times the computed shift. 1.0 recovers the full (undamped) step. Defaults to 1.0.

Returns:
  • Array – Moduli shifts or shifted values of the complex structure moduli \(Z^i\).

  • complex – Axio-dilaton shift or shifted value of the axio-dilaton :math:` au`.

  • Array – Values of the fluxes.

Return type:

Union[Tuple[Array, complex, Array], Tuple[Array, complex, Array, Array]]

load_calibration(path)#

Load calibrated prior parameters from a JSON file produced by save_calibration().

Sets self._calibrated_sigmas from the loaded "sigmas" block; also restores self._calibration_isd_modes so subsequent code can tell which modes were calibrated.

Parameters:

path (str) – JSON file path.

Returns:
  • ``dict[str, float]`` – the loaded σ values per mode (also stored

  • on ``self``).

Return type:

dict

map_to_fd(moduli, tau, fluxes, axion_fd=None, boundary_tol=1e-08)#

Maps a vacuum solution (moduli, tau, fluxes) to the fundamental domain by:

  1. Mapping the axio-dilaton \(\tau\) to the \(\text{SL}(2,\mathbb{Z})\) fundamental domain via map_to_fd_tau().

  2. Shifting the axion \(\text{Re}(z^a)\) into the range (lo, hi] via integer monodromy transformations \(z^a \to z^a + n^a\).

  3. Snapping values within boundary_tol of the excluded boundary lo to the included boundary hi.

For conifold models (coniLCS_series or coniLCS_bulk), the conifold modulus is left untouched because the logarithmic monodromy breaks integer periodicity. With conifold_basis=True it is index 0; with conifold_basis=False it is the charge combination q·z, so the axion shifts are computed in the conifold-aligned frame z_al = Λ⁻ᵀ z (leaving z_al[0] fixed) and the integer shift is rotated back as n = Λᵀ n_al ker(q).

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Flux vector.

  • axion_fd (Optional[Tuple[float, float]]) – Range (lo, hi) for \(\text{Re}(z^a)\). Convention: \(\text{Re}(z^a) \in (lo, hi]\). If None, uses self.axion_fd (default (-0.5, 0.5)).

  • boundary_tol (float) – Points within this tolerance of the excluded boundary lo are snapped to hi. Default 1e-8.

Returns:

Tuple[Array, complex, Array](moduli_fd, tau_fd, fluxes_fd) mapped to the fundamental domain.

Return type:

Tuple[Array, complex, Array]

See also: map_to_fd_tau(), monodromy_matrix()

map_to_fd_tau(tau, fluxes, return_SL2Z_matrix=False, cutoff=1000000000000000.0, verbose=False)#

Map of the axio-dilaton value and the flux vector to the fundamental domain (FD) of \(\text{SL}(2,\mathbb{Z})\).

Note

Per default, this function only returns the value of the axio-dilaton and the fluxes. It is however also possible to return the \(\text{SL}(2,\mathbb{Z})\) transformation taking the input value \(\tau\) of the axio-dilaton to the fundamental domain.

Parameters:
  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – The flux vector used in the mapping.

  • return_SL2Z_matrix (bool) – If True, also returns the \(\text{SL}(2,\mathbb{Z})\) matrix. Defaults to False.

  • cutoff (float) – Safety cutoff for the iteration count. Defaults to 1e15.

  • verbose (bool) – If True, enables verbose mode. Defaults to False.

Returns:

Tuple(tau_fd, fluxes_fd) or (tau_fd, fluxes_fd, SL2Z_matrix) if return_SL2Z_matrix=True. Returns (None, None) if the input is invalid.

mass_matrix(moduli, moduli_c, tau, tau_c, fluxes, mode=None, noscale=True, use_real_derivatives=False)#

Returns the mass matrix after canonical normalisation of the kinetic terms.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – : Value of axio-dilaton.

  • tau_c (complex) – Value of complex conjugate axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – The mode to compute the mass matrix. For mode=None, uses the general Hessian from explicit second derivatives of the scalar potential. For mode="SUSY", computes Hessian at a SUSY locus assuming \(D_I W=0\) using standard SUGRA formulas for the Hessian. For "real", calculates Hessian for the real and imaginary components of the complex scalar fields. Defaults to None.

Returns:

Array – Mass matrix of the canonically normalised fields.

Return type:

Array

mirror_volume(moduli, moduli_c)#

Returns the value of the mirror dual Calabi-Yau volume.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

Returns:

complex – Mirror dual Calabi-Yau volume.

Return type:

complex

Aliases:

A(), mirror_volume(), V_tilde()

See also: period_vector()

See also: kahler_potential()

moduli_to_periods(moduli, conj=False)#

Transforms complex structure moduli to periods for the global choice of gauge.

Parameters:
  • moduli (Array) – Values of the complex structure moduli.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the periods.

Return type:

Array

monodromy_matrix(n)#

Computes the monodromy matrix \(T(\vec{n})\) for a general integer shift \(z^a \to z^a + n^a\).

This is the product \(T(\vec{n}) = \prod_b T_b^{n_b}\). The LCS monodromy matrices commute (maximally unipotent monodromy), so the order does not matter.

Parameters:

n (array-like) – Integer shift vector of shape (h12,).

Returns:

np.ndarray – Integer monodromy matrix of shape (2*h12+2, 2*h12+2).

Return type:

ndarray

See also: monodromy_matrix_single()

monodromy_matrix_single(b)#

Computes the monodromy matrix \(T_b\) for the shift \(z^b \to z^b + 1\).

The period vector transforms as \(\Pi \to T_b \cdot \Pi\).

At LCS, uses the analytical formula from the intersection numbers, a-matrix, and b-vector. For other limits, falls back to a numerical computation via the period vector.

Note

The monodromy matrices receive no instanton corrections: the instanton sum \(F_{\mathrm{inst}}\) involves \(e^{2\pi i q_a z^a}\) which is invariant under \(z^a \to z^a + 1\).

Parameters:

b (int) – Index of the modulus to shift (0-based: b = 0, ..., h12-1).

Returns:

np.ndarray – Integer monodromy matrix of shape (2*h12+2, 2*h12+2).

Return type:

ndarray

See also: monodromy_matrix(), verify_monodromy()

newton_method_flux_vacua(moduli, tau, fluxes, mode=None, step_size_Newton=0.1, tol=1e-10, max_iters=100, print_progress=False, solver_mode='complex', moduli_max=None)#

Solves the minimum conditions for flux vacua using Newton’s method.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Value of axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – Whether to solve F-term conditions \(D_IW=0\) for SUSY minima or instead \(\partial_IV=0\) for general minima. Defaults to None.

  • step_size_Newton (float) – Step size to be used in Newton’s method. Defaults to 0.1.

  • tol (float) – Tolerance for the residual. Defaults to 1e-10.

  • max_iters (int) – Maximum number of iterations. Defaults to 100.

  • print_progress (bool) – Whether to print the progress of the minimisation. Defaults to False.

  • solver_mode (str) – Solver mode to use for the computation. Available options are "real" or "complex" to solve equations in terms of real or complex fields. Defaults to "complex".

Returns:
  • Array – Complex structure moduli values.

  • Array – Value of axio-dilaton.

  • float – Residual \(\sum_A |D_A W|\) of the \(F\)-terms.

Return type:

Tuple[int, Array, Array, float]

period_vector(moduli, conj=False)#

Returns the period vector \(\Pi\) at a given point in moduli space.

Note

To compute the period vector in terms of the periods directly, please use jaxvacua.periods.periods.period_vector_per().

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

Array – Value of the period vector \(\Pi\).

Return type:

Array

See also: prepot()

See also: dF()

See also: jaxvacua.periods.periods.period_vector_per()

periods_to_moduli(XPer)#

Transforms periods to complex structure moduli.

Parameters:

XPer (Array) – Values of the periods.

Returns:

Array – Value of the complex structure moduli.

Return type:

Array

pfv_to_flux(M, K)#

Returns full flux vector from M- and K-vector specifying PFV.

Parameters:
  • M (Array) – M-vector.

  • K (Array) – K-vector.

Returns:

Array – Flux vector.

Return type:

Array

pfv_to_moduli(M, K, tau)#

Returns values of the complex structure moduli at the level of the PFV.

Parameters:
  • M (Array) – M-vector.

  • K (Array) – K-vector.

  • tau (complex) – Axio-dilaton value.

Returns:

Array – Values of complex structure moduli.

Return type:

Array

prepot(moduli, conj=False)#

Computes the pre-potential for given values of the moduli.

Note

We return the value of the pre-potential in terms projective coordinates

\[z^{i}=\frac{X^i}{X^0}\, .\]

Per default, we work in the gauge choice \(X^0=1\), but other gauge choices can be provided as inputs.

Note

We provide the option to compute the pre-potential and some additional functions in terms of the periods directly, see in particular jaxvacua.periods.periods.F_LCS_per(), jaxvacua.periods.periods.prepot_per() and jaxvacua.periods.periods.period_vector_per().

Warning

The moduli space limit around which the pre-potential is computed is set by the global parameter self.periods.limit. Currently, only self.periods.limit="LCS" is supported.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

Returns:

complex – Value of the prepotential \(F(z^i)\).

Return type:

complex

Errors:

ValueError: If the moduli space limit is not identified.

Aliases:

F()

See also: prepot_per()

projection_fluxes(moduli, tau, fluxes, mode=None)#

Computes the Hodge decomposition of the 3-form flux \(G_3 = F_3 - \tau H_3\) into its \((p,q)\)-components on the Calabi-Yau threefold.

Parameters:
  • moduli (Array) – Values for the complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • mode (str) – If mode="SUSY", returns only \((2,1)\) and \((0,3)\) components.

Returns:
  • Array\((3,0)\)-component of the 3-form flux.

  • Array\((2,1)\)-component of the 3-form flux.

  • Array\((1,2)\)-component of the 3-form flux.

  • Array\((0,3)\)-component of the 3-form flux.

riemann_tensor(moduli, moduli_c, tau, tau_c)#

Returns the Riemann curvature tensor \(R_{i\bar{\jmath}k\bar{l}}\) of the Kähler moduli space.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Value of the axio-dilaton.

  • tau_c (complex) – Complex conjugate value of the axio-dilaton.

Returns:

Array – Riemann tensor \(R_{i\bar{\jmath}k\bar{l}}\) with shape (n, n, n, n) and index ordering [i, j̄, k, l̄].

Return type:

Array

See also: christoffel_symbols(), dddK(), dddK_c()

run_calibration(Nmax=None, n_sample=50, n_test=200, target_acceptance=0.8, modes=None, sampler=None, verbose=True)#

Convenience wrapper that runs the full Gaussian-M-prior calibration pipeline in one call:

  1. _precompute_M_eigensystem() — eigen-decomposes the best-conditioned ISD matrix across n_sample moduli points.

  2. _estimate_sigmas() — analytical σ-per-mode defaults from the eigensystem.

  3. calibrate_priors() — empirical binary-search refinement to hit target_acceptance.

Roughly 1-5 s per ISD mode on h12=2 (longer for larger geometries). Recommended before any sample_critical_points() run with flux_prior="gaussian" (the default) for non-trivial Nmax.

Parameters:
  • Nmax (int) – tadpole bound for both stages. Default: self.D3_tadpole.

  • n_sample (int) – moduli points scanned in step 1. Default: 50.

  • n_test (int) – candidates per σ trial in step 3. Default: 200.

  • target_acceptance (float) – target acceptance rate for the binary-search. Default: 0.8.

  • modes (list) – ISD modes to calibrate. Default: ["F", "H", "ISD+", "ISD-"].

  • sampler (data_sampler, optional) – defaults to self.sampler.

  • verbose (bool) – print per-step progress.

Returns:
  • ``dict[str, float]`` – the calibrated σ per ISD mode (also

  • stored on ``self._calibrated_sigmas``).

Return type:

dict

Example:

finder = jvc.FluxVacuaFinder(h12=2, model_ID=1)
finder.run_calibration(Nmax=200)
vacua = finder.sample_critical_points(
    Nmax=200, n_target=100, solver="hybrid",
)
sample_SUSY_flux_vacua(N=100, sampler=None, rns_key=None, max_iters=10, moduli_sampling_mode='cone', max_tadpole=None, objective_fct=None, optimiser=None, optimisers=None, constraints=None, mode=None, tol=1e-10, vmap_dim=100, print_progress=False, deduplicate=True, step_size=1.0, max_resample_attempts=200, max_batches=1000, errors='raise')#

Samples SUSY flux vacua.

Parameters:
  • N (int) – Defaults to 100.

  • sampler (data_sampler, optional) – Defaults to None.

  • rns_key (PRNGKey, optional) – PRNG random key. Defaults to None.

  • max_iters (int) – Maximum number of iterations. Defaults to 100.

  • moduli_sampling_mode (str) – Sampling mode for the moduli values. Defaults to "cone".

  • max_tadpole (int | None) – Maximum tadpole to use for the sampling. Defaults to None.

  • objective_fct (Optional[Callable]) – Objective function to miminise.

  • optimiser (Optional[Callable]) – Optimiser to be used for the minimisation.

  • optimisers (list | None) – List of optimisers to be used for the minimisation.

  • tol (float) – Tolerance for the residual. Defaults to 1e-10.

  • print_progress (bool) – Whether to print the progress of the minimisation. Defaults to False.

  • constraints (Optional[Callable]) – Defaults to None.

  • mode (str | None) – Solving mode specifying we want to solve F-term conditions with random fluxes (mode="random") or using ISD bias (mode="ISD") for the fluxes. Defaults to None.

  • vmap_dim (int) – Array dimension to use in vmapping. Defaults to 100.

  • step_size (float) – Damping factor forwarded to linearised_shifts(); the moduli/axio-dilaton are updated by step_size times the linearised shift each iteration. 1.0 is the full step. Defaults to 1.0.

  • max_resample_attempts (int) – Maximum number of times initial guesses are re-sampled while searching for a batch in which at least one candidate passes the one-step filter. Bounds the inner loop so a geometry/mode that rarely yields passing candidates cannot spin forever. Defaults to 200.

  • max_batches (int) – Maximum number of outer sampling batches before giving up on reaching N. Defaults to 1000.

  • errors (str) – Behaviour when max_resample_attempts or max_batches is exhausted — "raise" raises a RuntimeError (fail fast), "warn" emits a warning and returns the partial result. Defaults to "raise".

Returns:

Tuple[Array, Array, Array, Array] – Complex structure moduli, axio-dilaton values, fluxes, and residuals.

Return type:

Tuple[Array, Array, Array, Array]

sample_SUSY_vacua_from_fluxes(fluxes_init=None, initial_guesses=None, N=100, sampler=None, rns_key=None, max_iters=10, moduli_sampling_mode='cone', max_tadpole=None, objective_fct=None, optimiser_init=None, optimiser_steps=None, constraints=None, mode=None, tol=1e-10, vmap_dim_flux=10, vmap_dim_pts=10, print_progress=False, deduplicate=True, step_size=1.0, max_batches=1000, errors='raise')#

Samples SUSY flux vacua for given input fluxes.

Parameters:
  • fluxes_init (Array, optional) – Input fluxes.

  • initial_guesses (Tuple[Array,Array], optional) – Initial guesses. Format: (moduli,tau).

  • N (int, optional) – Defaults to 100.

  • sampler (data_sampler, optional) – Defaults to None.

  • rns_key (PRNGKey, optional) – PRNG random key. Defaults to None.

  • max_iters (int, optional) – Maximum number of iterations. Defaults to 100.

  • moduli_sampling_mode (str, optional) – Sampling mode for the moduli values. Defaults to "cone".

  • max_tadpole (int, optional) – Maximum tadpole to use for the sampling. Defaults to None.

  • objective_fct (Callable, optional) – Objective function to miminise.

  • optimiser (Callable, optional) – Optimiser to be used for the minimisation.

  • optimisers (list, optional) – List of optimisers to be used for the minimisation.

  • tol (float, optional) – Tolerance for the residual. Defaults to 1e-10.

  • print_progress (bool, optional) – Whether to print the progress of the minimisation. Defaults to False.

  • constraints (Callable, optional) – Defaults to None.

  • mode (str, optional) – Solving mode specifying we want to solve F-term conditions with random fluxes (mode="random") or using ISD bias (mode="ISD") for the fluxes. Defaults to None.

  • vmap_dim_flux (int, optional) – Array dimension to use in vmapping over fluxes. Defaults to 10.

  • vmap_dim_pts (int, optional) – Array dimension to use in vmapping over initial guesses. Defaults to 10.

  • step_size (float) – Damping factor forwarded to linearised_shifts(); the moduli/axio-dilaton are updated by step_size times the linearised shift each iteration. 1.0 is the full step. Defaults to 1.0.

  • max_batches (int) – Maximum number of sampling batches before giving up on reaching N. Bounds the loop so it cannot spin forever. Defaults to 1000.

  • errors (str) – Behaviour when max_batches is exhausted — "raise" raises a RuntimeError (fail fast), "warn" emits a warning and returns the partial result. Defaults to "raise".

Returns:
  • int – Number of iterations.

  • Array – Complex structure moduli values.

  • Array – Value of axio-dilaton.

  • Array – Boolean array specifying whether constraints are satisfied.

  • Array – Residuals \(\sum_A |D_A W|\) of the \(F\)-terms.

Return type:

Tuple[Array, Array, Array, Array]

sample_critical_points(Nmax=None, n_target=100, n_batch=10000, max_batches=20, isd_mode='ISD-', solver='newton', step_size=1.0, newton_tol=1e-10, newton_max_iters=300, optax_steps=1000, optax_objective='dV2', optimiser=None, classify=True, deduplicate=True, noscale=True, flux_prior='gaussian', flux_prior_sigma=None, moduli_max=None, map_to_fd=None, sampler=None, verbose=True)#

Sample critical points of the scalar potential \(V\) by drawing Gaussian-M-prior flux candidates, ISD-completing them, refining via the chosen solver, then filtering by physicality and deduplicating.

Ties together _generate_flux_candidates() (C3), the chosen refinement solver, is_physical() (A3), to_fd() (A4), dedup_key() (A1), and classify_solution() (A2).

Solver dispatch (solver kwarg):

  • "newton" — FVF Newton via jax.vmap() over the converged batch. Uses the B1+B2 guards (runaway escape + singular-Hessian protection). Best when starting points are already near a critical point (e.g. SUSY-mode initialisations).

  • "adam" / "lbfgs" — per-candidate _solve_dV_optax_single(). Python loop; slow but robust to bad initial conditions. Useful for one-off debugging or when optax-only convergence is desired.

  • "adam_v" — batched _solve_dV_optax_batch() with cosine-decay schedule + gradient clipping. Vectorised via lax.scan + vmap. First-order so wider basin of attraction; pair with optax_steps in the high hundreds.

  • "hybrid" — adam_v warm-start (fast vmapped optax) followed by per-candidate Newton polish on the near-converged subset. Default-recommended for large non-SUSY scans — combines the robustness of optax with Newton’s quadratic convergence.

  • "scipy" — per-candidate scipy.optimize.root(method='hybr') with analytical Jacobian. Sequential Python loop. Robust; useful when the JAX-side solvers struggle.

Quick decision table (typical for h12=2, Nmax=200, n_batch≈1000):

solver

speed

robustness

when to use

newton

fastest

moderate

warm starts; SUSY-like inits

adam_v

fast

high (1st- order)

cold starts; large batch

hybrid

moderate

very high

default for non-SUSY sampling at scale

scipy

slow (no JAX)

very high

small N, debugging, when JAX paths fail

adam, lbfgs

slowest (per-cand)

high (1st- order)

single-candidate diagnostics

The C-cluster convention applies: formerly-instance kwargs are now method-level.

Parameters:
  • Nmax (int) – tadpole bound. Default: self.D3_tadpole (the geometry’s natural maximum).

  • n_target (int) – stop once this many critical points are found. Default: 100.

  • n_batch (int) – candidates per batch. Default: 10_000.

  • max_batches (int) – batch cap. Default: 20.

  • isd_mode (str) – one of "F", "H", "ISD+", "ISD-". Default: "ISD-".

  • solver (str) – see dispatch table above. Default: "newton".

  • step_size (float) – Newton step size. Default: 1.0.

  • newton_tol (float) – convergence tolerance. Default: 1e-10.

  • newton_max_iters (int) – Newton iteration cap. Default: 300.

  • optax_steps (int) – step count for optax solvers. Default: 1000.

  • optax_objective (str) – "dV2", "log_dV2", or "V". Default: "dV2".

  • optimiser (optax.GradientTransformation, optional) – custom optimiser overrides solver.

  • classify (bool) – attach Hessian classification. Default: True.

  • deduplicate (bool) – streaming dedup via dedup_key(). Default: True.

  • noscale (bool) – pass-through to V/dV/ddV. Default: True.

  • flux_prior (str) – "gaussian" (default), "M_weighted", or "uniform".

  • flux_prior_sigma (float) – per-call σ override.

  • moduli_max (float) – runaway bound for Newton’s B1 guard. Also used post-warm-start in solver="hybrid".

  • map_to_fd (bool) – if None (default), uses self._map_to_fd. Explicit True/False overrides.

  • sampler (data_sampler, optional) – defaults to self.sampler.

  • verbose (bool) – print per-batch + final summary. Default: True.

Returns:
  • ``list[dict]`` – one dict per surviving critical point with keys

  • ``flux``, ``moduli``, ``tau``, ``residual``, and (when

  • ``classify=True``) ``V``, ``|DW|``, ``eigenvalues``,

  • ``is_susy``, ``is_minimum``, ``Nflux``.

Return type:

list

property sampler: data_sampler#

Description: Lazily-initialised data_sampler for this model.

The sampler is constructed on first access and cached for subsequent calls. Sampling bounds are configured via the constructor arguments flux_bounds, axion_bounds, dilaton_bounds, moduli_bounds, and seed. To use a custom sampler instead, pass it explicitly to methods that accept a sampler keyword argument.

save_calibration(Nmax, path=None, flux_prior='gaussian')#

Save calibrated prior parameters to a JSON file for reuse.

Parameters:
  • Nmax (int) – tadpole bound the calibration is for. Required; used in the default filename and recorded in the JSON.

  • path (str) – explicit save path. If None (default), uses jaxvacua/models/{model_type}/h12_{h12}/critical_points_prior_Nmax{Nmax}.json, falling back to the current directory.

  • flux_prior (str) – "gaussian", "M_weighted", or "uniform" — recorded in the JSON. Default: "gaussian".

Returns:

str – path to the saved file.

Return type:

str

Pre-requisite:

self._calibrated_sigmas must be populated (via _estimate_sigmas() or calibrate_priors()).

scalar_potential(moduli, moduli_c, tau, tau_c, fluxes, noscale=True, normalise=False)#

Returns the value of the \(F\)-term scalar potential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • moduli_c (Array) – Complex conjugate values for complex structure moduli.

  • tau (complex) – Axio-dilaton value.

  • tau_c (complex) – Complex conjugate value for axio-dilaton.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • noscale (bool) – If True, uses the no-scale flux scalar potential. Defaults to True.

  • normalise (bool) – If True, rescales superpotential by \(\sqrt{2/\pi}\). Defaults to False.

Returns:

complex – Value of the \(F\)-term scalar potential induced by 3-form fluxes.

Return type:

complex

Aliases:

V(), scalar_potential()

See also: DW()

See also: inverse_kahler_metric()

See also: kahler_potential()

superpotential(moduli, tau, fluxes, conj=False, normalise=False)#

Calculates the value of the superpotential for given flux, moduli and axio-dilaton.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

  • normalise (bool) – If True, rescales superpotential by \(\sqrt{2/\pi}\). Defaults to False.

Returns:

complex – Value of the superpotential.

Return type:

complex

superpotential_gauge_invariant(moduli, tau, fluxes, conj=False, normalise=True)#

Calculates the value of the gauge invariant version of the flux superpotential.

Parameters:
  • moduli (Array) – Complex structure moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

  • conj (bool) – If True, computes the complex conjugate. Defaults to False.

  • normalise (bool) – If True, rescales superpotential by \(\sqrt{2/\pi}\). Defaults to True.

Returns:

complex – Value of the gauge invariant superpotential.

Return type:

complex

See also: superpotential()

See also: kahler_potential()

tadpole(fluxes)#

Calculates the D3-charge for given fluxes.

Parameters:

fluxes (Array) – Array of fluxes. The ordering starts with RR-fluxes, then the NSNS-fluxes.

Returns:

int – D3-charge induced by 3-form fluxes.

Return type:

float

to_fd(moduli, tau, fluxes)#

Optionally map (moduli, tau, fluxes) to the fundamental domain via map_to_fd(), with numpy/JAX marshalling at the boundary.

Whether the mapping is applied is controlled by the constructor flag self._map_to_fd (set via map_to_fd= kwarg at finder construction). If False, the inputs are returned unchanged.

Thin delegator over jaxvacua.flux_utils.map_to_fd(). See its docstring for full detail and the rationale for keeping this as a separate wrapper over map_to_fd() (the actual math method).

Return type:

tuple

verify_monodromy(b, z=None, tol=1e-08)#

Numerically verify the monodromy matrix by checking \(T_b \cdot \Pi(z) = \Pi(z + e_b)\).

Parameters:
  • b (int) – Direction index for the shift.

  • z (Array, optional) – Test point. If None, a random point is generated.

  • tol (float) – Tolerance for the check.

Returns:

dict – Dictionary with keys 'T_b', 'max_error', 'passed'.

Return type:

dict