Skip to content

core.dirac_operator

dirac_operator

Dirac operator on the Klein quartic and the Lichnerowicz formula.

The Lichnerowicz formula relates the square of the Dirac operator to the Bochner Laplacian and scalar curvature: D^2 = nabla* nabla + R/4

For the first eigenvalue on the trivial spinor bundle

lambda_1(D^2_sigma_0) = lambda_1(Delta) + R/4

DiracOperator

DiracOperator(lambda_1: float = 3.838, R: float = -2.0)

Dirac operator computations via the Lichnerowicz formula.

Attributes:

Name Type Description
lambda_1_laplacian

First eigenvalue of the scalar Laplacian.

R

Scalar curvature of the Klein curve.

lambda_D2_triv

First eigenvalue of D^2 on trivial spinor bundle.

Source code in src/core/dirac_operator.py
def __init__(self, lambda_1: float = 3.838, R: float = -2.0):
    self.lambda_1_laplacian = lambda_1
    self.R = R
    self.lambda_D2_triv = lambda_1 + R / 4
    logger.info(
        f"Dirac operator: λ₁(Δ)={lambda_1}, R={R}, "
        f"λ₁(D²_σ₀)={self.lambda_D2_triv}"
    )
eigenvalue_D2
eigenvalue_D2(spinor_contribution: float = 0.0) -> float

Compute D^2 eigenvalue with spinor contribution.

Parameters:

Name Type Description Default
spinor_contribution float

Additional contribution from nontrivial spinor structure (e.g., delta_C^2 / 2).

0.0

Returns:

Type Description
float

Eigenvalue of D^2.

Source code in src/core/dirac_operator.py
def eigenvalue_D2(self, spinor_contribution: float = 0.0) -> float:
    """Compute D^2 eigenvalue with spinor contribution.

    Args:
        spinor_contribution: Additional contribution from nontrivial
            spinor structure (e.g., delta_C^2 / 2).

    Returns:
        Eigenvalue of D^2.
    """
    result = self.lambda_D2_triv + spinor_contribution
    logger.debug(f"D² eigenvalue: {self.lambda_D2_triv} + {spinor_contribution} = {result}")
    return result
gap
gap() -> float

Compute the spectral gap lambda_1(D^2) - 0.

Source code in src/core/dirac_operator.py
def gap(self) -> float:
    """Compute the spectral gap lambda_1(D^2) - 0."""
    return self.lambda_D2_triv
as_dict
as_dict() -> dict

Serialize Dirac operator data.

Source code in src/core/dirac_operator.py
def as_dict(self) -> dict:
    """Serialize Dirac operator data."""
    return {
        "lambda_1_laplacian": self.lambda_1_laplacian,
        "R": self.R,
        "lambda_D2_triv": self.lambda_D2_triv,
    }