jaxvacua.periods.periods#
- class periods(h12=None, model_ID=None, model_type='KS', limit='LCS', save_file=False, use_cytools=False, mirror_cy=None, lcs_tree_input=None, model_file='', model_data=None, basis_change=None, maximum_degree=0, grading_vector=None, use_gvs=True, prange=5, ncf=None, conifold_curve=None, conifold_basis=True, period_input=None, prepotential_input=None, **kwargs)#
Bases:
objectPeriod class for Calabi-Yau threefold compactifications. Provides functions to compute periods, prepotential, Kähler potential, gauge kinetic matrix, and derived objects at various moduli space limits (LCS, coniLCS, etc.).
- __init__(h12=None, model_ID=None, model_type='KS', limit='LCS', save_file=False, use_cytools=False, mirror_cy=None, lcs_tree_input=None, model_file='', model_data=None, basis_change=None, maximum_degree=0, grading_vector=None, use_gvs=True, prange=5, ncf=None, conifold_curve=None, conifold_basis=True, period_input=None, prepotential_input=None, **kwargs)#
Period class.
This class defines functions of the periods of Calabi-Yau threefolds \(X\). They are obtained from integrating the holomorphic 3-form \(\Omega\) over a symplectic basis of \(H_3(X,\mathbb{Z})\).
- Parameters:
h12 (
int|None) – The number of moduli for the compactified geometry.model_type (
str) – The type of manifold considered for the compactification. Currently,"KS"and"CICY"are available.model_ID (
int|None) – ID specifying a certain model.limit (
str) – String identifying the type of periods to be considered. Currently, only"LCS"is available.model_data (
dict|None) – Contains model data like triple intersection numbers etc.maximum_degree (
int) – Maximum degree used for the instanton sum.use_cytools (
bool) – Whether or not to use CYTools to compute topological data of Calabi-Yau.mirror_cy (
object|None) – Mirror Calabi-Yau threefold.basis_change (
Array|None) – Basis transformation to be applied to topological data of Calabi-Yau.grading_vector (
Array|None) – Grading vector to be used for the GV computation.lcs_tree_input (
object|None) – Pre-built lcs_tree object. If provided, skips model construction. Defaults toNone.ncf (
int|None) – Number of conifolds for the coniLCS limit. Defaults toNone.conifold_curve (
object|None) – Conifold curve charges. Defaults toNone.prange (
int) – Truncation order for the polylogarithm series. Defaults to500.use_gvs (
bool) – Whether to use GV invariants instead of GW invariants for the instanton sum. Defaults toFalse.period_input (
Optional[Callable]) – Input for periods.prepotential_input (
Optional[Callable]) – Input for prepotential.save_file (
bool) – Save files for new models. Defaults toFalse.**kwargs – Extra inputs.
- Raises:
ValueError – If model inputs are inconsistent or required data is missing.
- h12#
\(h^{1,2}(X,\mathbb{Z})\) of the CY \(X\).
- Type:
int
- model_type#
Model type. Defaults to
None. Currently,"KS"and"CICY"are available.- Type:
str
- limit#
Moduli space limit. Defaults to
None. Currently, only"LCS"is available.- Type:
str
- model_ID#
Internal model ID. Defaults to
None.- Type:
int
- dimension_H3#
Dimension of \(H^{3}(X,\mathbb{Z})\).
- Type:
int
- _dimension_H3_tot#
Dimension of \(H^{3}(X,\mathbb{Z})\) plus dimension of \(H_{3}(X,\mathbb{Z})\).
- Type:
int
- period_input#
Input period function.
- Type:
object
- prepotential_input#
Input prepotential function.
- Type:
object
Methods
A_per(XPer, cXPer)Computes the value of the mirror CY volume \(\tilde{\mathcal{V}}\) as a function of the periods \(X^I\).
D_period_vector_per(XPer, cXPer[, conj])Computes the Kähler convariant derivative \(D_I\Pi\). of the period vector \(\Pi\).
F_LCS_per(XPer[, conj])Calculates the value of the LCS prepotential \(F_{\text{LCS}}\) in terms of the periods \(X^I\).
F_LCS_poly_per(XPer[, conj])Computes the polynomial part \(F_{\mathrm{poly}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the periods.
F_inst_per(XPer[, conj])Computes the instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the periods.
ISD_matrix(XPer, cXPer)Computes the value of the ISD-matrix \(\mathcal{M}\).
M(XPer, cXPer)Computes the value of the ISD-matrix \(\mathcal{M}\).
N(XPer, cXPer[, conj])Computes the value of the gauge kinetic matrix \(\mathcal{N}\).
PQ_per(XPer, cXPer[, conj])Computes the matrices \(P_{IJ}\) and \(Q^{I}\,_{J}\).
P_per(XPer, cXPer[, conj])Computes the matrix \(P_{IJ}\).
Q_inv_per(XPer, cXPer[, conj])Computes the inverse of the matrix \(Q^{I}\,_{J}\).
Q_per(XPer, cXPer[, conj])Computes the matrix \(Q^{I}\,_{J}\).
__init__([h12, model_ID, model_type, limit, ...])Period class.
compute_a_shift_monodromy(shift)Symplectic monodromy matrix induced by a shift of the prepotential \(a\)-matrix, \(a \to a + S\).
dM(XPer, cXPer)Returns the holomorphic derivative \(\partial_{X^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the periods \(X^I\).
dM_c(XPer, cXPer)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(XPer, cXPer[, 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(XPer, cXPer[, 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\).
gauge_kinetic_matrix(XPer, cXPer[, conj])Computes the value of the gauge kinetic matrix \(\mathcal{N}\).
gauge_kinetic_matrix_periods(XPer, cXPer[, conj])Computes value of the gauge kinetic matrix \(\mathcal{N}\) from periods.
gauge_kinetic_matrix_prepotential(XPer, cXPer)Computes value of the gauge kinetic matrix \(\mathcal{N}\) from prepotential.
grad_kahler_potential_per(XPer, cXPer[, conj])Computes derivatives \(\partial_{X^I}K\) of the Kähler potential \(K\) with respect to the periods :mathh`X^I`.
grad_period_vector_per(XPer[, conj])Computes derivatives \(\partial_{X^I}\Pi\) of the period vector \(\Pi\) with respect to the periods :mathh`X^I`.
kahler_potential_per(XPer, cXPer)Computes the value of the Kähler potential \(K\) as a function of the periods \(X^I\).
period_vector_per(XPer[, conj])Computes the period vector \(\Pi\) in terms of the periods \(X^I\).
prepot_grad_grad_per(XPer[, conj])Computes the second holomorphic derivatives \(F_{IJ}=\partial_{X^I}\partial_{X^J}F\) of the prepotential \(F\) with respect to the periods \(X^I\).
prepot_grad_per(XPer[, conj])Computes the holomorphic derivatives \(F_{I}=\partial_{X^I}F\) of the prepotential \(F\) with respect to the periods \(X^I\).
prepot_per(XPer[, conj])Computes the prepotential \(F\) in terms of the periods \(X^I\).
sigma()Returns the symplectic matrix
Attributes
F_coniLCS_bulk_per** 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_per** 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_poly_split_per** 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_per** 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_coni_per** 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_inst_per_coni** 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_poly_per** Class-level descriptor: surfaces a method only when the instance's limit is in the coniLCS family. Otherwise raises AttributeError so hasattr() returns False.
ddF_coniLCS_poly_per** Class-level descriptor: surfaces a method only when the instance's limit is in the coniLCS family. Otherwise raises AttributeError so hasattr() returns False.
dddF_coniLCS_poly_per** Class-level descriptor: surfaces a method only when the instance's limit is in the coniLCS family. Otherwise raises AttributeError so hasattr() returns False.
ddddF_coniLCS_poly_per** Class-level descriptor: surfaces a method only when the instance's limit is in the coniLCS family. Otherwise raises AttributeError so hasattr() returns False.
delete_coni_index** Class-level descriptor: surfaces a method only when the instance's limit is in the coniLCS family. Otherwise raises AttributeError so hasattr() returns False.
Description: The underlying lcs_tree object holding the CY model data.
- A_per(XPer, cXPer)#
Computes the value of the mirror CY volume \(\tilde{\mathcal{V}}\) as a function of the periods \(X^I\).
Details
The mirror CY volume \(\tilde{\mathcal{V}}\) is computed from the period vector \(\Pi\) as
\[\tilde{\mathcal{V}} = -\text{i}\, \Pi^\dagger\cdot \Sigma\cdot\Pi\, .\]- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.
- Returns:
Array – Value of the mirror CY volume in terms of the period \(X^I\).
- Return type:
complex
- D_period_vector_per(XPer, cXPer, conj=False)#
Computes the Kähler convariant derivative \(D_I\Pi\). of the period vector \(\Pi\).
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Values of \(D_I\Pi\).
- Return type:
Array
- F_LCS_per(XPer, conj=False)#
Calculates the value of the LCS prepotential \(F_{\text{LCS}}\) in terms of the periods \(X^I\).
Details
At Large Complex Structure (LCS), the prepotential can be expressed as
\[F_{\mathrm{LCS}}(X) = F_{\mathrm{poly}}(X) + F_{\mathrm{inst}}(X)\]where
\[F_{\mathrm{poly}}(X) = -\frac{1}{6X^0}\widetilde{\kappa}_{ijk}X^iX^jX^k+\frac{1}{2}a_{ij}X^iX^j +b_{i}X^i\, X^0 + \dfrac{\text{i}}{2}\tilde{\xi}\, (X^0)^2\, ,\]and
\[F_{\mathrm{inst}}(X) = -\frac{(X^0)^2}{(2\pi\mathrm{i})^3}\, \sum_{q\in\mathcal{M}(\widetilde{X})}\, n_q^{0}\, \text{Li}_3\left (\text{e}^{2\pi \text{i} q_i X^i / X^0}\right )\; , \quad \text{Li}_3\left (x\right )=\sum_{m=1}^{\infty}\, \dfrac{x^{m}}{m^{3}}\, .\]The former is computed via
F_LCS_poly_per(), while the latter inF_inst_per(). See the respective function for more details.- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
complex – Value of the LCS prepotential \(F_{\text{LCS}}\).
- Return type:
complex
See also:
F_LCS_poly_per()See also:
F_inst_per()
- F_LCS_poly_per(XPer, conj=False)#
Computes the polynomial part \(F_{\mathrm{poly}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the periods.
Details
The polynomial part \(F_{\mathrm{poly}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) can be expressed in terms of the periods \(X^I=(X^0,X^i)\) as
\[F_{\mathrm{poly}}(X) = -\frac{1}{6X^0}\widetilde{\kappa}_{ijk}X^iX^jX^k+\frac{1}{2}a_{ij}X^iX^j +b_{i}X^i\, X^0 + \dfrac{\text{i}}{2}\tilde{\xi}\, (X^0)^2\, .\]Here, \(\widetilde{\kappa}_{ijk}\) are the triple intersection numbers of the mirror dual Calabi-Yau threefold \(\widetilde{X}\). Here, we defined
\[\begin{split}a_{ij} = \dfrac{1}{2}\begin{cases} \widetilde{\kappa}_{iij} & i\geq j\\[0.3em] \widetilde{\kappa}_{ijj} & i<j \end{cases} \, , \quad b_i = \dfrac{1}{24} \int_{\tilde{D}^i}\, c_2(\widetilde{X})\, , \quad \tilde{\xi}=\frac{\zeta(3)\, \chi(\widetilde{X})}{(2\pi)^3}\, .\end{split}\]The \(a_{ij}\) are rational numbers, while the \(b_i\) are integers. The \(\tilde{D}^i\) are the divisors dual to the basis of \(H^{1,1}(\widetilde{X},\mathbb{Z})\). Finally, \(\chi(\widetilde{X})\) is the Euler characteristic of \(\widetilde{X}\). The last term in \(F_{\mathrm{poly}}\) is the so-called \((\alpha')^3\) 1-loop correction on the mirror dual side.
- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
complex – Value of the polynomial contribution \(F_{\mathrm{poly}}\) to the LCS prepotential \(F_{\mathrm{LCS}}\).
- Return type:
complex
See also:
F_LCS_per()
- F_inst_per(XPer, conj=False)#
Computes the instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) in terms of the periods.
Details
The instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\) can be expressed in terms of the periods \(X^I=(X^0,X^i)\) as
\[F_{\mathrm{inst}}(X) = -\frac{(X^0)^2}{(2\pi\mathrm{i})^3}\, \sum_{q\in\mathcal{M}(\widetilde{X})}\, n_q^{0}\, \text{Li}_3\left (\text{e}^{2\pi \text{i} q_i X^i / X^0}\right )\; , \quad \text{Li}_3\left (x\right )=\sum_{m=1}^{\infty}\, \dfrac{x^{m}}{m^{3}}\, .\]Here the sum is performed over all effective curve classes \(q\in\mathcal{M}(\widetilde{X})\) in the Mori cone \(\mathcal{M}(\widetilde{X})\) of the mirror dual manifold \(\widetilde{X}\). Here, the \(n_q^{0}\) are the genus-0 Gopakumar-Vafa (GV) invariants which can be computed systematically using methods described in hep-th/9308122.
The infinite sum appearing in the poly-logarithm \(\text{Li}_3\) can be rewritten to arrive at
\[\sum_{q\in\mathcal{M}(\widetilde{X})}\, n_q^{0}\, \text{Li}_3\left (\text{e}^{2\pi \text{i} q_i X^i / X^0}\right ) = \sum_{q\in\mathcal{M}(\widetilde{X})}\, N_q\, \text{e}^{2\pi \text{i} q_i X^i / X^0}\]in terms of genus-0 Gromov-Witten (GW) invariants \(N_q\). We typically work with the latter to simplify the calculation. The relation between the two types of invariants is more explicitly given by
\[N_q = \sum_{d|q}\, \dfrac{1}{d^3}\, n_{q/d}^{0}\, .\]Here, the sum runs over all divisors \(d\) of the curve class \(q\). The \(N_q\) are typically rational numbers, while the \(n_q^{0}\) are integers. The curve classes \(q\) are specified in a basis of the Mori cone \(\mathcal{M}(\widetilde{X})\) of the mirror dual Calabi-Yau threefold \(\widetilde{X}\). The Mori cone is dual to the Kähler cone of \(\widetilde{X}\). The curve classes \(q\) can be expressed in terms of the generators of the Mori cone. The curve classes are also referred to as curve charges in the following. The curve charges are stored in the attribute
GW_charges(GV_charges) for the GW (GV) invariants. The corresponding invariants are stored in the attributesGW_inv(GV_inv). The curve charges and invariants are limited to a certain maximum degree \(d=\text{max_deg}\) in the attributesGW_charges_lim,GV_charges_lim,GW_inv_lim,GV_inv_lim. The maximum degree can be specified when initialising the class. The maximum degree is defined with respect to a grading vector which can be specified when initialising the class. If no grading vector is provided, the default grading vector \((1,1,\ldots,1)\) is used. The maximum available degree for the instanton data is stored in the attributemax_available_deg. If the specified maximum degree exceeds the maximum available degree, a warning is raised and the maximum available degree is used instead.Note
The sum over curve classes is truncated at a certain maximum degree \(d=\text{max_deg}\) in our implementation. This is justified since the instanton contributions are exponentially suppressed at large complex structure. The maximum degree can be specified when initialising the class.
- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
complex – Value of the instanton part \(F_{\mathrm{inst}}\) of the LCS prepotential \(F_{\mathrm{LCS}}\).
- Return type:
complex
See also:
F_LCS_per()
- ISD_matrix(XPer, cXPer)#
Computes the value of the ISD-matrix \(\mathcal{M}\).
Details
Computes a matrix representation \(\mathcal{M}\) for the Hodge-\(\star\) operator for Calabi-Yau threefolds. It can be expressed in terms of the real and imaginary parts of the gauge kinetic matrix \(\mathcal{N} = \mathcal{R}+\mathrm{i}\mathcal{I}\) as
\[\begin{split}\mathcal{M} = \left (\begin{array}{cc} -\mathcal{I}^{-1} & \mathcal{I}^{-1}\mathcal{R} \\ \mathcal{R}\mathcal{I}^{-1} & -\mathcal{I}-\mathcal{R}\mathcal{I}^{-1}\mathcal{R} \end{array}\right )\end{split}\]see Eq. (2.15) in 2110.05511 or alternatively Eq. (3.7) in 2310.06040.
This so-called ISD-matrix \(\mathcal{M}\) possesses the following properties
\[\mathcal{M} = \mathcal{M}^T\; ,\quad \mathcal{M}^T\Sigma\mathcal{M} = \Sigma \; ,\quad \mathcal{M}^{-1}=\Sigma^T\mathcal{M}\Sigma\, .\]Moreover, it has positive eigenvalues which can be useful to bound the number of vacua satisfying the ISD condition \(DW=0\), see for example 2310.06040 and 2501.03984.
Warning
Our convention differs slightly from that of Eq. (3.7) in 2310.06040 due to the ordering of periods in the period vector. Specifically, we have
\[\mathcal{M}_{\mathrm{here}} = \mathcal{M}_{\mathrm{there}}^{-1}\, .\]- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.
- Returns:
Array – Value of the ISD-matrix \(\mathcal{M}\).
- Return type:
Array
- Aliases:
- M(XPer, cXPer)#
Computes the value of the ISD-matrix \(\mathcal{M}\).
Details
Computes a matrix representation \(\mathcal{M}\) for the Hodge-\(\star\) operator for Calabi-Yau threefolds. It can be expressed in terms of the real and imaginary parts of the gauge kinetic matrix \(\mathcal{N} = \mathcal{R}+\mathrm{i}\mathcal{I}\) as
\[\begin{split}\mathcal{M} = \left (\begin{array}{cc} -\mathcal{I}^{-1} & \mathcal{I}^{-1}\mathcal{R} \\ \mathcal{R}\mathcal{I}^{-1} & -\mathcal{I}-\mathcal{R}\mathcal{I}^{-1}\mathcal{R} \end{array}\right )\end{split}\]see Eq. (2.15) in 2110.05511 or alternatively Eq. (3.7) in 2310.06040.
This so-called ISD-matrix \(\mathcal{M}\) possesses the following properties
\[\mathcal{M} = \mathcal{M}^T\; ,\quad \mathcal{M}^T\Sigma\mathcal{M} = \Sigma \; ,\quad \mathcal{M}^{-1}=\Sigma^T\mathcal{M}\Sigma\, .\]Moreover, it has positive eigenvalues which can be useful to bound the number of vacua satisfying the ISD condition \(DW=0\), see for example 2310.06040 and 2501.03984.
Warning
Our convention differs slightly from that of Eq. (3.7) in 2310.06040 due to the ordering of periods in the period vector. Specifically, we have
\[\mathcal{M}_{\mathrm{here}} = \mathcal{M}_{\mathrm{there}}^{-1}\, .\]- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.
- Returns:
Array – Value of the ISD-matrix \(\mathcal{M}\).
- Return type:
Array
- Aliases:
- N(XPer, cXPer, conj=False)#
Computes the value of the gauge kinetic matrix \(\mathcal{N}\).
Details
The gauge kinetic matrix \(\mathcal{N}\) is defined in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[\mathcal{N}_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )\, \cdot\, (X^{J},\, D_{\bar{\jmath}}\overline{X}^J)^{-1} = P_{IK} \, (Q^{-1})^{K}\,_{J}\]see e.g. Sect. 2 above Eq. (2.12) in 2110.05511. Here we defined the two matrices \(P_{IJ}\) and \(Q^{I}\,_{J}\) as
\[P_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )_{J} \, ,\quad Q^{I}\,_{J} = (X^{I},\, D_{\bar{\jmath}}\overline{X}^I)_{J}\, .\]In the presence of a prepotential \(F\), this object can be computed as follows (see e.g. Eq. (2.12) in 2110.05511)
\[\mathcal{N}_{IJ}= \overline{F}_{IJ} + +2\text{i}\, \dfrac{\text{Im}(F_{I L})X^{L} \, \text{Im}(F_{J K})X^{K}}{X^{M}\text{Im}(F_{MN})X^{N}}\]where \(F_{IJ}=\partial_{X^{I}}\partial_{X^{J}}F\) is the second derivative of the prepotential \(F\) with respect to the periods \(X^I\).
Both formulas for the gauge kinetic matrix \(\mathcal{N}\) have been implemented. The mode of computation depends on the provided input:
at LCS, we use the formula from the periods,
with input periods, we use the formula from the periods, and
otherwise, with input prepotential, we use the formula for the prepotential.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Value of the gauge kinetic matrix \(\mathcal{N}\).
- Return type:
Array
- PQ_per(XPer, cXPer, conj=False)#
Computes the matrices \(P_{IJ}\) and \(Q^{I}\,_{J}\).
Details
Computes the two matrices \(P_{IJ}\) and \(Q^{I}\,_{J}\) in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[P_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )_{J} \, ,\quad Q^{I}\,_{J} = (X^{I},\, D_{\bar{\jmath}}\overline{X}^I)_{J}\, ,\]see Eq. (3.5) in 2310.06040.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Values of \(P_{IJ}\).
Array – Values of \(Q^{I}\,_{J}\).
- Return type:
Tuple[Array,Array]
- P_per(XPer, cXPer, conj=False)#
Computes the matrix \(P_{IJ}\).
Details
Computes the matrix \(P_{IJ}\). in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[P_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )_{J}\, ,\]see Eq. (3.5) in 2310.06040.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Values of \(P_{IJ}\).
- Return type:
Array
- Q_inv_per(XPer, cXPer, conj=False)#
Computes the inverse of the matrix \(Q^{I}\,_{J}\).
Details
Computes the inverse of the matrix \(Q^{I}\,_{J}\) defined in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[Q^{I}\,_{J} = (X^{I},\, D_{\bar{\jmath}}\overline{X}^I)_{J}\, ,\]see Eq. (3.5) in 2310.06040.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Values of \((Q^{-1})^{I}\,_{J}\).
- Return type:
Array
- Q_per(XPer, cXPer, conj=False)#
Computes the matrix \(Q^{I}\,_{J}\).
Details
Computes the matrix \(Q^{I}\,_{J}\) in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[Q^{I}\,_{J} = (X^{I},\, D_{\bar{\jmath}}\overline{X}^I)_{J}\, ,\]see Eq. (3.5) in 2310.06040.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Values of \(Q^{I}\,_{J}\).
- Return type:
Array
- compute_a_shift_monodromy(shift)#
Symplectic monodromy matrix induced by a shift of the prepotential \(a\)-matrix, \(a \to a + S\).
Details
The LCS prepotential carries a quadratic term \(\tfrac{1}{2}\, a_{ij}\, X^i X^j\), so under \(a \to a + S\) it gains \(\tfrac{1}{2}\, S_{ij}\, X^i X^j\). The dual periods \(\mathcal{F}_I = \partial_I F\) then transform as
\[\mathcal{F}_i \to \mathcal{F}_i + S_{ij}\, X^j \quad (i,j=1,\ldots,h^{1,2})\,, \qquad \mathcal{F}_0 \to \mathcal{F}_0\,,\]while every \(X^I\) is unchanged (the \(\mathcal{F}_0\) term is invariant because the degree-two piece cancels by Euler’s theorem). On the period vector \(\Pi = (\mathcal{F}_I,\, X^I)\) (dual periods first, see
period_vector_per()) this is the unipotent transformation\[\begin{split}M(S) = \begin{pmatrix} \mathbb{1} & \widehat{S} \\ 0 & \mathbb{1} \end{pmatrix}\,, \qquad \widehat{S} = \begin{pmatrix} 0 & 0 \\ 0 & S \end{pmatrix}\,,\end{split}\]where \(\widehat{S}\) embeds the \(h^{1,2}\times h^{1,2}\) shift \(S\) with a zero \(X^0\) row and column. \(M(S)\) is symplectic (\(M^T \Sigma M = \Sigma\), with \(\Sigma\) from
sigma()) iff \(S\) is symmetric — which every \(a\)-matrix fromjaxvacua.conifold.compute_a_matrix()satisfies (\(a_{ij} = \kappa_{ijj}/2 = a_{ji}\)) — and integer iff \(S\) is integer.Periods, fluxes and the full flux vector all transform by the same \(M(S)\) (\(\Pi \to M\Pi\), \(\text{flux} \to M\,\text{flux}\)), leaving the Kähler potential \(e^{-K} = i\,\Pi^\dagger \Sigma \Pi\) and the superpotential \(W = (f - \tau h)\cdot \Sigma \cdot \Pi\) invariant. This makes \(M(S)\) the dictionary between two \(a\)-conventions (equivalently two integral flux bases), e.g. the
conifold_basis=Trueandconifold_basis=Falsedescriptions of the same geometry.- Parameters:
shift (
Array) – Symmetric \((h^{1,2}, h^{1,2})\) shift matrix \(S = a' - a\).- Returns:
Array – The \((2(h^{1,2}+1), 2(h^{1,2}+1))\) symplectic monodromy
matrix :math:`M (S)
- Return type:
Array
- See also:
sigma(),period_vector_per(), jaxvacua.conifold.compute_a_matrix()
- dM(XPer, cXPer)#
Returns the holomorphic derivative \(\partial_{X^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\) with respect to the periods \(X^I\).
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.
- Returns:
Array – Holomorphic derivative \(\partial_{X^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\).
- Return type:
Array
- dM_c(XPer, cXPer)#
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\).
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.
- Returns:
Array – Anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{M}\) of the ISD-matrix \(\mathcal{M}\).
- Return type:
Array
- dN(XPer, cXPer, 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\).
- Parameters:
XPer (
Array) – JAX array of shape (\(h^{1,2}+1\), ) containing the value of the periods.cXPer (
Array) – JAX array of shape (\(h^{1,2}+1\), ) containing the complex conjugate value of the periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Holomorphic derivative \(\partial_{X^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\).
- Return type:
Array
- dN_c(XPer, cXPer, 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\).
- Parameters:
XPer (
Array) – JAX array of shape (\(h^{1,2}+1\), ) containing the value of the periods.cXPer (
Array) – JAX array of shape (\(h^{1,2}+1\), ) containing the complex conjugate value of the periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Anti-holomorphic derivative \(\partial_{\overline{X}^I}\mathcal{N}\) of the gauge kinetic matrix \(\mathcal{N}\).
- Return type:
Array
- gauge_kinetic_matrix(XPer, cXPer, conj=False)#
Computes the value of the gauge kinetic matrix \(\mathcal{N}\).
Details
The gauge kinetic matrix \(\mathcal{N}\) is defined in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[\mathcal{N}_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )\, \cdot\, (X^{J},\, D_{\bar{\jmath}}\overline{X}^J)^{-1} = P_{IK} \, (Q^{-1})^{K}\,_{J}\]see e.g. Sect. 2 above Eq. (2.12) in 2110.05511. Here we defined the two matrices \(P_{IJ}\) and \(Q^{I}\,_{J}\) as
\[P_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )_{J} \, ,\quad Q^{I}\,_{J} = (X^{I},\, D_{\bar{\jmath}}\overline{X}^I)_{J}\, .\]In the presence of a prepotential \(F\), this object can be computed as follows (see e.g. Eq. (2.12) in 2110.05511)
\[\mathcal{N}_{IJ}= \overline{F}_{IJ} + +2\text{i}\, \dfrac{\text{Im}(F_{I L})X^{L} \, \text{Im}(F_{J K})X^{K}}{X^{M}\text{Im}(F_{MN})X^{N}}\]where \(F_{IJ}=\partial_{X^{I}}\partial_{X^{J}}F\) is the second derivative of the prepotential \(F\) with respect to the periods \(X^I\).
Both formulas for the gauge kinetic matrix \(\mathcal{N}\) have been implemented. The mode of computation depends on the provided input:
at LCS, we use the formula from the periods,
with input periods, we use the formula from the periods, and
otherwise, with input prepotential, we use the formula for the prepotential.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Value of the gauge kinetic matrix \(\mathcal{N}\).
- Return type:
Array
- gauge_kinetic_matrix_periods(XPer, cXPer, conj=False)#
Computes value of the gauge kinetic matrix \(\mathcal{N}\) from periods.
Details
The gauge kinetic matrix \(\mathcal{N}\) is defined in terms of the periods \(X^I\) and \(\mathcal{F}_I\) as
\[\mathcal{N}_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )\, \cdot\, (X^{J},\, D_{\bar{\jmath}}\overline{X}^J)^{-1} = P_{IK} \, (Q^{-1})^{K}\,_{J}\]see e.g. Sect. 2 above Eq. (2.12) in 2110.05511. Here we defined the two matrices \(P_{IJ}\) and \(Q^{I}\,_{J}\) as
\[P_{IJ} = (\mathcal{F}_{I} ,\, D_{\bar{\imath}}\overline{\mathcal{F}}_I )_{J} \, ,\quad Q^{I}\,_{J} = (X^{I},\, D_{\bar{\jmath}}\overline{X}^I)_{J}\, ,\]see Eq. (3.5) in 2310.06040.
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Value of the gauge kinetic matrix \(\mathcal{N}\) from periods.
- Return type:
Array
- gauge_kinetic_matrix_prepotential(XPer, cXPer, conj=False)#
Computes value of the gauge kinetic matrix \(\mathcal{N}\) from prepotential.
Details
In the presence of a prepotential \(F\), the gauge kinetic matrix \(\mathcal{N}\) can be computed as follows (see e.g. Eq. (2.12) in 2110.05511)
\[\mathcal{N}_{IJ}= \overline{F}_{IJ} + +2\text{i}\, \dfrac{\text{Im}(F_{I L})X^{L} \, \text{Im}(F_{J K})X^{K}}{X^{M}\text{Im}(F_{MN})X^{N}}\]where \(F_{IJ}=\partial_{X^{I}}\partial_{X^{J}}F\) is the second derivative of the prepotential \(F\) with respect to the periods \(X^I\).
- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Value of the gauge kinetic matrix \(\mathcal{N}\) from prepotential.
- Return type:
Array
- grad_kahler_potential_per(XPer, cXPer, conj=False)#
Computes derivatives \(\partial_{X^I}K\) of the Kähler potential \(K\) with respect to the periods :mathh`X^I`.
Warning
If we set
conj=True, we compute the anti-holomorphic derivative \(\partial_{\overline{X}^I}K\) instead!- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – First derivative \(\partial_{X^I}K\) of the Kähler potential \(K\).
- Return type:
Array
- grad_period_vector_per(XPer, conj=False)#
Computes derivatives \(\partial_{X^I}\Pi\) of the period vector \(\Pi\) with respect to the periods :mathh`X^I`.
- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Derivatives \(\partial_{X^I}\Pi\) of the period vector \(\Pi\).
- Return type:
Array
- kahler_potential_per(XPer, cXPer)#
Computes the value of the Kähler potential \(K\) as a function of the periods \(X^I\).
Details
The Kähler potential on complex structure moduli space is defined as
\[K_{cs} = -\text{ln}(\tilde{\mathcal{V}})\]in terms of the mirror CY volume \(\tilde{\mathcal{V}}\)
\[\tilde{\mathcal{V}} = -\text{i}\, \Pi^\dagger\cdot \Sigma\cdot\Pi\, .\]- Parameters:
XPer (
Array) – Values of periods.cXPer (
Array) – Complex conjugate values of periods.
- Returns:
Array – Value of the Kähler potential \(K\).
- Return type:
complex
- property lcs_tree#
Description: The underlying lcs_tree object holding the CY model data.
- Parameters:
None
- Returns:
lcs_tree – The lcs_tree object holding the CY model data.
- period_vector_per(XPer, conj=False)#
Computes the period vector \(\Pi\) in terms of the periods \(X^I\).
Details
We introduce a symplectic basis of \(\{\Sigma_{I},\Sigma^I\} \subset H_3(X,\mathbb{Z})\) together with the corresponding Poincaré dual forms \(\{\alpha^I,\beta_I\}\). We then define the periods by integrating the holomorphic \(3\)-form \(\Omega\) over these cycles,
\[X^I=\int_{\Sigma_{I}}\Omega=\int_{X} \Omega\wedge \alpha^I\, ,\quad \mathcal{F}_I=\int_{\Sigma^I}\Omega=\int_{X} \Omega \wedge \beta_I \, .\]We collect the periods \(X^I,\mathcal{F}_I\) in the period vector \(\Pi\), that is,
\[\begin{split}\Pi=\left (\begin{array}{c} \mathcal{F}_I\\ X^I \end{array}\right )\, I=0,1,\ldots,h^{1,2}\, .\end{split}\]The periods \(X^I\) serve as homogeneous complex coordinates on a local patch of the complex structure moduli space of \(X\). Away from the locus \(X^0=0\), we introduce projective coordinates
\[Z^i =\dfrac{X^i}{X^0}\, , i=1,\ldots,h^{2,1}(X)\, ,\]and normalise \(\Omega\) such that \(X^0=1\). The dual periods \(\mathcal{F}_I=\mathcal{F}_I(Z)\) are then determined by a prepotential \(F(Z)\) through
\[\mathcal{F}_i(Z)=\partial_{Z^i} F \, ,\quad \mathcal{F}_0 =2F-Z^i\partial_{Z^i}F\, .\]- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Period vector \(\Pi\).
- Return type:
Array
- prepot_grad_grad_per(XPer, conj=False)#
Computes the second holomorphic derivatives \(F_{IJ}=\partial_{X^I}\partial_{X^J}F\) of the prepotential \(F\) with respect to the periods \(X^I\).
Note
This matrix is used among others to compute the gauge kinetic matrix entering the ISD condition for SUSY flux vacua, see
gauge_kinetic_matrix_prepotential().- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
ddF (jax array of arrays) – \((h^{1,2}+1)\times(h^{1,2}+1)\)-matrix with entries corresponding to 2nd derivatives of \(F\).
- Return type:
Array
See also:
gauge_kinetic_matrix().
- prepot_grad_per(XPer, conj=False)#
Computes the holomorphic derivatives \(F_{I}=\partial_{X^I}F\) of the prepotential \(F\) with respect to the periods \(X^I\).
- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
Array – Holomorphic derivatives \(F_{I}=\partial_{X^I}F\) of the prepotential \(F\).
- Return type:
Array
- prepot_per(XPer, conj=False)#
Computes the prepotential \(F\) in terms of the periods \(X^I\).
Details
At Large Complex Structure (LCS), the prepotential can be computed from mirror symmetry as
\[F_{\mathrm{LCS}}(X) = F_{\mathrm{poly}}(X) + F_{\mathrm{inst}}(X)\]where
\[F_{\mathrm{poly}}(X) = -\frac{1}{6X^0}\widetilde{\kappa}_{ijk}X^iX^jX^k+\frac{1}{2}a_{ij}X^iX^j +b_{i}X^i\, X^0 + \dfrac{\text{i}}{2}\tilde{\xi}\, (X^0)^2\, ,\]and
\[F_{\mathrm{inst}}(X) = -\frac{(X^0)^2}{(2\pi\mathrm{i})^3}\, \sum_{q\in\mathcal{M}(\widetilde{X})}\, n_q^{0}\, \text{Li}_3\left (\text{e}^{2\pi \text{i} q_i X^i / X^0}\right )\; , \quad \text{Li}_3\left (x\right )=\sum_{m=1}^{\infty}\, \dfrac{x^{m}}{m^{3}}\, .\]The former is computed via
F_LCS_poly_per(), while the latter inF_inst_per(). This limit in moduli space is implemented inF_LCS_per().Warning
The moduli space limit around which the prepotential is computed is set by the global parameter
self.periods.limit. Currently, only the limits"LCS","coniLCS_series", and"coniLCS_bulk"are supported.Note
This function is used to compute the gauge kinetic matrix \(\mathcal{N}_{IJ}\) of second derivatives of the prepotential which is used to check the ISD-condition for flux vacua.
- Parameters:
XPer (
Array) – Values of periods.conj (
bool) – IfTrue, computes the complex conjugate. Defaults toFalse.
- Returns:
complex – Value of the prepotential \(F\).
- Return type:
complex
See also:
F_LCS_per()See also:
prepot_grad_grad_per()See also:
gauge_kinetic_matrix()
- sigma()#
Returns the symplectic matrix
\[\begin{split}\Sigma=\left (\begin{array}{cc}0 & 1\\ -1&0\end{array}\right )\, .\end{split}\]- Parameters:
None
- Returns:
Array – Symplectic pairing matrix.
- Return type:
Array