jaxvacua.freezer.Freezer#
- class Freezer(model)#
Bases:
ABCAbstract 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 outsolve_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 providingsuperpotential,DW,DW_x,dDW_x,_convert_real_to_complex, and period data vialcs_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
Description: Indices of the heavy moduli within the full moduli array.
Description: Indices of the light moduli (complement of
heavy_indices).Description: Number of heavy moduli.
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_xbut 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) – IfTrue, uses the no-scale scalar potential \(V = e^K K^{I\bar J} D_I W D_{\bar J}\bar W\). Defaults toTrue.
- 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.
Details
Let \(\phi^\alpha = (a^1, v^1, \ldots, a^{n_{\rm light}}, v^{n_{\rm light}}, c_0, s)\) denote the real light-field coordinates, where \(z^i = a^i + \mathrm{i}\,v^i\) and \(\tau = c_0 + \mathrm{i}\,s\). This function returns the restriction
\[\nabla_\phi V \big|_{\phi^\alpha} = \partial_{\phi^\alpha} V(x_{\rm full}(\phi))\]where \(x_{\rm full}(\phi)\) substitutes the on-shell heavy moduli via
_real_light_to_full().- Parameters:
x_light (
Array) – Real coordinates for light moduli and axio-dilaton.fluxes (
Array) – Full flux vector.noscale (
bool) – IfTrue, uses the no-scale scalar potential. Defaults toTrue.
- 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.
Details
Using the same real light-field coordinates \(\phi^\alpha = (a^1, v^1, \ldots, a^{n_{\rm light}}, v^{n_{\rm light}}, c_0, s)\) as in
dV_x_light(), this function returns the block of the full Hessian restricted to the light directions:\[(\nabla\nabla V)_{\alpha\beta} = \partial_{\phi^\alpha}\partial_{\phi^\beta} V\]with heavy moduli substituted by their on-shell values.
- Parameters:
x_light (
Array) – Real coordinates for light moduli and axio-dilaton.fluxes (
Array) – Full flux vector.noscale (
bool) – IfTrue, uses the no-scale scalar potential. Defaults toTrue.
- 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