cyjax.donaldson.GeometricObjects#

class cyjax.donaldson.GeometricObjects(h, zs, params, variety, sections, patch=None, grad_def=None, dependent=None, **section_args)#

Bases: ProgEval

__init__(h, zs, params, variety, sections, patch=None, grad_def=None, dependent=None, **section_args)#

Computational graph for objects derived from algebraic ansatz.

To avoid duplicate code for functions computing different geometric objects derived from the algebraic ansatz, this computational graph collects their dependencies together with intermediate variables. The graph is evaluated lazily based on property access.

Note that this object takes single values as input (i.e. without batch dimension).

Parameters:
  • h (Array) – Hermitian matrix in algebraic ansatz.

  • zs (Array) – Coordinates on the variety, either homogeneous or affine (if a patch index is provided).

  • params (Array) – Complex moduli parameters of the variety.

  • variety (VarietySingle) – Manifold for which

  • sections (LBSections) – Set of sections on the line bundle which define the embedding into higher order projective spaces.

  • patch (Optional[int]) – Optional affine patch index. If None, zs are assumed to be homogeneous coordinates.

  • grad_def (Optional[Array]) – Optional gradient of the defining polynomial, to save re-computation.

  • dependent (Optional[int]) – Optional index of the dependent coordinate. This index is with respect to the affine coordinate array.

  • **section_args – Additional keyword arguments are passed to the sections object.

Methods

__init__(h, zs, params, variety, sections[, ...])

Computational graph for objects derived from algebraic ansatz.

clear_cache()

Remove all cached values of the computational graph.

compute_all_quantities()

Evaluate all quantities in the computational graph.

register(name, function[, args])

Add a new node to the computational graph.

Attributes

dependent

Dependent coordinate index \(\delta\).

eta

\(\eta = |G_\delta|^2 \det g\)

four_haha

\(\Psi^{(4,4)}_{i\bar{\jmath}k\bar{l}} = \Psi^{(3,3)}_{ik\bar{l}} \psi_{\bar{\jmath}}\)

g_loc

\(g=J\hat{g}J^\dagger\)

g_loc_a

\(\partial_{\bar{a}}g^\dagger\)

g_loc_h

\(\partial_a g = (\partial_a J) \hat{g} J^\dagger + J \partial_a \hat{g} J^\dagger\)

g_loc_ha

\(\partial_a \partial_{\bar{b}} g = \partial_a J \partial_{\bar{b}}\hat{g}J^\dagger + J\partial_a\partial_{\bar{b}}\hat{g}J^\dagger + \partial_a J \hat{g} \partial_{\bar{b}}J^\dagger + J \partial_a \hat{g}\partial_{\bar{b}}J^\dagger\)

g_loc_inv

\(g^{-1}\)

g_proj

\(\hat{g}\)

g_proj_a

\(\partial_{\bar{a}} \hat{g}_{i\bar{\jmath}}\)

g_proj_h

\(\partial_a \hat{g}_{i\bar{\jmath}} = \frac{1}{\pi k} \left( \psi_{ai\bar{\jmath}}/\psi + \Psi^{(2,3)}_{ai\bar{\jmath}}/\psi^2 + 2\Psi^{(3,3)}_{ai\bar{\jmath}}/\psi^3 \right)\)

g_proj_ha

\(\partial_a \partial_{\bar{b}} \hat{g}_{i\bar{\jmath}} = \frac{1}{\pi k} \left( \psi_{ai\bar{b}\bar{\jmath}}/\psi - \Psi^{(2,3)}_{a\bar{b}i\bar{\jmath}}/\psi^2 + 2 \Psi^{(3,4)}_{a\bar{b}i\bar{\jmath}}/\psi^3 - 6\Psi^{(4,4)}_{a\bar{b}i\bar{\jmath}}/\psi^4 \right)\)

grad_def

\(G_i=\partial_i Q\)

jac

\(J_{ij}=\delta_{ij} - \delta_{j\delta} \, G_i/ G_\delta\)

jac_c

