Skip to content

Moduli space

cymyc.moduli.wp.WP_full ¤

Bases: WP

__init__(cy_dim: int, monomials: List[np.array], ambient: ArrayLike, deformations: List[Callable]) ¤

Base class for geometric computations over complex structure moduli space.

Parameters:

Name Type Description Default
cy_dim int

Dimension of Calabi-Yau manifold.

required
monomials List[array]

List of defining monomials.

required
ambient ArrayLike

Dimensions of the ambient space factors.

required
deformations List[Callable]

List of functions representing complex structure deformations.

required
Notes

Here the deformations parameter is a list of polynomial deformations corresponding to independent tangent vectors of the complex structure moduli space - there should be \(h^{(2,1)}\) deformations to construct the complete moduli space metric. For example, for the deformation family of the intersection of two cubics in \(\mathbb{P}^5\),

\[ B_{\psi} = \left\{\begin{array}{c}Z_0^3 + Z_1^3 + Z_2^3 - 3 \psi Z_3 Z_4 Z_5 = 0\\ Z_3^3 + Z_4^3 + Z_5^3 - 3 \psi Z_0 Z_1 Z_2 = 0\end{array} \, : \, \psi \in \mathbb{C}\right\} \subset \mathbb{P}^5~. \]

The single complex structure moduli direction corresponds to the trilinear polynomial deformations above, and we can write down this deformation explicitly:

def X33_deformation(p, precision=np.complex128):
    d1 = jnp.einsum("...a,aj->...j", jnp.expand_dims(p[3]*p[4]*p[5], axis=-1),
                    jnp.asarray([[-3.,0.]], precision))
    d2 = jnp.einsum("...a,aj->...j", jnp.expand_dims(p[0]*p[1]*p[2], axis=-1),
                    jnp.asarray([[0.,-3.]], precision))
    return d1 + d2

compute_wp_metric_complete(p: Float[Array, '... i'], dQdz_monomials: List[np.array], dQdz_coeffs: List[np.array]) -> Complex[Array, 'h_21 h_21'] ¤

Computes the full \(h^{2,1} \times h^{2,1}\) metric \(\mathcal{G}_{a\overline{b}}\) over complex structure moduli space (the Weil-Petersson metric). This is obtained by Monte Carlo integration over the fibres of the deformation family. Letting \((-,-)\) denote the standard intersection pairing on \(H^{p,q}_{\overline{\partial}}(X)\) with \(p+q=n\):

\[ \begin{align} \mathcal{G}_{a\bar{b}} = \left(\frac{d\Omega_t}{d t^a}, \frac{d\Omega_t}{d t^b}\right)\bigg\vert_{t_0} - \frac{1}{(\Omega,\Omega)}\left(\Omega, \frac{d\Omega_t}{d t^a}\right)\bigg\vert_{t_0} \cdot \overline{\left(\Omega, \frac{d\Omega_t}{d t^b}\right)}\bigg\vert_{t_0}\,. \end{align} \]

Note that the number of integration points required is exponential in the dimension of moduli space. See the article arxiv:2401.15078 and Mirror symmetry, Mori, eq. (6.1). for more details. NB: Don't vmap this.

Parameters:

Name Type Description Default
p Float[Array, '... i']

2 * complex_dim real coords at which fun is evaluated. Note batch indices.

required
dQdz_monomials List[array]

List of monomials corresponding to polynomial Jacobian \(dQ/dz\).

required
dQdz_coeffs List[array]

List of coefficients corresponding to polynomial Jacobian \(dQ/dz\).

required

Returns:

Name Type Description
G_wp Complex[Array, 'h_21 h_21']

Weil-Petersson metric at the point p in complex structure moduli space.

Notes

Owing to vectorisation, this is significantly more efficient than computing individual components separately.

kappa_complete(p: Float[Array, '... i'], dQdz_monomials: List[np.array], dQdz_coeffs: List[np.array], weights=None, pb=None, output_variance: bool = False) -> Complex[Array, 'h_21 h_21 h_21'] ¤

Computes full set of \(h^{2,1} \times h^{2,1} \times h^{2,1}\) Yukawa couplings (three-point function) for a CY threefold. On a fibre \(X_s\) of the deformation family, where \(s\) parameterises the moduli space, the \((a,b,c)\) component is given by,

\[\kappa_{abc} = \int_{X_s} \Omega \wedge \left.\frac{d \Omega}{ds^a ds^b ds^c} \right\vert_{s=0}.\]

Parameters:

Name Type Description Default
p Float[Array, '... i']

2 * complex_dim real coords at which fun is evaluated. Note batch indices.

required
dQdz_monomials List[array]

List of monomials corresponding to polynomial Jacobian \(dQ/dz\).

required
dQdz_coeffs List[array]

List of coefficients corresponding to polynomial Jacobian \(dQ/dz\).

required

Returns:

Name Type Description
int_kappa_abc Complex[Array, 'h_21 h_21 h_21']

Yukawa couplings at given point in complex structure moduli space.

Notes

Owing to vectorisation, this is significantly more efficient than computing individual couplings separately.

kahler_potential(p: Float[Array, '... i'], dQdz_monomials: List[np.array], dQdz_coeffs: List[np.array]) -> Complex[Array, ...] ¤

Computes Kähler potential for moduli space metric at point \(t\) in moduli space. $$ \mathcal{K}(t, \overline{t}) = - \log \int_{X_t} \Omega_t \wedge \overline{\Omega}_t.~.$$

Parameters:

Name Type Description Default
p Float[Array, '... i']

2 * complex_dim real coords at which fun is evaluated. Note batch indices.

required
dQdz_monomials List[array]

List of monomials corresponding to polynomial Jacobian \(dQ/dz\).

required
dQdz_coeffs List[array]

List of coefficients corresponding to polynomial Jacobian \(dQ/dz\).

required

Returns:

Name Type Description
K Complex[Array, ...]

Kähler potential at given point in complex structure moduli space.