Chern gauss bonnet
cymyc.chern_gauss_bonnet
¤
Calculation of topological invariants (Chern classes, Euler characteristic) for a general Kahler manifold. Note some functions may specialise to the case of a projective variety. Note the following:
- As with curvature, these functions involve \(n\)-th order derivatives of some function
fun
. These are computed with autodiff - a good usage pattern is to make a partial closure to bind all arguments tofun
except the coordinate dependence. - These functions expect local coordinates
z
in ac_dim
-dimensional space, with the real and imaginary parts concatenated to form a real-valued2*c_dim
vector,p = [Re(z); Im(z)]
. - The Euler characteristic is defined up to an integer factor from the normalisation of the volume form. The canonical choice is to normalise according to the intersection number computation.
riem_real(p: Float[Array, 2 * i], metric_fn: Callable[[Array], Array], *args: Sequence, pullbacks: Optional[Float[Array, 'dim i']] = None, return_down: bool = False) -> Float[Array, '2*dim 2*dim 2*dim 2*dim']
¤
Viewing the \(n\)-dim Kähler manifold as a real \((2n)\)-dimensional manifold, computes the real \((2n)\)-dimensional Riemann tensor corresponding to the given metric tensor.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
p |
array_like
|
2 * |
required |
metric_fn |
callable
|
Function representing metric tensor in local coordinates. |
required |
*args |
tuple
|
Additional arguments to pass to |
()
|
pullbacks |
array_like
|
Pullback matrix from ambient to projective variety. If supplied, computes Riemann tensor on the variety, by default None. |
None
|
return_down |
bool
|
If True, return the Riemann tensor with all indices lowered, by default False. |
False
|
Returns:
Type | Description |
---|---|
array_like
|
The real (2n)-dimensional Riemann tensor. If |
chern1(riem: Complex[Array, 'dim dim dim dim']) -> Complex[Array, 'dim dim']
¤
Computes the first Chern class. Let \(\mathcal{R} \in \Omega^2_X\left(\text{End}(T_X)\right)\) be the curvature two-form on \(X\), then $$ c_1 \propto \textsf{Tr}\mathcal{R}~.$$
Parameters:
Name | Type | Description | Default |
---|---|---|---|
riem |
array_like
|
(1,3) Riemann tensor corresponding to the Kahler connection \(R^{\kappa}_{\lambda \mu \bar{\nu}}\). |
required |
Returns:
Type | Description |
---|---|
array_like
|
First Chern form. |
chern2(riem: Complex[Array, 'dim dim dim dim']) -> Complex[Array, 'dim dim dim dim']
¤
Computes the second Chern class, $$ c_2 \propto \left(\textsf{Tr}\mathcal{R}^2 - \textsf{Tr}\mathcal{R} \wedge \textsf{Tr}\mathcal{R} \right)~.$$
Parameters:
Name | Type | Description | Default |
---|---|---|---|
riem |
array_like
|
(1,3) Riemann tensor corresponding to the Kahler connection \(R^{\kappa}_{\lambda \mu \bar{\nu}}\). |
required |
Returns:
Name | Type | Description |
---|---|---|
c2 |
array_like
|
Second Chern form. |
chern3(riem: Complex[Array, 'dim dim dim dim']) -> Complex[Array, '']
¤
Computes the third Chern class,
Parameters:
Name | Type | Description | Default |
---|---|---|---|
riem |
array_like
|
(1,3) Riemann tensor corresponding to the Kahler connection \(R^{\kappa}_{\lambda \mu \bar{\nu}}\). |
required |
Returns:
Name | Type | Description |
---|---|---|
c3 |
array_like
|
The third Chern form, expressed as the coefficient of the complex wedgey part in standard form: \(dz^1 \wedge d\bar{z}^1 \wedge \cdots \wedge dz^n \wedge d\bar{z}^n\). |
euler_characteristic(data: Tuple[Float[Array, 2 * i], Float[Array, ''], Float[Array, '']], pullbacks: Optional[Float[Array, 'dim i']], metric_fn: Callable[[Array], Array], cy_dim: int = 3) -> Float[Array, '']
¤
Computes the Euler characteristic from the Pfaffian of the curvature two-form \(\mathcal{R} \in \Omega^2_X(T_X)\), with support for Calabi-Yau \(n\)-folds for \(n=1,2,3\).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
tuple
|
A tuple containing coordinates |
required |
pullbacks |
array_like
|
Pullback matrix from ambient to projective variety. If supplied, computes the Euler characteristic on the variety, by default None. |
required |
metric_fn |
callable
|
Function representing metric tensor in local coordinates. |
required |
cy_dim |
int
|
Complex dimension of Calabi-Yau, default 3. |
3
|
Returns:
Name | Type | Description |
---|---|---|
chi |
array - like
|
The Euler characteristic. |
euler_characteristic_form(data: Tuple[Float[Array, 2 * i], Float[Array, ''], Float[Array, '']], pullbacks: Optional[Float[Array, 'dim i']], metric_fn: Callable[[Array], Array], cy_dim: int = 3) -> Float[Array, '']
¤
Computes the Euler characteristic via integration of the third Chern class over \(X\) for a Calabi-Yau threefold.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
tuple
|
A tuple containing coordinates |
required |
pullbacks |
array_like
|
Pullback matrix from ambient to projective variety. If supplied, computes the Euler characteristic on the variety, by default None. |
required |
metric_fn |
callable
|
Function representing metric tensor in local coordinates. |
required |
cy_dim |
int
|
Complex dimension of Calabi-Yau. |
3
|
Returns:
Name | Type | Description |
---|---|---|
chi |
array - like
|
The Euler characteristic. |