\(\bar{J}_{ij}\)

jac_h

\(J_{ij,a}=\partial_a J_{ij}\)

kahler

Kahler potential \(K = \log(\psi)/\pi k\).

psi

\(\psi=s_\alpha H^{\alpha\bar{\beta}} \bar{s}_{\bar{beta}}\)

psi_a

\(\partial_{\bar{\imath}} \psi\)

psi_aa

\(\partial_{\bar{\imath}} \partial_{\bar{\jmath}} \psi\)

psi_h

\(\partial_i \psi\)

psi_h_psi_ha

\(\tilde{\Psi}^{(2,3)}_{ij\bar{k}} = \psi_{i} \psi_{j\bar{k}}\)

psi_ha

\(\partial_{i} \partial_{\bar{\jmath}} \psi\)

psi_ha_psi_ha

\(\left[\psi_{i\bar{\jmath}} \psi_{k\bar{l}}\right]_{ij\bar{k}\bar{l}}\)

psi_hh

\(\partial_{i} \partial_{j} \psi\)

psi_hha

\(\partial_i \partial_j \partial_{\bar{k}} \psi\)

psi_hha_psi_a

\(\tilde{\Psi}^{(2,4)}_{i\bar{\jmath}k\bar{l}} = \psi_{ik\bar{l}} \psi_{\bar{\jmath}}\)

psi_hhaa

\(\partial_i \partial_j \partial_{\bar{k}} \partial_{\bar{l}} \psi\)

ricci_loc

\(R = J\hat{R} J^\dagger\)

ricci_proj

\(\hat{R}_{a\bar{b}} = \mathrm{tr}[g^{-1} \partial_a \partial_{\bar{b}} g] - \mathrm{tr}[ g^{-1} (\partial_a g) g^{-1} \partial_{\bar{b}} g]\)

ricci_scalar

\(\mathrm{tr}\, R g^{-1}\)

s_1_c

\([ \partial_\bar{\imath} \bar{s}_{\bar{\alpha}}(\bar{z}) ]_{\bar{\alpha},\bar{\imath}}\)

s_2_c

\([ \partial_\bar{\imath} \partial_{\bar{\jmath}} \bar{s}_{\bar{\alpha}}(\bar{z}) ]_{\bar{\alpha}, \bar{\imath}, \bar{\jmath}}\)

s_c

\(\bar{s}_{\bar{\alpha}}(\bar{z})\)

three_haha

\(\Psi^{(3,4)}_{i\bar{\jmath}k\bar{l}} = \Psi^{(2,3)}_{ik\bar{l}} \psi_{\bar{\jmath}} + \left(\tilde{\Psi}^{(2,3)}_{ki\bar{\jmath}} + \tilde{\Psi}^{(2,3)}_{ik\bar{\jmath}}\right) \psi_{\bar{l}} + \psi_i \psi_k \psi_{\bar{\jmath}\bar{l}}\)

three_hha

\(\Psi^{(3,3)}_{ij\bar{k}} = \psi_{i} \psi_{j} \psi_{\bar{k}}\)

two_haha

\(\Psi^{(2,4)}_{i\bar{\jmath}k\bar{l}} = \psi_{ik\bar{l}} \psi_{\bar{\jmath}} + \psi_{k\bar{l}\bar{\jmath}} \psi_{i} + \psi_k \psi_{i\bar{\jmath}\bar{l}} + \psi_{\bar{l}} \psi_{ik\bar{\jmath}} + \psi_{i\bar{\jmath}} \psi_{k\bar{l}} + \psi_{k\bar{\jmath}} \psi_{i\bar{l}} + \psi_{\bar{\jmath}\bar{l}}\psi_{ik}\)

two_hha

\(\Psi^{(2,3)}_{ij\bar{k}} = \psi_{i} \psi_{j\bar{k}} + \psi_{j} \psi_{i\bar{k}}+\psi_{ij} \psi_{\bar{k}}\)

zs

Affine coordinates.

patch

Affine patch index.

s

