jaxvacua.freezer.Freezer#

class Freezer(model)#

Bases: ABC

Abstract base class for a reduced effective field theory obtained by integrating out a set of heavy moduli.

Given a full model with moduli \((z_{\text{heavy}}, z_{\text{light}}, \tau)\) and fluxes, the reduced EFT expresses the heavy moduli as functions of the light fields via their leading-order EOM:

\[z_{\text{heavy}} = z_{\text{heavy}}(z_{\text{light}}, \tau, \text{fluxes})\]

and provides the superpotential, its derivatives, etc. evaluated on this solution.

Subclasses must implement:
  • heavy_indices: which moduli are frozen out

  • solve_heavy: solve for heavy moduli given light fields

  • _real_light_to_full: convert real light-field coordinates to full array

__init__(model)#

Initialise the Freezer base class.

Parameters:

model (Any) – A flux EFT model object providing superpotential, DW, DW_x, dDW_x, _convert_real_to_complex, and period data via lcs_tree.

Methods

DW_light(z_light, z_light_c, tau, tau_c, ...)

Covariant derivatives \(D_i W\) with respect to the light moduli, with heavy moduli on-shell.

DW_x_light(x_light, fluxes, **kwargs)

Gradient of the superpotential \(\partial_{x^a} W\) in real coordinates for the light moduli, with heavy moduli on-shell.

V_x_light(x_light, fluxes[, noscale])

Scalar potential \(V\) evaluated at the light-field coordinates, with heavy moduli on-shell.

__init__(model)

Initialise the Freezer base class.

dDW_x_light(x_light, fluxes, **kwargs)

Hessian \(\partial_{x^a}\partial_{x^b} W\) in real coordinates for the light moduli.

dV_x_light(x_light, fluxes[, noscale])

Gradient of the scalar potential \(\nabla_\phi V\) with respect to the real light-field coordinates, with heavy moduli on-shell.

ddV_x_light(x_light, fluxes[, noscale])

Hessian of the scalar potential \(\partial_{\phi^\alpha}\partial_{\phi^\beta} V\) with respect to the real light-field coordinates, with heavy moduli on-shell.

reconstruct_full_moduli(z_light, tau, ...)

Reconstruct the full moduli array by solving for the heavy moduli and inserting them at the correct positions.

solve_heavy(z_light, tau, fluxes, **kwargs)

Solve the leading-order EOM for the heavy moduli as functions of the light moduli, axio-dilaton, and fluxes.

superpotential(z_light, tau, fluxes, **kwargs)

Superpotential of the reduced theory.

Attributes

heavy_indices

Description: Indices of the heavy moduli within the full moduli array.

light_indices

Description: Indices of the light moduli (complement of heavy_indices).

n_heavy

Description: Number of heavy moduli.

n_light

Description: Number of light moduli.

DW_light(z_light, z_light_c, tau, tau_c, fluxes, **kwargs)#

Covariant derivatives \(D_i W\) with respect to the light moduli, with heavy moduli on-shell.

Parameters:
  • z_light (Array) – Light moduli values.

  • z_light_c (Array) – Conjugate light moduli values.

  • tau (complex) – Axio-dilaton.

  • tau_c (complex) – Conjugate axio-dilaton.

  • fluxes (Array) – Full flux vector.

Returns:

Array\(D_i W\) for the light moduli and \(D_\tau W\).

Return type:

Array

DW_x_light(x_light, fluxes, **kwargs)#

Gradient of the superpotential \(\partial_{x^a} W\) in real coordinates for the light moduli, with heavy moduli on-shell.

This is the analogue of model.DW_x but restricted to the light degrees of freedom.

Parameters:
  • x_light (Array) – Real variables for light moduli and axio-dilaton.

  • fluxes (Array) – Full flux vector.

Returns:

Array – Real gradient restricted to light directions.

Return type:

Array

V_x_light(x_light, fluxes, noscale=True, **kwargs)#

Scalar potential \(V\) evaluated at the light-field coordinates, with heavy moduli on-shell.

Parameters:
  • x_light (Array) – Real coordinates for light moduli and axio-dilaton.

  • fluxes (Array) – Full flux vector.

  • noscale (bool) – If True, uses the no-scale scalar potential \(V = e^K K^{I\bar J} D_I W D_{\bar J}\bar W\). Defaults to True.

Returns:

float – Value of \(V\) with heavy moduli at their on-shell values.

Return type:

float

dDW_x_light(x_light, fluxes, **kwargs)#

Hessian \(\partial_{x^a}\partial_{x^b} W\) in real coordinates for the light moduli.

Parameters:
  • x_light (Array) – Real variables for light moduli and axio-dilaton.

  • fluxes (Array) – Full flux vector.

Returns:

Array – Hessian restricted to light directions.

Return type:

Array

dV_x_light(x_light, fluxes, noscale=True, **kwargs)#

Gradient of the scalar potential \(\nabla_\phi V\) with respect to the real light-field coordinates, with heavy moduli on-shell.

Parameters:
  • x_light (Array) – Real coordinates for light moduli and axio-dilaton.

  • fluxes (Array) – Full flux vector.

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

Returns:
  • Array – Gradient \(\partial_{\phi^\alpha} V\), restricted to

  • light directions, of shape `` (2 * n_light + 2,)

Return type:

Array

ddV_x_light(x_light, fluxes, noscale=True, **kwargs)#

Hessian of the scalar potential \(\partial_{\phi^\alpha}\partial_{\phi^\beta} V\) with respect to the real light-field coordinates, with heavy moduli on-shell.

Parameters:
  • x_light (Array) – Real coordinates for light moduli and axio-dilaton.

  • fluxes (Array) – Full flux vector.

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

Returns:
  • Array – Hessian block restricted to light directions, of shape

  • `` (2 * n_light + 2, 2 * n_light + 2)

Return type:

Array

abstract property heavy_indices: Tuple[int, ...]#

Description: Indices of the heavy moduli within the full moduli array.

property light_indices: Tuple[int, ...]#

Description: Indices of the light moduli (complement of heavy_indices).

property n_heavy: int#

Description: Number of heavy moduli.

property n_light: int#

Description: Number of light moduli.

reconstruct_full_moduli(z_light, tau, fluxes, **kwargs)#

Reconstruct the full moduli array by solving for the heavy moduli and inserting them at the correct positions.

Parameters:
  • z_light (Array) – Light moduli values.

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Full flux vector.

Returns:

Array – Full moduli array of length h12.

Return type:

Array

abstractmethod solve_heavy(z_light, tau, fluxes, **kwargs)#

Solve the leading-order EOM for the heavy moduli as functions of the light moduli, axio-dilaton, and fluxes.

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

  • tau (complex) – Axio-dilaton value.

  • fluxes (Array) – Full flux vector.

Returns:

Array – Values of the heavy moduli.

Return type:

Array

superpotential(z_light, tau, fluxes, **kwargs)#

Superpotential of the reduced theory.

Parameters:
  • z_light (Array) – Light moduli values.

  • tau (complex) – Axio-dilaton.

  • fluxes (Array) – Full flux vector.

Returns:

complex\(W(z_{\text{light}}, \tau)\) with heavy moduli on-shell.

Return type:

complex