Values of line bundle sections \(s_\alpha(z)\)

s_1

\([\partial_i s_\alpha(z)]_{\alpha, i}\)

s_2

\([\partial_i \partial_{\bar{\jmath}} s_\alpha(z)]_{\alpha, i, \jmath}\)

clear_cache()#

Remove all cached values of the computational graph.

compute_all_quantities()#

Evaluate all quantities in the computational graph.

Return type:

dict[str, Any]

Returns:

A dictionary mapping the name of the quantity to its value.

property dependent#

Dependent coordinate index \(\delta\).

Omitting this index from the affine coordinates defines local coordinates on the variety. Given these, the omitted value can be recovered using the defining equation.

property eta#

\(\eta = |G_\delta|^2 \det g\)

property four_haha#

\(\Psi^{(4,4)}_{i\bar{\jmath}k\bar{l}} = \Psi^{(3,3)}_{ik\bar{l}} \psi_{\bar{\jmath}}\)

property g_loc#

\(g=J\hat{g}J^\dagger\)

property g_loc_a#

\(\partial_{\bar{a}}g^\dagger\)

property g_loc_h#

\(\partial_a g = (\partial_a J) \hat{g} J^\dagger + J \partial_a \hat{g} J^\dagger\)

property g_loc_ha#

\(\partial_a \partial_{\bar{b}} g = \partial_a J \partial_{\bar{b}}\hat{g}J^\dagger + J\partial_a\partial_{\bar{b}}\hat{g}J^\dagger + \partial_a J \hat{g} \partial_{\bar{b}}J^\dagger + J \partial_a \hat{g}\partial_{\bar{b}}J^\dagger\)

property g_loc_inv#

\(g^{-1}\)

property g_proj#

\(\hat{g}\)

property g_proj_a#

\(\partial_{\bar{a}} \hat{g}_{i\bar{\jmath}}\)

property g_proj_h#

\(\partial_a \hat{g}_{i\bar{\jmath}} = \frac{1}{\pi k} \left( \psi_{ai\bar{\jmath}}/\psi + \Psi^{(2,3)}_{ai\bar{\jmath}}/\psi^2 + 2\Psi^{(3,3)}_{ai\bar{\jmath}}/\psi^3 \right)\)

property g_proj_ha#

\(\partial_a \partial_{\bar{b}} \hat{g}_{i\bar{\jmath}} = \frac{1}{\pi k} \left( \psi_{ai\bar{b}\bar{\jmath}}/\psi - \Psi^{(2,3)}_{a\bar{b}i\bar{\jmath}}/\psi^2 + 2 \Psi^{(3,4)}_{a\bar{b}i\bar{\jmath}}/\psi^3 - 6\Psi^{(4,4)}_{a\bar{b}i\bar{\jmath}}/\psi^4 \right)\)

property grad_def#

\(G_i=\partial_i Q\)

property jac#

\(J_{ij}=\delta_{ij} - \delta_{j\delta} \, G_i/ G_\delta\)

property jac_c#

\(\bar{J}_{ij}\)

property jac_h#

\(J_{ij,a}=\partial_a J_{ij}\)

property kahler#

Kahler potential \(K = \log(\psi)/\pi k\).

patch: int#

Affine patch index.

property psi#

\(\psi=s_\alpha H^{\alpha\bar{\beta}} \bar{s}_{\bar{beta}}\)

property psi_a#

\(\partial_{\bar{\imath}} \psi\)

property psi_aa#

\(\partial_{\bar{\imath}} \partial_{\bar{\jmath}} \psi\)

property psi_h#

\(\partial_i \psi\)

property psi_h_psi_ha#

\(\tilde{\Psi}^{(2,3)}_{ij\bar{k}} = \psi_{i} \psi_{j\bar{k}}\)

property psi_ha#

\(\partial_{i} \partial_{\bar{\jmath}} \psi\)

property psi_ha_psi_ha#

\(\left[\psi_{i\bar{\jmath}} \psi_{k\bar{l}}\right]_{ij\bar{k}\bar{l}}\)

property psi_hh#

\(\partial_{i} \partial_{j} \psi\)

property psi_hha#

\(\partial_i \partial_j \partial_{\bar{k}} \psi\)

property psi_hha_psi_a#

\(\tilde{\Psi}^{(2,4)}_{i\bar{\jmath}k\bar{l}} = \psi_{ik\bar{l}} \psi_{\bar{\jmath}}\)

property psi_hhaa#

\(\partial_i \partial_j \partial_{\bar{k}} \partial_{\bar{l}} \psi\)

register(name, function, args=None)#

Add a new node to the computational graph.

The given function specifies how to compute the quantity with the given name. If the second argument is not callable, it is instead interpreted as the value of the quantity.

If the third argument is given, it specifies the quantities that must be computed first and passed to the function. Otherwise, this is automatically derived from the argument names of the function.

Parameters:
  • name – Name of node/quantity in computational graph.

  • function (Union[Callable, Any]) – Specifies how to compute the quantity or is its value.

  • args (Optional[Sequence[str]]) – Overrides the argument names of the function.

Return type:

None

property ricci_loc#

\(R = J\hat{R} J^\dagger\)

property ricci_proj#

\(\hat{R}_{a\bar{b}} = \mathrm{tr}[g^{-1} \partial_a \partial_{\bar{b}} g] - \mathrm{tr}[ g^{-1} (\partial_a g) g^{-1} \partial_{\bar{b}} g]\)

property ricci_scalar#

\(\mathrm{tr}\, R g^{-1}\)

s: jnp.ndarray#

Values of line bundle sections \(s_\alpha(z)\)

s_1: jnp.ndarray#

\([\partial_i s_\alpha(z)]_{\alpha, i}\)

property s_1_c#

\([ \partial_\bar{\imath} \bar{s}_{\bar{\alpha}}(\bar{z}) ]_{\bar{\alpha},\bar{\imath}}\)

s_2: jnp.ndarray#

\([\partial_i \partial_{\bar{\jmath}} s_\alpha(z)]_{\alpha, i, \jmath}\)

property s_2_c#

\([ \partial_\bar{\imath} \partial_{\bar{\jmath}} \bar{s}_{\bar{\alpha}}(\bar{z}) ]_{\bar{\alpha}, \bar{\imath}, \bar{\jmath}}\)

property s_c#

\(\bar{s}_{\bar{\alpha}}(\bar{z})\)

property three_haha#

\(\Psi^{(3,4)}_{i\bar{\jmath}k\bar{l}} = \Psi^{(2,3)}_{ik\bar{l}} \psi_{\bar{\jmath}} + \left(\tilde{\Psi}^{(2,3)}_{ki\bar{\jmath}} + \tilde{\Psi}^{(2,3)}_{ik\bar{\jmath}}\right) \psi_{\bar{l}} + \psi_i \psi_k \psi_{\bar{\jmath}\bar{l}}\)

property three_hha#

\(\Psi^{(3,3)}_{ij\bar{k}} = \psi_{i} \psi_{j} \psi_{\bar{k}}\)

property two_haha#

\(\Psi^{(2,4)}_{i\bar{\jmath}k\bar{l}} = \psi_{ik\bar{l}} \psi_{\bar{\jmath}} + \psi_{k\bar{l}\bar{\jmath}} \psi_{i} + \psi_k \psi_{i\bar{\jmath}\bar{l}} + \psi_{\bar{l}} \psi_{ik\bar{\jmath}} + \psi_{i\bar{\jmath}} \psi_{k\bar{l}} + \psi_{k\bar{\jmath}} \psi_{i\bar{l}} + \psi_{\bar{\jmath}\bar{l}}\psi_{ik}\)

property two_hha#

\(\Psi^{(2,3)}_{ij\bar{k}} = \psi_{i} \psi_{j\bar{k}} + \psi_{j} \psi_{i\bar{k}}+\psi_{ij} \psi_{\bar{k}}\)

zs: jnp.ndarray#

Affine coordinates.